<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/wireless/rt2x00, branch v3.16</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>rt2800usb: Don't perform DMA from stack</title>
<updated>2014-07-07T19:04:34+00:00</updated>
<author>
<name>Andrea Merello</name>
<email>andrea.merello@gmail.com</email>
</author>
<published>2014-07-05T19:07:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2c4db12ec469b9fcdad9f6bfd6fa20e65a563ac5'/>
<id>2c4db12ec469b9fcdad9f6bfd6fa20e65a563ac5</id>
<content type='text'>
Function rt2800usb_autorun_detect() passes the address of a variable
allocated onto the stack to be used for DMA by the USB layer. This has
been caught by my debugging-enabled kernel.

This patch change things in order to allocate that variable via
kmalloc, and it adjusts things to handle the kmalloc failure case,
propagating the error.

[ 7363.238852] ------------[ cut here ]------------
[ 7363.243529] WARNING: CPU: 1 PID: 5235 at lib/dma-debug.c:1153 check_for_stack+0xa4/0xf0()
[ 7363.251759] ehci-pci 0000:00:04.1: DMA-API: device driver maps memory fromstack [addr=ffff88006b81bad4]
[ 7363.261210] Modules linked in: rt2800usb(O+) rt2800lib(O) rt2x00usb(O) rt2x00lib(O) rtl818x_pci(O) rtl8187 led_class eeprom_93cx6 mac80211 cfg80211 [last unloaded: rt2x00lib]
[ 7363.277143] CPU: 1 PID: 5235 Comm: systemd-udevd Tainted: G           O  3.16.0-rc3-wl+ #31
[ 7363.285546] Hardware name: System manufacturer System Product Name/M3N78 PRO, BIOS ASUS M3N78 PRO ACPI BIOS Revision 1402 12/04/2009
[ 7363.297511]  0000000000000009 ffff88006b81b710 ffffffff8175dcad ffff88006b81b758
[ 7363.305062]  ffff88006b81b748 ffffffff8106d372 ffff88006cf10098 ffff88006cead6a0
[ 7363.312622]  ffff88006b81bad4 ffffffff81c1e7c0 ffff88006cf10098 ffff88006b81b7a8
[ 7363.320161] Call Trace:
[ 7363.322661]  [&lt;ffffffff8175dcad&gt;] dump_stack+0x4d/0x6f
[ 7363.327847]  [&lt;ffffffff8106d372&gt;] warn_slowpath_common+0x82/0xb0
[ 7363.333893]  [&lt;ffffffff8106d3e7&gt;] warn_slowpath_fmt+0x47/0x50
[ 7363.339686]  [&lt;ffffffff813a93b4&gt;] check_for_stack+0xa4/0xf0
[ 7363.345298]  [&lt;ffffffff813a995c&gt;] debug_dma_map_page+0x10c/0x150
[ 7363.351367]  [&lt;ffffffff81521bd9&gt;] usb_hcd_map_urb_for_dma+0x229/0x720
[ 7363.357890]  [&lt;ffffffff8152256d&gt;] usb_hcd_submit_urb+0x2fd/0x930
[ 7363.363929]  [&lt;ffffffff810eac31&gt;] ? irq_work_queue+0x71/0xd0
[ 7363.369617]  [&lt;ffffffff810ab5a7&gt;] ? wake_up_klogd+0x37/0x50
[ 7363.375219]  [&lt;ffffffff810ab7a5&gt;] ? console_unlock+0x1e5/0x420
[ 7363.381081]  [&lt;ffffffff810abc25&gt;] ? vprintk_emit+0x245/0x530
[ 7363.386773]  [&lt;ffffffff81523d3c&gt;] usb_submit_urb+0x30c/0x580
[ 7363.392462]  [&lt;ffffffff81524295&gt;] usb_start_wait_urb+0x65/0xf0
[ 7363.398325]  [&lt;ffffffff815243ed&gt;] usb_control_msg+0xcd/0x110
[ 7363.404014]  [&lt;ffffffffa005514d&gt;] rt2x00usb_vendor_request+0xbd/0x170 [rt2x00usb]
[ 7363.411544]  [&lt;ffffffffa0074292&gt;] rt2800usb_autorun_detect+0x32/0x50 [rt2800usb]
[ 7363.418986]  [&lt;ffffffffa0074aa1&gt;] rt2800usb_read_eeprom+0x11/0x70 [rt2800usb]
[ 7363.426168]  [&lt;ffffffffa0063ffd&gt;] rt2800_probe_hw+0x11d/0xf90 [rt2800lib]
[ 7363.432989]  [&lt;ffffffffa0074b7d&gt;] rt2800usb_probe_hw+0xd/0x50 [rt2800usb]
[ 7363.439808]  [&lt;ffffffffa00453d8&gt;] rt2x00lib_probe_dev+0x238/0x7c0 [rt2x00lib]
[ 7363.446992]  [&lt;ffffffffa00bfa48&gt;] ? ieee80211_led_names+0xb8/0x100 [mac80211]
[ 7363.454156]  [&lt;ffffffffa0056116&gt;] rt2x00usb_probe+0x156/0x1f0 [rt2x00usb]
[ 7363.460971]  [&lt;ffffffffa0074250&gt;] rt2800usb_probe+0x10/0x20 [rt2800usb]
[ 7363.467616]  [&lt;ffffffff8152799e&gt;] usb_probe_interface+0xce/0x1c0
[ 7363.473651]  [&lt;ffffffff81480c20&gt;] really_probe+0x70/0x240
[ 7363.479079]  [&lt;ffffffff81480f01&gt;] __driver_attach+0xa1/0xb0
[ 7363.484682]  [&lt;ffffffff81480e60&gt;] ? __device_attach+0x70/0x70
[ 7363.490461]  [&lt;ffffffff8147eef3&gt;] bus_for_each_dev+0x63/0xa0
[ 7363.496146]  [&lt;ffffffff814807c9&gt;] driver_attach+0x19/0x20
[ 7363.501570]  [&lt;ffffffff81480468&gt;] bus_add_driver+0x178/0x220
[ 7363.507270]  [&lt;ffffffff8148151b&gt;] driver_register+0x5b/0xe0
[ 7363.512874]  [&lt;ffffffff815271b0&gt;] usb_register_driver+0xa0/0x170
[ 7363.518905]  [&lt;ffffffffa007a000&gt;] ? 0xffffffffa0079fff
[ 7363.524074]  [&lt;ffffffffa007a01e&gt;] rt2800usb_driver_init+0x1e/0x20 [rt2800usb]
[ 7363.531247]  [&lt;ffffffff810002d4&gt;] do_one_initcall+0x84/0x1b0
[ 7363.536932]  [&lt;ffffffff8113aa60&gt;] ? kfree+0xd0/0x110
[ 7363.541931]  [&lt;ffffffff8112730a&gt;] ? __vunmap+0xaa/0xf0
[ 7363.547538]  [&lt;ffffffff810ca07e&gt;] load_module+0x1aee/0x2040
[ 7363.553141]  [&lt;ffffffff810c6f10&gt;] ? store_uevent+0x50/0x50
[ 7363.558676]  [&lt;ffffffff810ca66e&gt;] SyS_init_module+0x9e/0xc0
[ 7363.564285]  [&lt;ffffffff81764012&gt;] system_call_fastpath+0x16/0x1b
[ 7363.570338] ---[ end trace 01ef5f822bea9882 ]---

