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)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 17 Jan 2012 15:12:19 +0000 (10:12 -0500)
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>
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c

index f23b0c3e4ea3d94985cbdc4b61d6f2688ef52164..bf11850a20f11b1201179c7c7659a16397f2d4cc 100644 (file)
@@ -2475,7 +2475,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();