linux/drivers/net/wireless
Ian Schram 3a33cc108d mac80211_hwsim.c: fix: BUG: unable to handle kernel NULL pointer dereference at 0000000000000370
I was looking at this out of interest, but I'm in no way familiar with
the code.

Looks to me that the error handling code in mac80211_hwsim is awkward.
Which leads to it calling ieee80211_unregister_hw even when
ieee80211_register_hw failed.

The function has a for loop where it generates all simulated radios.
when something fails, the error handling will call mac80211_hwsim_free
which frees all simulated radios who's pointer isn't zero. However the
information stored is insufficient to determine whether or not the call
to ieee80211_register_hw succeeded or not for a specific radio. The
included patch makes init_mac80211_hwsim clean up the current simulated
radio, and then calls into mac80211_hwsim_free to clean up all the
radios that did succeed.

This however doesn't explain why the rate control registration failed..
build tested this, but had some problems reproducing the original
problem.

Signed-off-by: Ian Schram <ischram@telenet.be>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-07-21 13:19:35 -07:00
..
ath5k mac80211: revamp beacon configuration 2008-07-14 14:30:07 -04:00
b43 wireless: fix warnings from QoS patch 2008-07-15 02:08:24 -07:00
b43legacy mac80211: fix TX sequence numbers 2008-07-14 14:52:57 -04:00
hostap netdev: Allocate multiple queues for TX. 2008-07-17 19:21:00 -07:00
iwlwifi iwlwifi: make index unsigned int for iwl_send_led_cmd 2008-07-14 14:53:00 -04:00
libertas Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
p54 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
prism54 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2008-06-28 22:57:58 -07:00
rt2x00 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
zd1211rw Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2008-07-14 20:40:34 -07:00
adm8211.c adm8211: remove unnecessary protected bit mask/check 2008-06-26 16:50:02 -04:00
adm8211.h mac80211: move TX info into skb->cb 2008-05-21 21:48:11 -04:00
airo_cs.c
airo.c wireless: Small cleanups 2008-06-27 09:09:20 -04:00
airo.h
airport.c
arlan-main.c arlan: use netstats in net_device structure 2008-05-14 16:29:48 -04:00
arlan-proc.c
arlan.h arlan: use netstats in net_device structure 2008-05-14 16:29:48 -04:00
atmel_cs.c
atmel_pci.c
atmel.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
atmel.h
hermes_rid.h
hermes.c
hermes.h
i82586.h
i82593.h
ipw2100.c
ipw2100.h
ipw2200.c ipw2200: queue direct scans 2008-06-09 15:50:16 -04:00
ipw2200.h ipw2200: queue direct scans 2008-06-09 15:50:16 -04:00
Kconfig Revert "remove the strip driver" 2008-07-18 03:58:52 -07:00
mac80211_hwsim.c mac80211_hwsim.c: fix: BUG: unable to handle kernel NULL pointer dereference at 0000000000000370 2008-07-21 13:19:35 -07:00
Makefile Revert "remove the strip driver" 2008-07-18 03:58:52 -07:00
netwave_cs.c
orinoco_cs.c orinoco_cs: add ID for SpeedStream wireless adapters 2008-05-20 17:55:30 -04:00
orinoco_nortel.c
orinoco_pci.c
orinoco_pci.h
orinoco_plx.c
orinoco_tmd.c
orinoco.c wext: Emit event stream entries correctly when compat. 2008-06-16 18:50:49 -07:00
orinoco.h
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2008-06-28 22:57:58 -07:00
rtl818x.h rtl8187: Change detection of RTL8187B with USB ID of 8187 2008-07-08 14:16:07 -04:00
rtl8180_dev.c mac80211: use multi-queue master netdevice 2008-05-21 21:48:14 -04:00
rtl8180_grf5101.c rtl8180: fix wrong parameter in grf5101_rf_set_channel 2008-05-28 16:43:40 -04:00
rtl8180_grf5101.h
rtl8180_max2820.c rtl8180: fix wrong parameter in max2820_rf_set_channel 2008-05-28 16:43:39 -04:00
rtl8180_max2820.h
rtl8180_rtl8225.c
rtl8180_rtl8225.h
rtl8180_sa2400.c rtl8180: fix wrong parameter in sa2400_rf_set_channel 2008-05-28 16:43:38 -04:00
rtl8180_sa2400.h
rtl8180.h
rtl8187_dev.c rtl8187: use different ANAPARAM*_OFF values for 8187B 2008-07-14 14:52:56 -04:00
rtl8187_rtl8225.c rtl8187: use different ANAPARAM*_OFF values for 8187B 2008-07-14 14:52:56 -04:00
rtl8187_rtl8225.h rtl8187: use different ANAPARAM*_OFF values for 8187B 2008-07-14 14:52:56 -04:00
rtl8187.h rtl8187: updating rtl8187.h to support RTL8187B 2008-07-08 14:16:06 -04:00
spectrum_cs.c
strip.c Fix strip driver back up for ldisc/tty changes 2008-07-20 17:12:38 -07:00
wavelan_cs.c wavelan: avoid index past end of array if DEBUG_SHOW_UNUSED is defined 2008-05-12 21:18:05 -04:00
wavelan_cs.h
wavelan_cs.p.h
wavelan.c wavelan: avoid index past end of array if DEBUG_SHOW_UNUSED is defined 2008-05-12 21:18:05 -04:00
wavelan.h
wavelan.p.h
wl3501_cs.c wext: Emit event stream entries correctly when compat. 2008-06-16 18:50:49 -07:00
wl3501.h
zd1201.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-18 02:39:39 -07:00
zd1201.h