Luis R. Rodriguez
b1ed8ddd21
cfg80211: fix bug while trying to process beacon hints on init
During initialization we would not have received any beacons
so skip processing reg beacon hints, also adds a check to
reg_is_world_roaming() for last_request before accessing its
fields.
This should fix this:
BUG: unable to handle kernel NULL pointer dereference at
IP: [<e0171332>] wiphy_update_regulatory+0x20f/0x295
*pdpt = 0000000008bf1001 *pde = 0000000000000000
Oops: 0000 [#1]
last sysfs file: /sys/class/backlight/eeepc/brightness
Modules linked in: ath5k(+) mac80211 led_class cfg80211
go_bit cfbcopyarea cfbimgblt cfbfillrect ipv6
ydev usual_tables(P) snd_hda_codec_realtek snd_hda_intel
nd_hwdep uhci_hcd snd_pcm_oss snd_mixer_oss i2c_i801
e serio_raw i2c_core pcspkr atl2 snd_pcm intel_agp
re agpgart eeepc_laptop snd_page_alloc ac video backlight
rfkill button processor evdev thermal fan ata_generic
Pid: 2909, comm: modprobe Tainted: Pc #112) 701
EIP: 0060:[<e0171332>] EFLAGS: 00010246 CPU: 0
EIP is at wiphy_update_regulatory+0x20f/0x295 [cfg80211]
EAX: 00000000 EBX: c5da0000 ECX: 00000000 EDX: c5da0060
ESI: 0000001a EDI: c5da0060 EBP: df3bdd70 ESP: df3bdd40
DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
Process modprobe (pid: 2909, ti=df3bc000 task=c5d030000)
Stack:
df3bdd90 c5da0060 c04277e0 00000001 00000044 c04277e402
00000002 c5da0000 0000001a c5da0060 df3bdda8 e01706a2 02
00000282 000080d0 00000068 c5d53500 00000080 0000028240
Call Trace:
[<e01706a2>] ? wiphy_register+0x122/0x1b7 [cfg80211]
[<e0328e02>] ? ieee80211_register_hw+0xd8/0x346
[<e06a7c9f>] ? ath5k_hw_set_bssid_mask+0x71/0x78 [ath5k]
[<e06b0c52>] ? ath5k_pci_probe+0xa5c/0xd0a [ath5k]
[<c01a6037>] ? sysfs_find_dirent+0x16/0x27
[<c01fec95>] ? local_pci_probe+0xe/0x10
[<c01ff526>] ? pci_device_probe+0x48/0x66
[<c024c9fd>] ? driver_probe_device+0x7f/0xf2
[<c024cab3>] ? __driver_attach+0x43/0x5f
[<c024c0af>] ? bus_for_each_dev+0x39/0x5a
[<c024c8d0>] ? driver_attach+0x14/0x16
[<c024ca70>] ? __driver_attach+0x0/0x5f
[<c024c5b3>] ? bus_add_driver+0xd7/0x1e7
[<c024ccb9>] ? driver_register+0x7b/0xd7
[<c01ff827>] ? __pci_register_driver+0x32/0x85
[<e00a8018>] ? init_ath5k_pci+0x18/0x30 [ath5k]
[<c0101131>] ? _stext+0x49/0x10b
[<e00a8000>] ? init_ath5k_pci+0x0/0x30 [ath5k]
[<c012f452>] ? __blocking_notifier_call_chain+0x40/0x4c
[<c013a714>] ? sys_init_module+0x87/0x18b
[<c0102804>] ? sysenter_do_call+0x12/0x22
Code: b8 da 17 e0 83 c0 04 e8 92 f9 ff ff 84 c0 75 2a 8b
85 c0 74 0c 83 c0 04 e8 7c f9 ff ff 84 c0 75 14 a1 bc da
4 03 74 66 8b 4d d4 80 79 08 00 74 5d a1 e0 d2 17 e0 48
EIP: [<e0171332>] wiphy_update_regulatory+0x20f/0x295
SP 0068:df3bdd40
CR2: 0000000000000004
---[ end trace 830f2dd2a95fd1a8 ]---
This issue is hard to reproduce, but it was noticed and discussed on
this thread:
http://marc.info/?t=123938022700005&r=1&w=2
Cc: stable@kernel.org
Reported-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-05-04 16:22:13 -04:00
..
2009-02-26 23:13:32 -08:00
2009-04-11 01:43:17 -07:00
2009-04-25 18:03:35 -07:00
2009-03-31 01:14:44 +04:00
2009-05-02 13:49:36 -07:00
2009-04-20 02:14:59 -07:00
2009-04-28 09:31:39 -07:00
2009-04-20 17:12:35 +02:00
2009-04-17 01:38:46 -07:00
2009-05-01 09:05:06 -07:00
2009-01-04 17:29:21 -08:00
2009-03-02 03:07:23 -08:00
2009-03-21 13:36:17 -07:00
2009-03-21 19:06:54 -07:00
2009-03-10 05:22:43 -07:00
2008-11-23 23:24:32 -08:00
2009-04-28 22:36:33 -07:00
2009-04-28 22:36:33 -07:00
2009-03-21 19:06:51 -07:00
2009-04-01 08:59:10 -07:00
2009-04-21 23:43:15 -07:00
2009-02-26 23:07:32 -08:00
2008-01-28 14:56:52 -08:00
2009-03-31 01:14:44 +04:00
2009-05-04 16:22:08 -04:00
2009-05-01 15:23:10 -07:00
2009-04-22 00:46:09 -07:00
2009-03-26 15:23:24 -07:00
2009-04-22 00:49:51 -07:00
2009-04-15 03:39:52 -07:00
2009-03-30 15:22:01 +02:00
2009-04-02 00:52:22 -07:00
2009-01-04 17:11:24 -08:00
2009-04-14 20:28:00 -07:00
2009-02-06 21:50:52 -08:00
2009-05-02 13:48:32 -07:00
2009-03-31 01:14:44 +04:00
2009-04-06 13:25:56 -07:00
2009-03-18 19:11:29 -07:00
2009-03-31 23:00:26 -04:00
2009-02-26 23:13:36 -08:00
2009-03-30 15:22:01 +02:00
2009-05-04 16:22:13 -04:00
2009-03-27 00:28:21 -07:00
2009-04-27 02:58:59 -07:00
2009-02-15 22:43:35 -08:00
2009-03-30 15:22:01 +02:00
2009-02-26 23:43:35 -08:00
2009-04-06 18:05:43 -07:00
2009-03-16 16:23:30 +01:00