diff options
author | John W. Linville <linville@tuxdriver.com> | 2012-01-16 13:51:57 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-16 13:51:57 -0500 |
commit | 912fdfca681d38f1ec1eca0051a9a9c16cb4c9a0 (patch) | |
tree | c299f257f40504664075a2d9ba0237346978d4ad /brcmfmac-gcc47.patch | |
parent | 6c1c9987c61dc3c67ad8ffbd9ea2ec3fe4eba73f (diff) | |
download | kernel-912fdfca681d38f1ec1eca0051a9a9c16cb4c9a0.tar.gz kernel-912fdfca681d38f1ec1eca0051a9a9c16cb4c9a0.tar.xz kernel-912fdfca681d38f1ec1eca0051a9a9c16cb4c9a0.zip |
Re-enable CONFIG_BRCMFMAC builds (found work-around for GCC 4.7 builds)
Diffstat (limited to 'brcmfmac-gcc47.patch')
-rw-r--r-- | brcmfmac-gcc47.patch | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/brcmfmac-gcc47.patch b/brcmfmac-gcc47.patch new file mode 100644 index 000000000..751876c36 --- /dev/null +++ b/brcmfmac-gcc47.patch @@ -0,0 +1,27 @@ +Alexandre Oliva <oliva@lsd.ic.unicamp.br> sent me a patch: + +"I see you ran into the same problem I did in brcmfmac. I wasn't sure a +build with compat-wireless would run into the same problem I did without +it and with Linux-libre. + +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." + +diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +index 5eddabe..eda1d4e 100644 +--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c +@@ -2463,7 +2463,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(); |