Signed-off-by: Andrea Merello &lt;andrea.merello@gmail.com&gt;
Acked-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>
Function rt2800usb_autorun_detect() passes the address of a variable
allocated onto the stack to be used for DMA by the USB layer. This has
been caught by my debugging-enabled kernel.

This patch change things in order to allocate that variable via
kmalloc, and it adjusts things to handle the kmalloc failure case,
propagating the error.

[ 7363.238852] ------------[ cut here ]------------
[ 7363.243529] WARNING: CPU: 1 PID: 5235 at lib/dma-debug.c:1153 check_for_stack+0xa4/0xf0()
[ 7363.251759] ehci-pci 0000:00:04.1: DMA-API: device driver maps memory fromstack [addr=ffff88006b81bad4]
[ 7363.261210] Modules linked in: rt2800usb(O+) rt2800lib(O) rt2x00usb(O) rt2x00lib(O) rtl818x_pci(O) rtl8187 led_class eeprom_93cx6 mac80211 cfg80211 [last unloaded: rt2x00lib]
[ 7363.277143] CPU: 1 PID: 5235 Comm: systemd-udevd Tainted: G           O  3.16.0-rc3-wl+ #31
[ 7363.285546] Hardware name: System manufacturer System Product Name/M3N78 PRO, BIOS ASUS M3N78 PRO ACPI BIOS Revision 1402 12/04/2009
[ 7363.297511]  0000000000000009 ffff88006b81b710 ffffffff8175dcad ffff88006b81b758
[ 7363.305062]  ffff88006b81b748 ffffffff8106d372 ffff88006cf10098 ffff88006cead6a0
[ 7363.312622]  ffff88006b81bad4 ffffffff81c1e7c0 ffff88006cf10098 ffff88006b81b7a8
[ 7363.320161] Call Trace:
[ 7363.322661]  [&lt;ffffffff8175dcad&gt;] dump_stack+0x4d/0x6f
[ 7363.327847]  [&lt;ffffffff8106d372&gt;] warn_slowpath_common+0x82/0xb0
[ 7363.333893]  [&lt;ffffffff8106d3e7&gt;] warn_slowpath_fmt+0x47/0x50
[ 7363.339686]  [&lt;ffffffff813a93b4&gt;] check_for_stack+0xa4/0xf0
[ 7363.345298]  [&lt;ffffffff813a995c&gt;] debug_dma_map_page+0x10c/0x150
[ 7363.351367]  [&lt;ffffffff81521bd9&gt;] usb_hcd_map_urb_for_dma+0x229/0x720
[ 7363.357890]  [&lt;ffffffff8152256d&gt;] usb_hcd_submit_urb+0x2fd/0x930
[ 7363.363929]  [&lt;ffffffff810eac31&gt;] ? irq_work_queue+0x71/0xd0
[ 7363.369617]  [&lt;ffffffff810ab5a7&gt;] ? wake_up_klogd+0x37/0x50
[ 7363.375219]  [&lt;ffffffff810ab7a5&gt;] ? console_unlock+0x1e5/0x420
[ 7363.381081]  [&lt;ffffffff810abc25&gt;] ? vprintk_emit+0x245/0x530
[ 7363.386773]  [&lt;ffffffff81523d3c&gt;] usb_submit_urb+0x30c/0x580
[ 7363.392462]  [&lt;ffffffff81524295&gt;] usb_start_wait_urb+0x65/0xf0
[ 7363.398325]  [&lt;ffffffff815243ed&gt;] usb_control_msg+0xcd/0x110
[ 7363.404014]  [&lt;ffffffffa005514d&gt;] rt2x00usb_vendor_request+0xbd/0x170 [rt2x00usb]
[ 7363.411544]  [&lt;ffffffffa0074292&gt;] rt2800usb_autorun_detect+0x32/0x50 [rt2800usb]
[ 7363.418986]  [&lt;ffffffffa0074aa1&gt;] rt2800usb_read_eeprom+0x11/0x70 [rt2800usb]
[ 7363.426168]  [&lt;ffffffffa0063ffd&gt;] rt2800_probe_hw+0x11d/0xf90 [rt2800lib]
[ 7363.432989]  [&lt;ffffffffa0074b7d&gt;] rt2800usb_probe_hw+0xd/0x50 [rt2800usb]
[ 7363.439808]  [&lt;ffffffffa00453d8&gt;] rt2x00lib_probe_dev+0x238/0x7c0 [rt2x00lib]
[ 7363.446992]  [&lt;ffffffffa00bfa48&gt;] ? ieee80211_led_names+0xb8/0x100 [mac80211]
[ 7363.454156]  [&lt;ffffffffa0056116&gt;] rt2x00usb_probe+0x156/0x1f0 [rt2x00usb]
[ 7363.460971]  [&lt;ffffffffa0074250&gt;] rt2800usb_probe+0x10/0x20 [rt2800usb]
[ 7363.467616]  [&lt;ffffffff8152799e&gt;] usb_probe_interface+0xce/0x1c0
[ 7363.473651]  [&lt;ffffffff81480c20&gt;] really_probe+0x70/0x240
[ 7363.479079]  [&lt;ffffffff81480f01&gt;] __driver_attach+0xa1/0xb0
[ 7363.484682]  [&lt;ffffffff81480e60&gt;] ? __device_attach+0x70/0x70
[ 7363.490461]  [&lt;ffffffff8147eef3&gt;] bus_for_each_dev+0x63/0xa0
[ 7363.496146]  [&lt;ffffffff814807c9&gt;] driver_attach+0x19/0x20
[ 7363.501570]  [&lt;ffffffff81480468&gt;] bus_add_driver+0x178/0x220
[ 7363.507270]  [&lt;ffffffff8148151b&gt;] driver_register+0x5b/0xe0
[ 7363.512874]  [&lt;ffffffff815271b0&gt;] usb_register_driver+0xa0/0x170
[ 7363.518905]  [&lt;ffffffffa007a000&gt;] ? 0xffffffffa0079fff
[ 7363.524074]  [&lt;ffffffffa007a01e&gt;] rt2800usb_driver_init+0x1e/0x20 [rt2800usb]
[ 7363.531247]  [&lt;ffffffff810002d4&gt;] do_one_initcall+0x84/0x1b0
[ 7363.536932]  [&lt;ffffffff8113aa60&gt;] ? kfree+0xd0/0x110
[ 7363.541931]  [&lt;ffffffff8112730a&gt;] ? __vunmap+0xaa/0xf0
[ 7363.547538]  [&lt;ffffffff810ca07e&gt;] load_module+0x1aee/0x2040
[ 7363.553141]  [&lt;ffffffff810c6f10&gt;] ? store_uevent+0x50/0x50
[ 7363.558676]  [&lt;ffffffff810ca66e&gt;] SyS_init_module+0x9e/0xc0
[ 7363.564285]  [&lt;ffffffff81764012&gt;] system_call_fastpath+0x16/0x1b
[ 7363.570338] ---[ end trace 01ef5f822bea9882 ]---

