<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/wireless/ath, branch v3.2.77</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>ath9k_htc: check for underflow in ath9k_htc_rx_msg()</title>
<updated>2016-02-13T10:34:04+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2015-11-06T10:01:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=636109645fa424fd896db9f25ddfd39a6cdc110f'/>
<id>636109645fa424fd896db9f25ddfd39a6cdc110f</id>
<content type='text'>
commit 3a318426e09a9c9266fe6440842e11238f640a20 upstream.

We check for overflow here, but we don't check for underflow so it
causes a static checker warning.

Fixes: fb9987d0f748 ('ath9k_htc: Support for AR9271 chipset.')
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3a318426e09a9c9266fe6440842e11238f640a20 upstream.

We check for overflow here, but we don't check for underflow so it
causes a static checker warning.

Fixes: fb9987d0f748 ('ath9k_htc: Support for AR9271 chipset.')
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: declare required extra tx headroom</title>
<updated>2015-11-17T15:54:40+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2015-09-24T14:59:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=01352209ff46c75e1c5705f02502a393ce29b992'/>
<id>01352209ff46c75e1c5705f02502a393ce29b992</id>
<content type='text'>
commit 029cd0370241641eb70235d205aa0b90c84dce44 upstream.

ath9k inserts padding between the 802.11 header and the data area (to
align it). Since it didn't declare this extra required headroom, this
led to some nasty issues like randomly dropped packets in some setups.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 029cd0370241641eb70235d205aa0b90c84dce44 upstream.

ath9k inserts padding between the 802.11 header and the data area (to
align it). Since it didn't declare this extra required headroom, this
led to some nasty issues like randomly dropped packets in some setups.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: fix DMA stop sequence for AR9003+</title>
<updated>2015-08-12T14:33:14+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2015-06-02T08:38:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0253429b31c2286d1c4eddc9762fa0d9f64f49b3'/>
<id>0253429b31c2286d1c4eddc9762fa0d9f64f49b3</id>
<content type='text'>
commit 300f77c08ded96d33f492aaa02549103852f0c12 upstream.

AR93xx and newer needs to stop rx before tx to avoid getting the DMA
engine or MAC into a stuck state.
This should reduce/fix the occurence of "Failed to stop Tx DMA" logspam.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
[bwh: Backported to 3.2:
 - Also move initialisation of ret to match upstream
 - ath_drain_all_txq() takes a second parameter]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 300f77c08ded96d33f492aaa02549103852f0c12 upstream.

AR93xx and newer needs to stop rx before tx to avoid getting the DMA
engine or MAC into a stuck state.
This should reduce/fix the occurence of "Failed to stop Tx DMA" logspam.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
[bwh: Backported to 3.2:
 - Also move initialisation of ret to match upstream
 - ath_drain_all_txq() takes a second parameter]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath5k: fix hardware queue index assignment</title>
<updated>2015-02-20T00:49:29+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2014-11-30T20:52:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5ba19ff071cd79972df3e02d3c6ae17460eb7317'/>
<id>5ba19ff071cd79972df3e02d3c6ae17460eb7317</id>
<content type='text'>
commit 9e4982f6a51a2442f1bb588fee42521b44b4531c upstream.

Like with ath9k, ath5k queues also need to be ordered by priority.
queue_info-&gt;tqi_subtype already contains the correct index, so use it
instead of relying on the order of ath5k_hw_setup_tx_queue calls.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 9e4982f6a51a2442f1bb588fee42521b44b4531c upstream.

Like with ath9k, ath5k queues also need to be ordered by priority.
queue_info-&gt;tqi_subtype already contains the correct index, so use it
instead of relying on the order of ath5k_hw_setup_tx_queue calls.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: fix BE/BK queue order</title>
<updated>2015-02-20T00:49:28+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2014-11-30T19:38:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e002a8ffe3cc016aa809c1b6134b0e154841710d'/>
<id>e002a8ffe3cc016aa809c1b6134b0e154841710d</id>
<content type='text'>
commit 78063d81d353e10cbdd279c490593113b8fdae1c upstream.

