linux/drivers/net/wireless
Johannes Berg b49ba04a3a iwlwifi: fix PCI-E transport "inta" race
When an interrupt comes in, we read the reason
bits and collect them into "trans_pcie->inta".
This happens with the spinlock held. However,
there's a bug resetting this variable -- that
happens after the spinlock has been released.
This means that it is possible for interrupts
to be missed if the reset happens after some
other interrupt reasons were already added to
the variable.

I found this by code inspection, looking for a
reason that we sometimes see random commands
time out. It seems possible that this causes
such behaviour, but I can't say for sure right
now since it happens extremely infrequently on
my test systems.

Cc: stable@vger.kernel.org [3.2]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-01-24 14:47:10 -05:00
..
ath ath9k_hw: fix interpretation of the rx KeyMiss flag 2012-01-16 15:01:15 -05:00
b43 b43: add option to avoid duplicating device support with brcmsmac 2012-01-18 14:49:47 -05:00
b43legacy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-01-05 10:13:24 -05:00
brcm80211 brcmsmac: fix tx queue flush infinite loop 2012-01-18 14:38:05 -05:00
hostap hostap_cs: add ID for Canon K30225 2011-11-28 14:44:00 -05:00
ipw2x00 ipw2x00: signedness bug handling frame length 2012-01-13 14:40:56 -05:00
iwlegacy iwlegacy: 3945: fix hw passive scan on radar channels 2012-01-04 14:30:45 -05:00
iwlwifi iwlwifi: fix PCI-E transport "inta" race 2012-01-24 14:47:10 -05:00
iwmc3200wifi module_param: make bool parameters really bool (net & drivers/net) 2011-12-19 22:27:29 -05:00
libertas Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
libertas_tf Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
mwifiex Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-01-04 21:35:43 -05:00
orinoco Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
p54 Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
prism54 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2011-12-02 15:44:03 -05:00
rt2x00 rt2800pci: fix spurious interrupts generation 2012-01-13 14:40:57 -05:00
rtl818x USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
rtlwifi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-01-12 12:10:00 -08:00
wl12xx wl12xx: mark no sched scan only after FW event 2011-12-20 22:30:16 +02:00
wl1251 wireless: Remove redundant spi driver bus initialization 2011-11-28 14:43:58 -05:00
zd1211rw drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00
adm8211.c drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00
adm8211.h
airo_cs.c
airo.c airo: Fix array bounds warning when moving packet payload. 2011-11-26 15:35:10 -05:00
airo.h
at76c50x-usb.c wireless: at76c50x: follow rename pack_hex_byte to hex_byte_pack 2011-10-31 17:30:57 -07:00
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c
atmel.h
Kconfig net: wireless: add brcm80211 drivers 2011-10-11 15:55:30 -04:00
mac80211_hwsim.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
mac80211_hwsim.h
Makefile iwlegacy: rename remaining IWLs to ILs 2011-11-15 11:25:42 +01:00
mwl8k.c mwl8k: Fixing Sparse ENDIAN CHECK warning 2012-01-17 10:12:27 -05:00
ray_cs.c ray_cs: Fix array bounds warnings. 2011-11-26 15:41:29 -05:00
ray_cs.h
rayctl.h ray_cs: Fix array bounds warnings. 2011-11-26 15:41:29 -05:00
rndis_wlan.c Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
wl3501_cs.c wl3501_cs: min_t() cast truncates high bits 2011-09-27 14:36:04 -04:00
wl3501.h
zd1201.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
zd1201.h