Signed-off-by: Andrea Merello &lt;andrea.merello@gmail.com&gt;
Acked-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>rt2x00: fix rfkill regression on rt2500pci</title>
<updated>2014-06-17T18:11:16+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>stf_xl@wp.pl</email>
</author>
<published>2014-06-16T16:45:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=616a8394b5df8c88f4dd416f4527439a4e365034'/>
<id>616a8394b5df8c88f4dd416f4527439a4e365034</id>
<content type='text'>
As reported by Niels, starting rfkill polling during device probe
(commit e2bc7c5, generally sane change) broke rfkill on rt2500pci
device. I considered that bug as some initalization issue, which
should be fixed on rt2500pci specific code. But after several
attempts (see bug report for details) we fail to find working solution.
Hence I decided to revert to old behaviour on rt2500pci to fix
regression.

Additionally patch also unregister rfkill on device remove instead
of ifconfig down, what was another issue introduced by bad commit.

Bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=73821

Fixes: e2bc7c5f3cb8 ("rt2x00: Fix rfkill_polling register function.")
Cc: stable@vger.kernel.org
Bisected-by: Niels &lt;nille0386@googlemail.com&gt;
Reported-and-tested-by: Niels &lt;nille0386@googlemail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;stf_xl@wp.pl&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>
As reported by Niels, starting rfkill polling during device probe
(commit e2bc7c5, generally sane change) broke rfkill on rt2500pci
device. I considered that bug as some initalization issue, which
should be fixed on rt2500pci specific code. But after several
attempts (see bug report for details) we fail to find working solution.
Hence I decided to revert to old behaviour on rt2500pci to fix
regression.