Hardware queues are ordered by priority. Use queue index 0 for BK, which
has lower priority than BE.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 78063d81d353e10cbdd279c490593113b8fdae1c upstream.

Hardware queues are ordered by priority. Use queue index 0 for BK, which
has lower priority than BE.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k_hw: fix hardware queue allocation</title>
<updated>2015-02-20T00:49:28+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2014-11-30T19:38:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6e33b48166ea43b23daf9f80b944d29118c8d70c'/>
<id>6e33b48166ea43b23daf9f80b944d29118c8d70c</id>
<content type='text'>
commit ad8fdccf9c197a89e2d2fa78c453283dcc2c343f upstream.

The driver passes the desired hardware queue index for a WMM data queue
in qinfo-&gt;tqi_subtype. This was ignored in ath9k_hw_setuptxqueue, which
instead relied on the order in which the function is called.

Reported-by: Hubert Feurstein &lt;h.feurstein@gmail.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ad8fdccf9c197a89e2d2fa78c453283dcc2c343f upstream.

The driver passes the desired hardware queue index for a WMM data queue
in qinfo-&gt;tqi_subtype. This was ignored in ath9k_hw_setuptxqueue, which
instead relied on the order in which the function is called.

Reported-by: Hubert Feurstein &lt;h.feurstein@gmail.com&gt;
Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>carl9170: fix sending URBs with wrong type when using full-speed</title>
<updated>2014-09-13T22:41:44+00:00</updated>
<author>
<name>Ronald Wahl</name>
<email>ronald.wahl@raritan.com</email>
</author>
<published>2014-08-07T12:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=67fddd870e5dfc50d104e721ceee13b01db93069'/>
<id>67fddd870e5dfc50d104e721ceee13b01db93069</id>
<content type='text'>
commit 671796dd96b6cd85b75fba9d3007bcf7e5f7c309 upstream.

The driver assumes that endpoint 4 is always an interrupt endpoint.
Unfortunately the type differs between high-speed and full-speed
configurations while in the former case it is indeed an interrupt
endpoint this is not true for the latter case - here it is a bulk
endpoint. When sending URBs with the wrong type the kernel will
generate a warning message including backtrace. In this specific
case there will be a huge amount of warnings which can bring the system
to freeze.

To fix this we are now sending URBs to endpoint 4 using the type
found in the endpoint descriptor.

A side note: The carl9170 firmware currently specifies endpoint 4 as
interrupt endpoint even in the full-speed configuration but this has
no relevance because before this firmware is loaded the endpoint type
is as described above and after the firmware is running the stick is not
reenumerated and so the old descriptor is used.

Signed-off-by: Ronald Wahl &lt;ronald.wahl@raritan.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 671796dd96b6cd85b75fba9d3007bcf7e5f7c309 upstream.

The driver assumes that endpoint 4 is always an interrupt endpoint.
Unfortunately the type differs between high-speed and full-speed
configurations while in the former case it is indeed an interrupt
endpoint this is not true for the latter case - here it is a bulk
endpoint. When sending URBs with the wrong type the kernel will
generate a warning message including backtrace. In this specific
case there will be a huge amount of warnings which can bring the system
to freeze.

To fix this we are now sending URBs to endpoint 4 using the type
found in the endpoint descriptor.

A side note: The carl9170 firmware currently specifies endpoint 4 as
interrupt endpoint even in the full-speed configuration but this has
no relevance because before this firmware is loaded the endpoint type
is as described above and after the firmware is running the stick is not
reenumerated and so the old descriptor is used.

Signed-off-by: Ronald Wahl &lt;ronald.wahl@raritan.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: fix ready time of the multicast buffer queue</title>
<updated>2014-04-30T15:23:22+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2014-03-09T10:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a7bbda740718580d49fb5a7ccd950316d58970f7'/>
<id>a7bbda740718580d49fb5a7ccd950316d58970f7</id>
<content type='text'>
commit 3b3e0efb5c72c4fc940af50b33626b8a78a907dc upstream.

qi-&gt;tqi_readyTime is written directly to registers that expect
microseconds as unit instead of TU.
When setting the CABQ ready time, cur_conf-&gt;beacon_interval is in TU, so
convert it to microseconds before passing it to ath9k_hw.

