1
linux/drivers/net/wireless
Stefano Brivio 0cd67d48b5 b43legacy: fix PIO crash
Fix the crash reported below, which seems to happen on bcm4306 rev. 2 devices
only while using PIO:

Oops: 0000 [#1] PREEMPT
Modules linked in: b43(F) rfkill(F) led_class(F) input_polldev(F) arc4 b43legacy mac80211 cfg80211 i915 drm snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device ohci1394 ieee1394 ssb pcmcia snd_intel8x0m ehci_hcd uhci_hcd evdev

Pid: 0, comm: swapper Tainted: GF	(2.6.24st3 #2)
EIP: 0060:[<f90f667b>] EFLAGS: 00010002 CPU: 0
EIP is at b43legacy_pio_handle_txstatus+0xbb/0x210 [b43legacy]
EAX: 0000049b EBX: f11f8044 ECX: 00000001 EDX: 00000000
ESI: f1ff8000 EDI: 00000000 EBP: f11f8040 ESP: c04f4ef4
 DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
Process swapper (pid: 0, ti=c04f4000 task=c0488300 task.ti=c04b8000)
Stack: f90f2788 c05009f0 c0500900 000010f7 f1053823 c04f4f24 dfb8e800 00000003
       f1368000 00000007 00000296 f90f1975 00001000 010c0800 01000000 00000007
       f90f6391 f11f8000 00000082 c04f4f4a 00000000 00004fd0 10f70000 8c061000
Call Trace:
 [<f90f2788>] b43legacy_debugfs_log_txstat+0x48/0xb0 [b43legacy]
 [<f90f1975>] b43legacy_handle_hwtxstatus+0x75/0x80 [b43legacy]
 [<f90f6391>] b43legacy_pio_rx+0x201/0x280 [b43legacy]
 [<f90e4fa3>] b43legacy_interrupt_tasklet+0x2e3/0x870 [b43legacy]
 [<c0123567>] tasklet_action+0x27/0x60
 [<c01237b4>] __do_softirq+0x54/0xb0
 [<c010686b>] do_softirq+0x7b/0xe0
 [<c01457c0>] handle_level_irq+0x0/0x110
 [<c01457c0>] handle_level_irq+0x0/0x110
 [<c0123758>] irq_exit+0x38/0x40
 [<c0106953>] do_IRQ+0x83/0xd0
 [<c011812f>] __update_rq_clock+0x4f/0x180
 [<c0104b4f>] common_interrupt+0x23/0x28
 [<c011007b>] wakeup_code+0x7b/0xde
 [<c02b1039>] acpi_processor_idle+0x24a/0x3c9
 [<c01025c7>] cpu_idle+0x47/0x80
 [<c04b9ad5>] start_kernel+0x205/0x290
 [<c04b9360>] unknown_bootoption+0x0/0x1f0
 =======================
Code: 0f 00 00 81 fb ff 00 00 00 0f 87 36 01 00 00 8d 04 db 85 ff 8d 6c c6 40 8d 5d 04 0f 85 ef 00 00 00 fe 4e 0e 0f b7 46 0c 8b 53 04 <8b> 4a 50 29 c8 83 e8 52 66 89 46 0c 8b 54 24 14 80 7a 0b 00 74
EIP: [<f90f667b>] b43legacy_pio_handle_txstatus+0xbb/0x210 [b43legacy] SS:ESP 0068:c04f4ef4
Kernel panic - not syncing: Fatal exception in interrupt

Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-02-05 14:35:46 -05:00
..
ath5k ath5k: fix section mismatch warning 2008-02-01 16:15:50 -05:00
b43 b43: Drop packets that we are not able to encrypt 2008-01-31 19:26:45 -08:00
b43legacy b43legacy: fix PIO crash 2008-02-05 14:35:46 -05:00
bcm43xx bcm43xx annotations 2008-01-28 15:09:08 -08:00
hostap Add another Prism2 card to hostap 2008-01-31 19:26:51 -08:00
iwlwifi iwlwifi: fix merge sequence: exit on error before state change 2008-02-01 16:14:21 -05:00
libertas Spelling fixes: lenght->length 2008-02-03 15:42:53 +02:00
prism54 prism54: remove questionable down_interruptible usage 2008-01-28 15:09:12 -08:00
rt2x00 rt61pci: fix-up merge damage 2008-01-31 19:26:33 -08:00
zd1211rw mac80211: add unified BSS configuration 2008-01-28 15:09:43 -08:00
adm8211.c mac80211: dont use interface indices in drivers 2008-01-28 15:09:36 -08:00
adm8211.h
airo_cs.c
airo.c airo: last of endianness annotations 2008-01-28 15:09:05 -08:00
airo.h
airport.c
arlan-main.c
arlan-proc.c
arlan.h
atmel_cs.c
atmel_pci.c
atmel.c misc wireless annotations 2008-01-28 15:09:11 -08:00
atmel.h
hermes_rid.h
hermes.c
hermes.h
i82586.h
i82593.h
ipw2100.c ipw2100 annotations and fixes 2008-01-28 15:08:54 -08:00
ipw2100.h
ipw2200.c ipw2200: do not byteswap struct ipw_associate 2008-01-28 15:09:10 -08:00
ipw2200.h ipw2200: do not byteswap struct ipw_associate 2008-01-28 15:09:10 -08:00
Kconfig Add new driver 'rndis_wlan' for wireless RNDIS devices. 2008-01-31 19:27:01 -08:00
Makefile Add new driver 'rndis_wlan' for wireless RNDIS devices. 2008-01-31 19:27:01 -08:00
net2280.h
netwave_cs.c
orinoco_cs.c
orinoco_nortel.c
orinoco_pci.c
orinoco_pci.h
orinoco_plx.c
orinoco_tmd.c
orinoco.c
orinoco.h
p54.h
p54common.c mac80211: dont use interface indices in drivers 2008-01-28 15:09:36 -08:00
p54common.h
p54pci.c p54pci: endianness annotations and fixes 2008-01-28 15:09:07 -08:00
p54pci.h p54pci: endianness annotations and fixes 2008-01-28 15:09:07 -08:00
p54usb.c
p54usb.h
ray_cs.c misc wireless annotations 2008-01-28 15:09:11 -08:00
ray_cs.h
rayctl.h
rndis_wlan.c Add new driver 'rndis_wlan' for wireless RNDIS devices. 2008-01-31 19:27:01 -08:00
rtl818x.h Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_dev.c rtl8180_dev.c: add support for 1799:700f 2008-01-31 19:26:39 -08:00
rtl8180_grf5101.c Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_grf5101.h Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_max2820.c Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_max2820.h Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_rtl8225.c Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_rtl8225.h Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_sa2400.c Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180_sa2400.h Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8180.h mac80211: dont use interface indices in drivers 2008-01-28 15:09:36 -08:00
rtl8187_dev.c mac80211: dont use interface indices in drivers 2008-01-28 15:09:36 -08:00
rtl8187_rtl8225.c Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8187_rtl8225.h Add rtl8180 wireless driver 2008-01-28 15:09:35 -08:00
rtl8187.h mac80211: dont use interface indices in drivers 2008-01-28 15:09:36 -08:00
spectrum_cs.c
strip.c
wavelan_cs.c WAVELAN - compile-time check for struct sizes 2008-01-28 15:09:50 -08:00
wavelan_cs.h
wavelan_cs.p.h WAVELAN - compile-time check for struct sizes 2008-01-28 15:09:50 -08:00
wavelan.c WAVELAN - compile-time check for struct sizes 2008-01-28 15:09:50 -08:00
wavelan.h
wavelan.p.h WAVELAN - compile-time check for struct sizes 2008-01-28 15:09:50 -08:00
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h