Additionally patch also unregister rfkill on device remove instead
of ifconfig down, what was another issue introduced by bad commit.

Bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=73821

Fixes: e2bc7c5f3cb8 ("rt2x00: Fix rfkill_polling register function.")
Cc: stable@vger.kernel.org
Bisected-by: Niels &lt;nille0386@googlemail.com&gt;
Reported-and-tested-by: Niels &lt;nille0386@googlemail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;stf_xl@wp.pl&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2800usb:fix hang during firmware load</title>
<updated>2014-06-17T18:11:16+00:00</updated>
<author>
<name>Michael Braun</name>
<email>michael-dev@fami-braun.de</email>
</author>
<published>2014-06-12T17:33:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b663cd10f0ba351ae520fa3627e13061d7f8e714'/>
<id>b663cd10f0ba351ae520fa3627e13061d7f8e714</id>
<content type='text'>
The device 057c:8501 (AVM Fritz! WLAN v2 rev. B) boots into a state that does
not actually require loading a firmware file. The vendors driver finds out
about this by checking a firmware state register, so this patch adds this here.

Finally, with this patch applied, my wifi dongle actually becomes
useful (scan + connect to wpa network works).

Signed-off-by: Michael Braun &lt;michael-dev@fami-braun.de&gt;
Acked-by: Stanislaw Gruszka &lt;sgruszka@redhat.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 device 057c:8501 (AVM Fritz! WLAN v2 rev. B) boots into a state that does
not actually require loading a firmware file. The vendors driver finds out
about this by checking a firmware state register, so this patch adds this here.