This should hopefully fix some Tx DMA issues with buffered multicast
frames in AP mode.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3b3e0efb5c72c4fc940af50b33626b8a78a907dc upstream.

qi-&gt;tqi_readyTime is written directly to registers that expect
microseconds as unit instead of TU.
When setting the CABQ ready time, cur_conf-&gt;beacon_interval is in TU, so
convert it to microseconds before passing it to ath9k_hw.

This should hopefully fix some Tx DMA issues with buffered multicast
frames in AP mode.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: Fix ETSI compliance for AR9462 2.0</title>
<updated>2014-04-01T23:58:55+00:00</updated>
<author>
<name>Sujith Manoharan</name>
<email>c_manoha@qca.qualcomm.com</email>
</author>
<published>2014-02-14T02:45:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cf5a6031f2bd8799ad551fb9b65f1b1e3104ea8a'/>
<id>cf5a6031f2bd8799ad551fb9b65f1b1e3104ea8a</id>
<content type='text'>
commit b3050248c167871ca52cfdb2ce78aa2460249346 upstream.

The minimum CCA power threshold values have to be adjusted
for existing cards to be in compliance with new regulations.
Newer cards will make use of the values obtained from EEPROM,
support for this was added earlier. To make sure that cards
that are already in use and don't have proper values in EEPROM,
do not violate regulations, use the initvals instead.

Reported-by: Jeang Daniel &lt;dyjeong@qca.qualcomm.com&gt;
Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b3050248c167871ca52cfdb2ce78aa2460249346 upstream.

The minimum CCA power threshold values have to be adjusted
for existing cards to be in compliance with new regulations.
Newer cards will make use of the values obtained from EEPROM,
support for this was added earlier. To make sure that cards
that are already in use and don't have proper values in EEPROM,
do not violate regulations, use the initvals instead.

Reported-by: Jeang Daniel &lt;dyjeong@qca.qualcomm.com&gt;
Signed-off-by: Sujith Manoharan &lt;c_manoha@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ath9k: protect tid-&gt;sched check</title>
<updated>2014-04-01T23:58:55+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2014-02-19T12:15:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cf117670cf074367290d5993fe3111ac6d6b1777'/>
<id>cf117670cf074367290d5993fe3111ac6d6b1777</id>
<content type='text'>
commit 21f8aaee0c62708654988ce092838aa7df4d25d8 upstream.

We check tid-&gt;sched without a lock taken on ath_tx_aggr_sleep(). That
is race condition which can result of doing list_del(&amp;tid-&gt;list) twice
(second time with poisoned list node) and cause crash like shown below:

[424271.637220] BUG: unable to handle kernel paging request at 00100104
[424271.637328] IP: [&lt;f90fc072&gt;] ath_tx_aggr_sleep+0x62/0xe0 [ath9k]
...
[424271.639953] Call Trace:
[424271.639998]  [&lt;f90f6900&gt;] ? ath9k_get_survey+0x110/0x110 [ath9k]
[424271.640083]  [&lt;f90f6942&gt;] ath9k_sta_notify+0x42/0x50 [ath9k]
[424271.640177]  [&lt;f809cfef&gt;] sta_ps_start+0x8f/0x1c0 [mac80211]
[424271.640258]  [&lt;c10f730e&gt;] ? free_compound_page+0x2e/0x40
[424271.640346]  [&lt;f809e915&gt;] ieee80211_rx_handlers+0x9d5/0x2340 [mac80211]
[424271.640437]  [&lt;c112f048&gt;] ? kmem_cache_free+0x1d8/0x1f0
[424271.640510]  [&lt;c1345a84&gt;] ? kfree_skbmem+0x34/0x90
[424271.640578]  [&lt;c10fc23c&gt;] ? put_page+0x2c/0x40
[424271.640640]  [&lt;c1345a84&gt;] ? kfree_skbmem+0x34/0x90
[424271.640706]  [&lt;c1345a84&gt;] ? kfree_skbmem+0x34/0x90
[424271.640787]  [&lt;f809dde3&gt;] ? ieee80211_rx_handlers_result+0x73/0x1d0 [mac80211]
[424271.640897]  [&lt;f80a07a0&gt;] ieee80211_prepare_and_rx_handle+0x520/0xad0 [mac80211]
[424271.641009]  [&lt;f809e22d&gt;] ? ieee80211_rx_handlers+0x2ed/0x2340 [mac80211]
[424271.641104]  [&lt;c13846ce&gt;] ? ip_output+0x7e/0xd0
[424271.641182]  [&lt;f80a1057&gt;] ieee80211_rx+0x307/0x7c0 [mac80211]
[424271.641266]  [&lt;f90fa6ee&gt;] ath_rx_tasklet+0x88e/0xf70 [ath9k]
[424271.641358]  [&lt;f80a0f2c&gt;] ? ieee80211_rx+0x1dc/0x7c0 [mac80211]
[424271.641445]  [&lt;f90f82db&gt;] ath9k_tasklet+0xcb/0x130 [ath9k]

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

