linux-hardened/drivers/net/wireless
Daniel Mack 7371400431 net/wireless/libertas: do not call wiphy_unregister() w/o wiphy_register()
The libertas driver calls wiphy_unregister() without a prior
wiphy_register() when a devices fails initialization. Fix this by
introducing a private flag.

[    9.310000] Unable to handle kernel NULL pointer dereference at virtual address 00000000

[...]

[    9.330000] [<c0311310>] (wiphy_unregister+0xfc/0x19c) from [<bf00c9ec>] (lbs_cfg_free+0x70/0x9c [libertas])
[    9.330000] [<bf00c9ec>] (lbs_cfg_free+0x70/0x9c [libertas]) from [<bf014fdc>] (lbs_remove_card+0x180/0x210 [libertas])
[    9.330000] [<bf014fdc>] (lbs_remove_card+0x180/0x210 [libertas]) from [<bf035394>] (if_sdio_probe+0xdc4/0xef4 [libertas_sdio])
[    9.330000] [<bf035394>] (if_sdio_probe+0xdc4/0xef4 [libertas_sdio]) from [<c0230d14>] (sdio_bus_probe+0xd4/0xf0)
[    9.330000] [<c0230d14>] (sdio_bus_probe+0xd4/0xf0) from [<c01a6034>] (driver_probe_device+0xa4/0x174)
[    9.330000] [<c01a6034>] (driver_probe_device+0xa4/0x174) from [<c01a6164>] (__driver_attach+0x60/0x84)
[    9.330000] [<c01a6164>] (__driver_attach+0x60/0x84) from [<c01a5854>] (bus_for_each_dev+0x4c/0x8c)
[    9.330000] [<c01a5854>] (bus_for_each_dev+0x4c/0x8c) from [<c01a50e4>] (bus_add_driver+0xa0/0x228)
[    9.330000] [<c01a50e4>] (bus_add_driver+0xa0/0x228) from [<c01a6470>] (driver_register+0xc0/0x150)
[    9.330000] [<c01a6470>] (driver_register+0xc0/0x150) from [<bf03a06c>] (if_sdio_init_module+0x6c/0x108 [libertas_sdio])
[    9.330000] [<bf03a06c>] (if_sdio_init_module+0x6c/0x108 [libertas_sdio]) from [<c00263ac>] (do_one_initcall+0x5c/0x1bc)
[    9.330000] [<c00263ac>] (do_one_initcall+0x5c/0x1bc) from [<c0069f80>] (sys_init_module+0xc0/0x1f0)
[    9.330000] [<c0069f80>] (sys_init_module+0xc0/0x1f0) from [<c0026f00>] (ret_fast_syscall+0x0/0x30)

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Dan Williams <dcbw@redhat.com>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: Holger Schurig <hs4233@mail.mn-solutions.de>
Cc: Bing Zhao <bzhao@marvell.com>
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-03-30 15:37:37 -04:00
..
ath setup correct int pipe type in ar9170_usb_exec_cmd 2010-03-30 15:37:35 -04:00
b43 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-27 02:05:54 -08:00
b43legacy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-25 23:26:21 -08:00
hostap Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-25 23:26:21 -08:00
ipw2x00 ipw2200: use kmalloc for large local variables 2010-03-10 16:29:02 -05:00
iwlwifi iwlwifi: range checking issue 2010-03-30 15:37:36 -04:00
iwmc3200wifi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-02-26 16:54:45 -05:00
libertas net/wireless/libertas: do not call wiphy_unregister() w/o wiphy_register() 2010-03-30 15:37:37 -04:00
libertas_tf Add Station and AdHoc mode support to libertas_tf 2010-02-10 16:36:50 -05:00
orinoco wireless: convert to use netdev_for_each_mc_addr 2010-02-28 01:44:01 -08:00
p54 Add USB ID for Thomson SpeedTouch 120g to p54usb id table 2010-03-30 15:37:26 -04:00
prism54 drivers/net/: use DEFINE_PCI_DEVICE_TABLE() 2010-01-07 23:54:26 -08:00
rt2x00 rt2x00: Disable powersaving by default in rt2500usb. 2010-03-30 15:37:34 -04:00
rtl818x Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-02-26 16:54:45 -05:00
wl12xx wl1251: fix potential crash 2010-03-16 15:20:25 -04:00
zd1211rw zd1211rw: fix potential array underflow 2010-03-02 14:28:49 -05:00
adm8211.c Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2010-02-14 17:45:59 -08:00
adm8211.h
airo.c airo: return from set_wep_key() when key length is zero 2010-03-02 14:28:48 -05:00
airo.h
airo_cs.c
at76c50x-usb.c mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
at76c50x-usb.h
atmel.c
atmel.h
atmel_cs.c
atmel_pci.c drivers/net/: use DEFINE_PCI_DEVICE_TABLE() 2010-01-07 23:54:26 -08:00
Kconfig wireless: airo_cs build fixes 2010-02-15 16:12:52 -05:00
mac80211_hwsim.c mac80211_hwsim: convert to new station add/remove callbacks 2010-02-19 15:52:52 -05:00
Makefile
mwl8k.c Add a pci-id to the mwl8k driver 2010-03-30 15:37:25 -04:00
ray_cs.c wireless: convert to use netdev_for_each_mc_addr 2010-02-28 01:44:01 -08:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: correct multicast_list handling V3 2010-03-04 03:32:16 -08:00
wl3501.h
wl3501_cs.c Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2009-12-05 15:22:26 -08:00
zd1201.c wireless: convert to use netdev_for_each_mc_addr 2010-02-28 01:44:01 -08:00
zd1201.h