Finally, with this patch applied, my wifi dongle actually becomes
useful (scan + connect to wpa network works).

Signed-off-by: Michael Braun &lt;michael-dev@fami-braun.de&gt;
Acked-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2800usb:fix efuse detection</title>
<updated>2014-06-17T18:11:15+00:00</updated>
<author>
<name>Michael Braun</name>
<email>michael-dev@fami-braun.de</email>
</author>
<published>2014-06-12T17:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=de51b35d506f9f9e8ab7bb5987ed5d50a76bd906'/>
<id>de51b35d506f9f9e8ab7bb5987ed5d50a76bd906</id>
<content type='text'>
The device 057c:8501 (AVM Fritz! WLAN v2 rev. B) currently does not
load. One thing observed is that the vendors driver detects EFUSE mode
for this device, but rt2800usb does not. This is due to rt2800usb
lacking a check for the firmware mode present in the vendors driver,
that this patch adopts for rt2800usb.

With this patch applied, the 'RF chipset' detection does no longer fail.

Signed-off-by: Michael Braun &lt;michael-dev@fami-braun.de&gt;
Acked-by: Stanislaw Gruszka &lt;sgruszka@redhat.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 device 057c:8501 (AVM Fritz! WLAN v2 rev. B) currently does not
load. One thing observed is that the vendors driver detects EFUSE mode
for this device, but rt2800usb does not. This is due to rt2800usb
lacking a check for the firmware mode present in the vendors driver,
that this patch adopts for rt2800usb.

With this patch applied, the 'RF chipset' detection does no longer fail.

Signed-off-by: Michael Braun &lt;michael-dev@fami-braun.de&gt;
Acked-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: disable TKIP on USB</title>
<updated>2014-06-16T15:23:33+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2014-06-10T10:51:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8edcb0ba0d56f5914eef11eda6db8bfe74eb9ca8'/>
<id>8edcb0ba0d56f5914eef11eda6db8bfe74eb9ca8</id>
<content type='text'>
On USB we can not get atomically TKIP key. We have to disable support
for TKIP acceleration on USB hardware to avoid bug as showed bellow.