Reported-and-tested-by: Max Sydorenko &lt;maxim.stargazer@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2:
 - Adjust context
 - Use spin_unlock_bh() directly]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 21f8aaee0c62708654988ce092838aa7df4d25d8 upstream.

We check tid-&gt;sched without a lock taken on ath_tx_aggr_sleep(). That
is race condition which can result of doing list_del(&amp;tid-&gt;list) twice
(second time with poisoned list node) and cause crash like shown below:

[424271.637220] BUG: unable to handle kernel paging request at 00100104
[424271.637328] IP: [&lt;f90fc072&gt;] ath_tx_aggr_sleep+0x62/0xe0 [ath9k]
...
[424271.639953] Call Trace:
[424271.639998]  [&lt;f90f6900&gt;] ? ath9k_get_survey+0x110/0x110 [ath9k]
[424271.640083]  [&lt;f90f6942&gt;] ath9k_sta_notify+0x42/0x50 [ath9k]
[424271.640177]  [&lt;f809cfef&gt;] sta_ps_start+0x8f/0x1c0 [mac80211]
[424271.640258]  [&lt;c10f730e&gt;] ? free_compound_page+0x2e/0x40
[424271.640346]  [&lt;f809e915&gt;] ieee80211_rx_handlers+0x9d5/0x2340 [mac80211]
[424271.640437]  [&lt;c112f048&gt;] ? kmem_cache_free+0x1d8/0x1f0
[424271.640510]  [&lt;c1345a84&gt;] ? kfree_skbmem+0x34/0x90
[424271.640578]  [&lt;c10fc23c&gt;] ? put_page+0x2c/0x40
[424271.640640]  [&lt;c1345a84&gt;] ? kfree_skbmem+0x34/0x90
[424271.640706]  [&lt;c1345a84&gt;] ? kfree_skbmem+0x34/0x90
[424271.640787]  [&lt;f809dde3&gt;] ? ieee80211_rx_handlers_result+0x73/0x1d0 [mac80211]
[424271.640897]  [&lt;f80a07a0&gt;] ieee80211_prepare_and_rx_handle+0x520/0xad0 [mac80211]
[424271.641009]  [&lt;f809e22d&gt;] ? ieee80211_rx_handlers+0x2ed/0x2340 [mac80211]
[424271.641104]  [&lt;c13846ce&gt;] ? ip_output+0x7e/0xd0
[424271.641182]  [&lt;f80a1057&gt;] ieee80211_rx+0x307/0x7c0 [mac80211]
[424271.641266]  [&lt;f90fa6ee&gt;] ath_rx_tasklet+0x88e/0xf70 [ath9k]
[424271.641358]  [&lt;f80a0f2c&gt;] ? ieee80211_rx+0x1dc/0x7c0 [mac80211]
[424271.641445]  [&lt;f90f82db&gt;] ath9k_tasklet+0xcb/0x130 [ath9k]

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

Reported-and-tested-by: Max Sydorenko &lt;maxim.stargazer@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
[bwh: Backported to 3.2:
 - Adjust context
 - Use spin_unlock_bh() directly]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
