<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/wireless/ath/regd.c, branch v3.2</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless</title>
<updated>2011-11-09T21:22:15+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-11-09T21:22:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3b971a7ceb2e39e0cab95c079c738b2052b3e02f'/>
<id>3b971a7ceb2e39e0cab95c079c738b2052b3e02f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ath: Fix NULL ptr dereference in ath_reg_apply_world_flags</title>
<updated>2011-11-08T20:02:45+00:00</updated>
<author>
<name>Helmut Schaa</name>
<email>helmut.schaa@googlemail.com</email>
</author>
<published>2011-11-08T13:01:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a59be0811c322f80aaa886b144239393efece42d'/>
<id>a59be0811c322f80aaa886b144239393efece42d</id>
<content type='text'>
This happens with devices using a regulatory domain 0x68 that are only
5Ghz capable because ath_reg_apply_active_scan_flags assumes that we
always have a 2,4Ghz band.

CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 82cd838c, ra == 82cd8384
Oops[#1]:
Cpu 0
$ 0 : 00000000 00000061 00000003 00000024
$ 4 : 00000003 000016c1 82f900ac 00000024
$ 8 : 00000000 82cda304 0058bad8 00000005
$12 : 005908f8 001e8481 00000003 1dcd6500
$16 : 00000002 00000000 82c700c0 82c700c0
$20 : 82d415e4 82c70d64 82c70200 82c715bc
$24 : 00000000 11e1a300
$28 : 82ce2000 82ce3c70 82c715a8 82cd8384
Hi : 00000000
Lo : 0000001e
epc : 82cd838c ath_reg_apply_world_flags+0x78/0x17c [ath]
Not tainted
ra : 82cd8384 ath_reg_apply_world_flags+0x70/0x17c [ath]
Status: 1000d403 KERNEL EXL IE
Cause : 80800008
BadVA : 00000000
PrId : 00019374 (MIPS 24Kc)
Modules linked in: ath9k(+) ath9k_common ath9k_hw ath mac80211 cfg80211
	compat_firmware_class compat arc4 aes_generic deflate ecb cbc
	leds_gpio button_hotplug gpio_buttons input_polldev ie
Process insmod (pid: 464, threadinfo=82ce2000, task=838b31d8, tls=00000000)
Stack : 00000000 00000002 82f900ac 82c700c0 82d415e4 82c70d64 00000000 00000068
82f900ac 82cd88f4 82c700c0 82cda304 00000001 000020f0 82f90000 82c70d40
00000002 82f90000 82f900ac 82d4207c 82d518a0 00000002 7fee6118 8017c0d8
00000008 8397ba00 82c70d40 00000000 82c70200 83813000 83813058 b0010000
82d518a0 00000002 7fee6118 82d4b8c8 83445cc0 80120dc0 83804000 800eeda0
...
Call Trace:
[&lt;82cd838c&gt;] ath_reg_apply_world_flags+0x78/0x17c [ath]
[&lt;82cd88f4&gt;] ath_regd_init+0x464/0x488 [ath]
[&lt;82d4207c&gt;] ath9k_init_device+0x6a4/0x6b4 [ath9k]
[&lt;82d4b8c8&gt;] ath_pci_probe+0x27c/0x358 [ath9k]
[&lt;80181de0&gt;] pci_device_probe+0x64/0xa4
[&lt;8019e874&gt;] driver_probe_device+0xb8/0x190
[&lt;8019e9b8&gt;] __driver_attach+0x6c/0xa4
[&lt;8019dfc0&gt;] bus_for_each_dev+0x60/0xb0
[&lt;8019d744&gt;] bus_add_driver+0xc4/0x25c
[&lt;8019ed6c&gt;] driver_register+0xe0/0x198
[&lt;8018206c&gt;] __pci_register_driver+0x50/0xe0
[&lt;82dd0010&gt;] ath9k_init+0x10/0x54 [ath9k]
[&lt;8006b4a0&gt;] do_one_initcall+0x68/0x1ec
[&lt;800a901c&gt;] sys_init_module+0xec/0x23c
[&lt;80062544&gt;] stack_done+0x20/0x3c

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This happens with devices using a regulatory domain 0x68 that are only
5Ghz capable because ath_reg_apply_active_scan_flags assumes that we
always have a 2,4Ghz band.

CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 82cd838c, ra == 82cd8384
Oops[#1]:
Cpu 0
$ 0 : 00000000 00000061 00000003 00000024
$ 4 : 00000003 000016c1 82f900ac 00000024
$ 8 : 00000000 82cda304 0058bad8 00000005
$12 : 005908f8 001e8481 00000003 1dcd6500
$16 : 00000002 00000000 82c700c0 82c700c0
$20 : 82d415e4 82c70d64 82c70200 82c715bc
$24 : 00000000 11e1a300
$28 : 82ce2000 82ce3c70 82c715a8 82cd8384
Hi : 00000000
Lo : 0000001e
epc : 82cd838c ath_reg_apply_world_flags+0x78/0x17c [ath]
Not tainted
ra : 82cd8384 ath_reg_apply_world_flags+0x70/0x17c [ath]
Status: 1000d403 KERNEL EXL IE
Cause : 80800008
BadVA : 00000000
PrId : 00019374 (MIPS 24Kc)
Modules linked in: ath9k(+) ath9k_common ath9k_hw ath mac80211 cfg80211
	compat_firmware_class compat arc4 aes_generic deflate ecb cbc
	leds_gpio button_hotplug gpio_buttons input_polldev ie
Process insmod (pid: 464, threadinfo=82ce2000, task=838b31d8, tls=00000000)
Stack : 00000000 00000002 82f900ac 82c700c0 82d415e4 82c70d64 00000000 00000068
82f900ac 82cd88f4 82c700c0 82cda304 00000001 000020f0 82f90000 82c70d40
00000002 82f90000 82f900ac 82d4207c 82d518a0 00000002 7fee6118 8017c0d8
00000008 8397ba00 82c70d40 00000000 82c70200 83813000 83813058 b0010000
82d518a0 00000002 7fee6118 82d4b8c8 83445cc0 80120dc0 83804000 800eeda0
...
Call Trace:
[&lt;82cd838c&gt;] ath_reg_apply_world_flags+0x78/0x17c [ath]
[&lt;82cd88f4&gt;] ath_regd_init+0x464/0x488 [ath]
[&lt;82d4207c&gt;] ath9k_init_device+0x6a4/0x6b4 [ath9k]
[&lt;82d4b8c8&gt;] ath_pci_probe+0x27c/0x358 [ath9k]
[&lt;80181de0&gt;] pci_device_probe+0x64/0xa4
[&lt;8019e874&gt;] driver_probe_device+0xb8/0x190
[&lt;8019e9b8&gt;] __driver_attach+0x6c/0xa4
[&lt;8019dfc0&gt;] bus_for_each_dev+0x60/0xb0
[&lt;8019d744&gt;] bus_add_driver+0xc4/0x25c
[&lt;8019ed6c&gt;] driver_register+0xe0/0x198
[&lt;8018206c&gt;] __pci_register_driver+0x50/0xe0
[&lt;82dd0010&gt;] ath9k_init+0x10/0x54 [ath9k]
[&lt;8006b4a0&gt;] do_one_initcall+0x68/0x1ec
[&lt;800a901c&gt;] sys_init_module+0xec/0x23c
[&lt;80062544&gt;] stack_done+0x20/0x3c

Signed-off-by: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/net: Add export.h to files using EXPORT_SYMBOL/THIS_MODULE</title>
<updated>2011-10-31T23:31:08+00:00</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-05-27T20:14:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ee40fa0656a730491765545ff7550f3c1ceb0fbc'/>
<id>ee40fa0656a730491765545ff7550f3c1ceb0fbc</id>
<content type='text'>
These were getting the macros from an implicit module.h
include via device.h, but we are planning to clean that up.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;

drivers/net: Add export.h to wireless/brcm80211/brcmfmac/bcmsdh.c

This relatively recently added file uses EXPORT_SYMBOL and hence
needs export.h included so that it is compatible with the module.h
split up work.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These were getting the macros from an implicit module.h
include via device.h, but we are planning to clean that up.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;

drivers/net: Add export.h to wireless/brcm80211/brcmfmac/bcmsdh.c

This relatively recently added file uses EXPORT_SYMBOL and hence
needs export.h included so that it is compatible with the module.h
split up work.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem</title>
<updated>2011-04-25T18:34:25+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2011-04-25T18:34:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=cfef6047c4027a8448ec8dafeaf2bb362cc882e4'/>
<id>cfef6047c4027a8448ec8dafeaf2bb362cc882e4</id>
<content type='text'>
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-core.c
	drivers/net/wireless/rt2x00/rt2x00queue.c
	drivers/net/wireless/rt2x00/rt2x00queue.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-core.c
	drivers/net/wireless/rt2x00/rt2x00queue.c
	drivers/net/wireless/rt2x00/rt2x00queue.h
</pre>
</div>
</content>
</entry>
<entry>
<title>ath: fix 0x6C for beaconing/passive scan flags based on country IE</title>
<updated>2011-04-19T19:38:02+00:00</updated>
<author>
<name>Luis R. Rodriguez</name>
<email>lrodriguez@atheros.com</email>
</author>
<published>2011-04-14T21:55:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2290a9c35df271cc33601b69e7836fa288e2fc7d'/>
<id>2290a9c35df271cc33601b69e7836fa288e2fc7d</id>
<content type='text'>
The 0x6C regulatory domain is just like the 0x6A regulatory
domain but differs in that 0x6C will allow adhoc and active
scan on its channels only if we are associated to an AP
with a country IE that allows those channels. The
ath_reg_apply_beaconing_flags() does just this -- we respect
the manufacturer's intent on only enabling beaconing modes
of operation if and only if blessed by the country IE.

Cc: David Quan &lt;david.quan@atheros.com&gt;
Cc: Senthil Balasubramanian &lt;senthilkumar@atheros.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The 0x6C regulatory domain is just like the 0x6A regulatory
domain but differs in that 0x6C will allow adhoc and active
scan on its channels only if we are associated to an AP
with a country IE that allows those channels. The
ath_reg_apply_beaconing_flags() does just this -- we respect
the manufacturer's intent on only enabling beaconing modes
of operation if and only if blessed by the country IE.

Cc: David Quan &lt;david.quan@atheros.com&gt;
Cc: Senthil Balasubramanian &lt;senthilkumar@atheros.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath: Add a missing world regulatory domain 0x6C</title>
<updated>2011-04-14T19:35:14+00:00</updated>
<author>
<name>Senthil Balasubramanian</name>
<email>senthilkumar@atheros.com</email>
</author>
<published>2011-04-14T11:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=34a0a2025c8bddc6505b56a58ef2e7333a4e4165'/>
<id>34a0a2025c8bddc6505b56a58ef2e7333a4e4165</id>
<content type='text'>
Some customers use 0x6C world regulatory domain and this patch
adds the support.

Cc: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: Senthil Balasubramanian &lt;senthilkumar@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some customers use 0x6C world regulatory domain and this patch
adds the support.

Cc: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: Senthil Balasubramanian &lt;senthilkumar@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix common misspellings</title>
<updated>2011-03-31T14:26:23+00:00</updated>
<author>
<name>Lucas De Marchi</name>
<email>lucas.demarchi@profusion.mobi</email>
</author>
<published>2011-03-31T01:57:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=25985edcedea6396277003854657b5f3cb31a628'/>
<id>25985edcedea6396277003854657b5f3cb31a628</id>
<content type='text'>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi &lt;lucas.demarchi@profusion.mobi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath: Add function to check if 4.9GHz channels are allowed</title>
<updated>2011-01-28T20:44:26+00:00</updated>
<author>
<name>Bruno Randolf</name>
<email>br1@einfach.org</email>
</author>
<published>2011-01-25T04:15:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5719efdde1d0ae8670b96eb8748d1a0dc6a37be2'/>
<id>5719efdde1d0ae8670b96eb8748d1a0dc6a37be2</id>
<content type='text'>
This adds a helper function to ath/regd.c which can be asked if 4.9GHz channels
are allowed for a given regulatory domain code. This keeps the knowledge of
regdomains and defines like MKK9_MKKC in one place. I'm passing the regdomain
code instead of the ath_regulatory structure because this needs to be called
quite early in the driver inititalization where ath_regulatory is not available
yet in ath5k.

I'm using MKK9_MKKC only because this is the regdomain in the 802.11j enabled
sample cards we got from our vendor. I found some hints in HAL code that this
is used by Atheros to indicate 4.9GHz channels support and that there might be
other domain codes as well, but as I don't have any documentation I'm just
putting in what I need right now. It can be extended later.

Signed-off-by: Bruno Randolf &lt;br1@einfach.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a helper function to ath/regd.c which can be asked if 4.9GHz channels
are allowed for a given regulatory domain code. This keeps the knowledge of
regdomains and defines like MKK9_MKKC in one place. I'm passing the regdomain
code instead of the ath_regulatory structure because this needs to be called
quite early in the driver inititalization where ath_regulatory is not available
yet in ath5k.

I'm using MKK9_MKKC only because this is the regdomain in the 802.11j enabled
sample cards we got from our vendor. I found some hints in HAL code that this
is used by Atheros to indicate 4.9GHz channels support and that there might be
other domain codes as well, but as I don't have any documentation I'm just
putting in what I need right now. It can be extended later.

Signed-off-by: Bruno Randolf &lt;br1@einfach.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath: fix NULL pointer dereference on reg_notifier()</title>
<updated>2010-12-16T20:22:31+00:00</updated>
<author>
<name>Luis R. Rodriguez</name>
<email>lrodriguez@atheros.com</email>
</author>
<published>2010-12-16T03:24:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=931299cf87701962ea1811dc216f48f3f7a4ebc8'/>
<id>931299cf87701962ea1811dc216f48f3f7a4ebc8</id>
<content type='text'>
The reg_notifier() was recently updated as being capable of
having the request passed as NULL, fix ath to follow this API
change. Without this we end up oopsing:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
IP: [&lt;ffffffffa02fb8cb&gt;] ath_reg_notifier_apply+0x5b/0xa0 [ath]
PGD b4c4c067 PUD b4c4d067 PMD 0
Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
last sysfs file: /sys/devices/pci0000:00/0000:00:1b.0/uevent
CPU 1
Modules linked in: &lt;etc&gt;
Pid: 436, comm: modprobe Not tainted 2.6.37-rc5-wl+ #36 6460DWU/6460DWU
RIP: 0010:[&lt;ffffffffa02fb8cb&gt;]  [&lt;ffffffffa02fb8cb&gt;] ath_reg_notifier_apply+0x5b/0xa0 [ath]
RSP: 0018:ffff8800b6f6baa8  EFLAGS: 00010246
RAX: ffff8800b527b254 RBX: ffff8800b532c180 RCX: 0000000000000018
RDX: ffff8800b530c108 RSI: 0000000000000000 RDI: ffff8800b532c180
RBP: ffff8800b6f6baa8 R08: ffff8800b532f268 R09: 0000000000000235
R10: 00000000000016ad R11: 0000000000000018 R12: 0000000000000000
R13: 0000000000000016 R14: ffff8800b532f268 R15: 0000000000000011
FS:  00007f0c53104700(0000) GS:ffff8800bed00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000004 CR3: 00000000b6531000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process modprobe (pid: 436, threadinfo ffff8800b6f6a000, task ffff8800b404dc40)
Stack:
 ffff8800b6f6bac8 ffffffffa03ea651 ffff8800b532c180 ffff8800b527b254
 ffff8800b6f6bb38 ffffffffa01835ca ffffffffa019ed00 00000000a019ed80
 0000000000000002 ffff880000000002 ffffffffa0366140 0000000010aee572
Call Trace:
 [&lt;ffffffffa03ea651&gt;] ath9k_reg_notifier+0x41/0x50 [ath9k]
 [&lt;ffffffffa01835ca&gt;] wiphy_update_regulatory+0x4ba/0x5a0 [cfg80211]
 [&lt;ffffffffa0366140&gt;] ? ieee80211_register_hw+0xa0/0x5b0 [mac80211]
 [&lt;ffffffffa0366140&gt;] ? ieee80211_register_hw+0xa0/0x5b0 [mac80211]
 [&lt;ffffffffa017f994&gt;] wiphy_register+0x1d4/0x360 [cfg80211]
 [&lt;ffffffff8114b918&gt;] ? __kmalloc+0x108/0x1c0
 [&lt;ffffffffa0366223&gt;] ieee80211_register_hw+0x183/0x5b0 [mac80211]
 [&lt;ffffffffa03eb49b&gt;] ath9k_init_device+0x66b/0x850 [ath9k]
 [&lt;ffffffffa03f9dd6&gt;] ath_pci_probe+0x2f6/0x3c0 [ath9k]
 [&lt;ffffffff81037529&gt;] ? default_spin_lock_flags+0x9/0x10
 [&lt;ffffffff812e19cf&gt;] local_pci_probe+0x5f/0xd0
 [&lt;ffffffff812e2bf1&gt;] pci_device_probe+0x101/0x120
 [&lt;ffffffff81390aca&gt;] ? driver_sysfs_add+0x7a/0xb0
 [&lt;ffffffff81390c26&gt;] driver_probe_device+0x96/0x1c0
 [&lt;ffffffff81390deb&gt;] __driver_attach+0x9b/0xa0
 [&lt;ffffffff81390d50&gt;] ? __driver_attach+0x0/0xa0
 [&lt;ffffffff81390008&gt;] bus_for_each_dev+0x68/0x90
 [&lt;ffffffff81390a4e&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff81390309&gt;] bus_add_driver+0xe9/0x290
 [&lt;ffffffffa0407000&gt;] ? ath9k_init+0x0/0x4d [ath9k]
 [&lt;ffffffff81391130&gt;] driver_register+0x80/0x150
 [&lt;ffffffffa0407000&gt;] ? ath9k_init+0x0/0x4d [ath9k]
 [&lt;ffffffffa0407000&gt;] ? ath9k_init+0x0/0x4d [ath9k]
 [&lt;ffffffff812e2e76&gt;] __pci_register_driver+0x56/0xd0
 [&lt;ffffffffa03f9ec3&gt;] ath_pci_init+0x23/0x30 [ath9k]
 [&lt;ffffffffa040702b&gt;] ath9k_init+0x2b/0x4d [ath9k]
 [&lt;ffffffff81002053&gt;] do_one_initcall+0x43/0x190
 [&lt;ffffffff8109fb5b&gt;] sys_init_module+0xbb/0x200
 [&lt;ffffffff8100c042&gt;] system_call_fastpath+0x16/0x1b
Code: &lt;who even reads this anyway? haha, ok you do&gt;
RIP  [&lt;ffffffffa02fb8cb&gt;] ath_reg_notifier_apply+0x5b/0xa0 [ath]
 RSP &lt;ffff8800b6f6baa8&gt;
CR2: 0000000000000004
---[ end trace 6d03d3c7eda9f06b ]---

Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The reg_notifier() was recently updated as being capable of
having the request passed as NULL, fix ath to follow this API
change. Without this we end up oopsing:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
IP: [&lt;ffffffffa02fb8cb&gt;] ath_reg_notifier_apply+0x5b/0xa0 [ath]
PGD b4c4c067 PUD b4c4d067 PMD 0
Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
last sysfs file: /sys/devices/pci0000:00/0000:00:1b.0/uevent
CPU 1
Modules linked in: &lt;etc&gt;
Pid: 436, comm: modprobe Not tainted 2.6.37-rc5-wl+ #36 6460DWU/6460DWU
RIP: 0010:[&lt;ffffffffa02fb8cb&gt;]  [&lt;ffffffffa02fb8cb&gt;] ath_reg_notifier_apply+0x5b/0xa0 [ath]
RSP: 0018:ffff8800b6f6baa8  EFLAGS: 00010246
RAX: ffff8800b527b254 RBX: ffff8800b532c180 RCX: 0000000000000018
RDX: ffff8800b530c108 RSI: 0000000000000000 RDI: ffff8800b532c180
RBP: ffff8800b6f6baa8 R08: ffff8800b532f268 R09: 0000000000000235
R10: 00000000000016ad R11: 0000000000000018 R12: 0000000000000000
R13: 0000000000000016 R14: ffff8800b532f268 R15: 0000000000000011
FS:  00007f0c53104700(0000) GS:ffff8800bed00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000004 CR3: 00000000b6531000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process modprobe (pid: 436, threadinfo ffff8800b6f6a000, task ffff8800b404dc40)
Stack:
 ffff8800b6f6bac8 ffffffffa03ea651 ffff8800b532c180 ffff8800b527b254
 ffff8800b6f6bb38 ffffffffa01835ca ffffffffa019ed00 00000000a019ed80
 0000000000000002 ffff880000000002 ffffffffa0366140 0000000010aee572
Call Trace:
 [&lt;ffffffffa03ea651&gt;] ath9k_reg_notifier+0x41/0x50 [ath9k]
 [&lt;ffffffffa01835ca&gt;] wiphy_update_regulatory+0x4ba/0x5a0 [cfg80211]
 [&lt;ffffffffa0366140&gt;] ? ieee80211_register_hw+0xa0/0x5b0 [mac80211]
 [&lt;ffffffffa0366140&gt;] ? ieee80211_register_hw+0xa0/0x5b0 [mac80211]
 [&lt;ffffffffa017f994&gt;] wiphy_register+0x1d4/0x360 [cfg80211]
 [&lt;ffffffff8114b918&gt;] ? __kmalloc+0x108/0x1c0
 [&lt;ffffffffa0366223&gt;] ieee80211_register_hw+0x183/0x5b0 [mac80211]
 [&lt;ffffffffa03eb49b&gt;] ath9k_init_device+0x66b/0x850 [ath9k]
 [&lt;ffffffffa03f9dd6&gt;] ath_pci_probe+0x2f6/0x3c0 [ath9k]
 [&lt;ffffffff81037529&gt;] ? default_spin_lock_flags+0x9/0x10
 [&lt;ffffffff812e19cf&gt;] local_pci_probe+0x5f/0xd0
 [&lt;ffffffff812e2bf1&gt;] pci_device_probe+0x101/0x120
 [&lt;ffffffff81390aca&gt;] ? driver_sysfs_add+0x7a/0xb0
 [&lt;ffffffff81390c26&gt;] driver_probe_device+0x96/0x1c0
 [&lt;ffffffff81390deb&gt;] __driver_attach+0x9b/0xa0
 [&lt;ffffffff81390d50&gt;] ? __driver_attach+0x0/0xa0
 [&lt;ffffffff81390008&gt;] bus_for_each_dev+0x68/0x90
 [&lt;ffffffff81390a4e&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff81390309&gt;] bus_add_driver+0xe9/0x290
 [&lt;ffffffffa0407000&gt;] ? ath9k_init+0x0/0x4d [ath9k]
 [&lt;ffffffff81391130&gt;] driver_register+0x80/0x150
 [&lt;ffffffffa0407000&gt;] ? ath9k_init+0x0/0x4d [ath9k]
 [&lt;ffffffffa0407000&gt;] ? ath9k_init+0x0/0x4d [ath9k]
 [&lt;ffffffff812e2e76&gt;] __pci_register_driver+0x56/0xd0
 [&lt;ffffffffa03f9ec3&gt;] ath_pci_init+0x23/0x30 [ath9k]
 [&lt;ffffffffa040702b&gt;] ath9k_init+0x2b/0x4d [ath9k]
 [&lt;ffffffff81002053&gt;] do_one_initcall+0x43/0x190
 [&lt;ffffffff8109fb5b&gt;] sys_init_module+0xbb/0x200
 [&lt;ffffffff8100c042&gt;] system_call_fastpath+0x16/0x1b
Code: &lt;who even reads this anyway? haha, ok you do&gt;
RIP  [&lt;ffffffffa02fb8cb&gt;] ath_reg_notifier_apply+0x5b/0xa0 [ath]
 RSP &lt;ffff8800b6f6baa8&gt;
CR2: 0000000000000004
---[ end trace 6d03d3c7eda9f06b ]---

Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/net: Remove unnecessary returns from void function()s</title>
<updated>2010-05-14T07:19:28+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-05-14T07:19:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a4b770972b8f819e408d7cc3ae9637e15bff62f6'/>
<id>a4b770972b8f819e408d7cc3ae9637e15bff62f6</id>
<content type='text'>
This patch removes from drivers/net/ all the unnecessary
return; statements that precede the last closing brace of
void functions.

It does not remove the returns that are immediately
preceded by a label as gcc doesn't like that.

It also does not remove null void functions with return.

Done via:
$ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
  xargs perl -i -e 'local $/ ; while (&lt;&gt;) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'

with some cleanups by hand.

Compile tested x86 allmodconfig only.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch removes from drivers/net/ all the unnecessary
return; statements that precede the last closing brace of
void functions.

It does not remove the returns that are immediately
preceded by a label as gcc doesn't like that.

It also does not remove null void functions with return.

Done via:
$ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
  xargs perl -i -e 'local $/ ; while (&lt;&gt;) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'

with some cleanups by hand.

Compile tested x86 allmodconfig only.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