[  860.827243] BUG: scheduling while atomic: hostapd/3397/0x00000002
&lt;snip&gt;
[  860.827280] Call Trace:
[  860.827282]  [&lt;ffffffff81682ea6&gt;] dump_stack+0x4d/0x66
[  860.827284]  [&lt;ffffffff8167eb9b&gt;] __schedule_bug+0x47/0x55
[  860.827285]  [&lt;ffffffff81685bb3&gt;] __schedule+0x733/0x7b0
[  860.827287]  [&lt;ffffffff81685c59&gt;] schedule+0x29/0x70
[  860.827289]  [&lt;ffffffff81684f8a&gt;] schedule_timeout+0x15a/0x2b0
[  860.827291]  [&lt;ffffffff8105ac50&gt;] ? ftrace_raw_event_tick_stop+0xc0/0xc0
[  860.827294]  [&lt;ffffffff810c13c2&gt;] ? __module_text_address+0x12/0x70
[  860.827296]  [&lt;ffffffff81686823&gt;] wait_for_completion_timeout+0xb3/0x140
[  860.827298]  [&lt;ffffffff81080fc0&gt;] ? wake_up_state+0x20/0x20
[  860.827301]  [&lt;ffffffff814d5b3d&gt;] usb_start_wait_urb+0x7d/0x150
[  860.827303]  [&lt;ffffffff814d5cd5&gt;] usb_control_msg+0xc5/0x110
[  860.827305]  [&lt;ffffffffa02fb0c6&gt;] rt2x00usb_vendor_request+0xc6/0x160  [rt2x00usb]
[  860.827307]  [&lt;ffffffffa02fb215&gt;] rt2x00usb_vendor_req_buff_lock+0x75/0x150 [rt2x00usb]
[  860.827309]  [&lt;ffffffffa02fb393&gt;] rt2x00usb_vendor_request_buff+0xa3/0xe0 [rt2x00usb]
[  860.827311]  [&lt;ffffffffa023d1a3&gt;] rt2x00usb_register_multiread+0x33/0x40 [rt2800usb]
[  860.827314]  [&lt;ffffffffa05805f9&gt;] rt2800_get_tkip_seq+0x39/0x50  [rt2800lib]
[  860.827321]  [&lt;ffffffffa0480f88&gt;] ieee80211_get_key+0x218/0x2a0  [mac80211]
[  860.827322]  [&lt;ffffffff815cc68c&gt;] ? __nlmsg_put+0x6c/0x80
[  860.827329]  [&lt;ffffffffa051b02e&gt;] nl80211_get_key+0x22e/0x360 [cfg80211]

Cc: stable@vger.kernel.org
Reported-and-tested-by: Peter Wu &lt;lekensteyn@gmail.com&gt;
Reported-and-tested-by: Pontus Fuchs &lt;pontus.fuchs@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.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>
On USB we can not get atomically TKIP key. We have to disable support
for TKIP acceleration on USB hardware to avoid bug as showed bellow.

[  860.827243] BUG: scheduling while atomic: hostapd/3397/0x00000002
&lt;snip&gt;
[  860.827280] Call Trace:
[  860.827282]  [&lt;ffffffff81682ea6&gt;] dump_stack+0x4d/0x66
[  860.827284]  [&lt;ffffffff8167eb9b&gt;] __schedule_bug+0x47/0x55
[  860.827285]  [&lt;ffffffff81685bb3&gt;] __schedule+0x733/0x7b0
[  860.827287]  [&lt;ffffffff81685c59&gt;] schedule+0x29/0x70
[  860.827289]  [&lt;ffffffff81684f8a&gt;] schedule_timeout+0x15a/0x2b0
[  860.827291]  [&lt;ffffffff8105ac50&gt;] ? ftrace_raw_event_tick_stop+0xc0/0xc0
[  860.827294]  [&lt;ffffffff810c13c2&gt;] ? __module_text_address+0x12/0x70
[  860.827296]  [&lt;ffffffff81686823&gt;] wait_for_completion_timeout+0xb3/0x140
[  860.827298]  [&lt;ffffffff81080fc0&gt;] ? wake_up_state+0x20/0x20
[  860.827301]  [&lt;ffffffff814d5b3d&gt;] usb_start_wait_urb+0x7d/0x150
[  860.827303]  [&lt;ffffffff814d5cd5&gt;] usb_control_msg+0xc5/0x110
[  860.827305]  [&lt;ffffffffa02fb0c6&gt;] rt2x00usb_vendor_request+0xc6/0x160  [rt2x00usb]
[  860.827307]  [&lt;ffffffffa02fb215&gt;] rt2x00usb_vendor_req_buff_lock+0x75/0x150 [rt2x00usb]
[  860.827309]  [&lt;ffffffffa02fb393&gt;] rt2x00usb_vendor_request_buff+0xa3/0xe0 [rt2x00usb]
[  860.827311]  [&lt;ffffffffa023d1a3&gt;] rt2x00usb_register_multiread+0x33/0x40 [rt2800usb]
[  860.827314]  [&lt;ffffffffa05805f9&gt;] rt2800_get_tkip_seq+0x39/0x50  [rt2800lib]
[  860.827321]  [&lt;ffffffffa0480f88&gt;] ieee80211_get_key+0x218/0x2a0  [mac80211]
[  860.827322]  [&lt;ffffffff815cc68c&gt;] ? __nlmsg_put+0x6c/0x80
[  860.827329]  [&lt;ffffffffa051b02e&gt;] nl80211_get_key+0x22e/0x360 [cfg80211]

