brcmfmac: work-around gcc 4.7 build issue
authorAlexandre Oliva <oliva@lsd.ic.unicamp.br>
Mon, 16 Jan 2012 19:00:12 +0000 (14:00 -0500)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 19 Mar 2018 18:58:20 +0000 (18:58 +0000)
commit 5addc0de28f5e286f9d121112c4222250807b5a5 upstream.

Alexandre Oliva <oliva@lsd.ic.unicamp.br> says:

"It's an issue brought about by GCC 4.7's partial-inlining, that ends up
splitting the udelay function just at the wrong spot, in such a way that
some sanity checks for constants fails, and we end up calling
bad_udelay.

This patch fixes the problem.  Feel free to push it upstream if it makes
sense to you."

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c

index e4e326a..adf99be 100644 (file)
@@ -2465,7 +2465,7 @@ static s32 brcmf_init_iscan(struct brcmf_cfg80211_priv *cfg_priv)
        return err;
 }
 
-static void brcmf_delay(u32 ms)
+static __always_inline void brcmf_delay(u32 ms)
 {
        if (ms < 1000 / HZ) {
                cond_resched();