Cc: stable@vger.kernel.org
Reported-and-tested-by: Peter Wu &lt;lekensteyn@gmail.com&gt;
Reported-and-tested-by: Pontus Fuchs &lt;pontus.fuchs@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Endless loop on hub port power down</title>
<updated>2014-05-22T18:04:36+00:00</updated>
<author>
<name>Richard Genoud</name>
<email>richard.genoud@gmail.com</email>
</author>
<published>2014-04-03T14:48:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2ad69ac5976191e9bb7dc4044204a504653ad1bb'/>
<id>2ad69ac5976191e9bb7dc4044204a504653ad1bb</id>
<content type='text'>
I've met an endless (or at least very long) loop if I power down the usb
port on witch a usb wifi key is plugged.
(Ok, it's not very smart to power down a usb port when a usb key is in
used... but still, I think that should not lead to an endless loop).

I have a lot of:
ieee80211 phy1: rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x0438 with error -71

(-71==-EPROTO)

How to reproduce:
- plug an usb wifi key
- ip link set wlan0 up
- hub-ctrl -b usb_bus -d usb_device -P usb_port -p 0

hub-ctrl source: https://github.com/codazoda/hub-ctrl.c/blob/master/hub-ctrl.c

The following patch prevents the endless loop, but I'm really not sure
that The Right Way To Do It (R)

Signed-off-by: Richard Genoud &lt;richard.genoud@gmail.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>
I've met an endless (or at least very long) loop if I power down the usb
port on witch a usb wifi key is plugged.
(Ok, it's not very smart to power down a usb port when a usb key is in
used... but still, I think that should not lead to an endless loop).

I have a lot of:
ieee80211 phy1: rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x0438 with error -71

(-71==-EPROTO)

How to reproduce:
- plug an usb wifi key
- ip link set wlan0 up
- hub-ctrl -b usb_bus -d usb_device -P usb_port -p 0

hub-ctrl source: https://github.com/codazoda/hub-ctrl.c/blob/master/hub-ctrl.c

The following patch prevents the endless loop, but I'm really not sure
that The Right Way To Do It (R)

Signed-off-by: Richard Genoud &lt;richard.genoud@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless</title>
<updated>2014-05-13T19:27:44+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2014-05-13T19:27:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3231d65ffe36e177caf5006d4079867d9b7b2d4a'/>
<id>3231d65ffe36e177caf5006d4079867d9b7b2d4a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next</title>
<updated>2014-04-30T16:04:27+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2014-04-30T16:04:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f6595444c1ee798f9c227107bb3ab14730c6497a'/>
<id>f6595444c1ee798f9c227107bb3ab14730c6497a</id>
<content type='text'>
Conflicts:
	net/mac80211/chan.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	net/mac80211/chan.c
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: restore original beaconing state</title>
<updated>2014-04-22T19:06:31+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2014-04-17T09:08:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=bc0df75aea666d855c4111003dbbb197460b6642'/>
<id>bc0df75aea666d855c4111003dbbb197460b6642</id>
<content type='text'>
After changing local per interface beacon setting restore original
global beaconing state.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.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>
After changing local per interface beacon setting restore original
global beaconing state.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: fix beaconing on USB</title>
<updated>2014-04-22T18:07:48+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2014-04-17T09:08:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8834d3608cc516f13e2e510f4057c263f3d2ce42'/>
<id>8834d3608cc516f13e2e510f4057c263f3d2ce42</id>
<content type='text'>
When disable beaconing we clear register with beacon and newer set it
back, what make we stop send beacons infinitely.

Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.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>
When disable beaconing we clear register with beacon and newer set it
back, what make we stop send beacons infinitely.

Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
