<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/wireless, branch v3.14.7</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>iwlwifi: mvm: rs: clear per rate stats when aggregation changes</title>
<updated>2014-06-07T17:28:28+00:00</updated>
<author>
<name>Eyal Shapira</name>
<email>eyal@wizery.com</email>
</author>
<published>2014-06-04T18:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ca4a4d64a7b1c0d08067622c02ec6a276a4ebf7c'/>
<id>ca4a4d64a7b1c0d08067622c02ec6a276a4ebf7c</id>
<content type='text'>
commit b804eeb6649d75caeccbeae9f5623fc7b8bdfdfa upstream.

The per rate stats should be cleared when aggregation state changes
to avoid making rate scale decisions based on throughput figures which
were collected prior to the aggregation state change and are now stale.
While at it make sure any clearing of the per rate stats will get logged.

Signed-off-by: Eyal Shapira &lt;eyalx.shapira@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b804eeb6649d75caeccbeae9f5623fc7b8bdfdfa upstream.

The per rate stats should be cleared when aggregation state changes
to avoid making rate scale decisions based on throughput figures which
were collected prior to the aggregation state change and are now stale.
While at it make sure any clearing of the per rate stats will get logged.

Signed-off-by: Eyal Shapira &lt;eyalx.shapira@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: add rs_rate_scale_clear_tbl_windows helper function</title>
<updated>2014-06-07T17:28:28+00:00</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2014-06-04T18:58:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=424048eb3ff12c2b8da830cb8827d5bec136f515'/>
<id>424048eb3ff12c2b8da830cb8827d5bec136f515</id>
<content type='text'>
commit 3ca71f603bb1a0f55e1ba24618ba45617bc36f70 upstream.

instead of duplicating the same loop multiple times,
use a new function for it.

this will be later used also for clearing other
windows in the table.

Signed-off-by: Eliad Peller &lt;eliadx.peller@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3ca71f603bb1a0f55e1ba24618ba45617bc36f70 upstream.

instead of duplicating the same loop multiple times,
use a new function for it.

this will be later used also for clearing other
windows in the table.

Signed-off-by: Eliad Peller &lt;eliadx.peller@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: mvm: disable beacon filtering</title>
<updated>2014-06-07T17:28:28+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-05-18T16:05:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f47fc3c1b48dd8fc7a0a591551454459eca0ca94'/>
<id>f47fc3c1b48dd8fc7a0a591551454459eca0ca94</id>
<content type='text'>
commit 7bacc782270ff7db3b9f29fa5d24ad2ee1e8e81d upstream.

This feature has been causing trouble - disable it for now.

Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 7bacc782270ff7db3b9f29fa5d24ad2ee1e8e81d upstream.

This feature has been causing trouble - disable it for now.

Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: mvm: BT Coex - fix Look Up Table</title>
<updated>2014-06-07T17:28:25+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-04-13T12:51:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b2fe79d69507a4f8140089c0458b1a31211ebf67'/>
<id>b2fe79d69507a4f8140089c0458b1a31211ebf67</id>
<content type='text'>
commit a6bc92803e7f765e02c923cf37c8e280e729642a upstream.

A few entries were wrong and this caused throughput issues.

Fixes: dac94da8dba3 ("iwlwifi: mvm: new BT Coex API")
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a6bc92803e7f765e02c923cf37c8e280e729642a upstream.

A few entries were wrong and this caused throughput issues.

Fixes: dac94da8dba3 ("iwlwifi: mvm: new BT Coex API")
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: mvm: fix setting channel in monitor mode</title>
<updated>2014-06-07T17:28:23+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-05-08T06:48:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b0e75f5df3df6a79218711775505ae4625255044'/>
<id>b0e75f5df3df6a79218711775505ae4625255044</id>
<content type='text'>
commit 1c4abec0baf25ffb92a28cc99d4231feeaa4d3f3 upstream.

There was a deadlock in monitor mode when we were setting the
channel if the channel was not 1.

======================================================
[ INFO: possible circular locking dependency detected ]
3.14.3 #4 Not tainted
-------------------------------------------------------
iw/3323 is trying to acquire lock:
 (&amp;local-&gt;chanctx_mtx){+.+.+.}, at: [&lt;ffffffffa062e2f2&gt;] ieee80211_vif_release_channel+0x42/0xb0 [mac80211]

but task is already holding lock:
 (&amp;local-&gt;iflist_mtx){+.+...}, at: [&lt;ffffffffa0609e0a&gt;] ieee80211_set_monitor_channel+0x5a/0x1b0 [mac80211]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #2 (&amp;local-&gt;iflist_mtx){+.+...}:
       [&lt;ffffffff810d95bb&gt;] __lock_acquire+0xb3b/0x13b0
       [&lt;ffffffff810d9ee0&gt;] lock_acquire+0xb0/0x1f0
       [&lt;ffffffff817eb9c8&gt;] mutex_lock_nested+0x78/0x4f0
       [&lt;ffffffffa06225cf&gt;] ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
       [&lt;ffffffffa0518189&gt;] iwl_mvm_recalc_multicast+0x49/0xa0 [iwlmvm]
       [&lt;ffffffffa051822e&gt;] iwl_mvm_configure_filter+0x4e/0x70 [iwlmvm]
       [&lt;ffffffffa05e6d43&gt;] ieee80211_configure_filter+0x153/0x5f0 [mac80211]
       [&lt;ffffffffa05e71f5&gt;] ieee80211_reconfig_filter+0x15/0x20 [mac80211]
       [snip]

-&gt; #1 (&amp;mvm-&gt;mutex){+.+.+.}:
       [&lt;ffffffff810d95bb&gt;] __lock_acquire+0xb3b/0x13b0
       [&lt;ffffffff810d9ee0&gt;] lock_acquire+0xb0/0x1f0
       [&lt;ffffffff817eb9c8&gt;] mutex_lock_nested+0x78/0x4f0
       [&lt;ffffffffa0517246&gt;] iwl_mvm_add_chanctx+0x56/0xe0 [iwlmvm]
       [&lt;ffffffffa062ca1e&gt;] ieee80211_new_chanctx+0x13e/0x410 [mac80211]
       [&lt;ffffffffa062d953&gt;] ieee80211_vif_use_channel+0x1c3/0x5a0 [mac80211]
       [&lt;ffffffffa06035ab&gt;] ieee80211_add_virtual_monitor+0x1ab/0x6b0 [mac80211]
       [&lt;ffffffffa06052ea&gt;] ieee80211_do_open+0xe6a/0x15a0 [mac80211]
       [&lt;ffffffffa0605a79&gt;] ieee80211_open+0x59/0x60 [mac80211]
       [snip]

-&gt; #0 (&amp;local-&gt;chanctx_mtx){+.+.+.}:
       [&lt;ffffffff810d6cb7&gt;] check_prevs_add+0x977/0x980
       [&lt;ffffffff810d95bb&gt;] __lock_acquire+0xb3b/0x13b0
       [&lt;ffffffff810d9ee0&gt;] lock_acquire+0xb0/0x1f0
       [&lt;ffffffff817eb9c8&gt;] mutex_lock_nested+0x78/0x4f0
       [&lt;ffffffffa062e2f2&gt;] ieee80211_vif_release_channel+0x42/0xb0 [mac80211]
       [&lt;ffffffffa0609ec3&gt;] ieee80211_set_monitor_channel+0x113/0x1b0 [mac80211]
       [&lt;ffffffffa058fb37&gt;] cfg80211_set_monitor_channel+0x77/0x2b0 [cfg80211]
       [&lt;ffffffffa056e0b2&gt;] __nl80211_set_channel+0x122/0x140 [cfg80211]
       [&lt;ffffffffa0581374&gt;] nl80211_set_wiphy+0x284/0xaf0 [cfg80211]
       [snip]

other info that might help us debug this:

Chain exists of:
  &amp;local-&gt;chanctx_mtx --&gt; &amp;mvm-&gt;mutex --&gt; &amp;local-&gt;iflist_mtx

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&amp;local-&gt;iflist_mtx);
                               lock(&amp;mvm-&gt;mutex);
                               lock(&amp;local-&gt;iflist_mtx);
  lock(&amp;local-&gt;chanctx_mtx);

 *** DEADLOCK ***

This deadlock actually occurs:
INFO: task iw:3323 blocked for more than 120 seconds.
      Not tainted 3.14.3 #4
"echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
iw              D ffff8800c8afcd80  4192  3323   3322 0x00000000
 ffff880078fdb7e0 0000000000000046 ffff8800c8afcd80 ffff880078fdbfd8
 00000000001d5540 00000000001d5540 ffff8801141b0000 ffff8800c8afcd80
 ffff880078ff9e38 ffff880078ff9e38 ffff880078ff9e40 0000000000000246
Call Trace:
 [&lt;ffffffff817ea841&gt;] schedule_preempt_disabled+0x31/0x80
 [&lt;ffffffff817ebaed&gt;] mutex_lock_nested+0x19d/0x4f0
 [&lt;ffffffffa06225cf&gt;] ? ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
 [&lt;ffffffffa06225cf&gt;] ? ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
 [&lt;ffffffffa052a680&gt;] ? iwl_mvm_power_mac_update_mode+0xc0/0xc0 [iwlmvm]
 [&lt;ffffffffa06225cf&gt;] ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
 [&lt;ffffffffa0529357&gt;] _iwl_mvm_power_update_binding+0x27/0x80 [iwlmvm]
 [&lt;ffffffffa0516eb1&gt;] iwl_mvm_unassign_vif_chanctx+0x81/0xc0 [iwlmvm]
 [&lt;ffffffffa062d3ff&gt;] __ieee80211_vif_release_channel+0xdf/0x470 [mac80211]
 [&lt;ffffffffa062e2fa&gt;] ieee80211_vif_release_channel+0x4a/0xb0 [mac80211]
 [&lt;ffffffffa0609ec3&gt;] ieee80211_set_monitor_channel+0x113/0x1b0 [mac80211]
 [&lt;ffffffffa058fb37&gt;] cfg80211_set_monitor_channel+0x77/0x2b0 [cfg80211]
 [&lt;ffffffffa056e0b2&gt;] __nl80211_set_channel+0x122/0x140 [cfg80211]
 [&lt;ffffffffa0581374&gt;] nl80211_set_wiphy+0x284/0xaf0 [cfg80211]

This fixes https://bugzilla.kernel.org/show_bug.cgi?id=75541

Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1c4abec0baf25ffb92a28cc99d4231feeaa4d3f3 upstream.

There was a deadlock in monitor mode when we were setting the
channel if the channel was not 1.

======================================================
[ INFO: possible circular locking dependency detected ]
3.14.3 #4 Not tainted
-------------------------------------------------------
iw/3323 is trying to acquire lock:
 (&amp;local-&gt;chanctx_mtx){+.+.+.}, at: [&lt;ffffffffa062e2f2&gt;] ieee80211_vif_release_channel+0x42/0xb0 [mac80211]

but task is already holding lock:
 (&amp;local-&gt;iflist_mtx){+.+...}, at: [&lt;ffffffffa0609e0a&gt;] ieee80211_set_monitor_channel+0x5a/0x1b0 [mac80211]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #2 (&amp;local-&gt;iflist_mtx){+.+...}:
       [&lt;ffffffff810d95bb&gt;] __lock_acquire+0xb3b/0x13b0
       [&lt;ffffffff810d9ee0&gt;] lock_acquire+0xb0/0x1f0
       [&lt;ffffffff817eb9c8&gt;] mutex_lock_nested+0x78/0x4f0
       [&lt;ffffffffa06225cf&gt;] ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
       [&lt;ffffffffa0518189&gt;] iwl_mvm_recalc_multicast+0x49/0xa0 [iwlmvm]
       [&lt;ffffffffa051822e&gt;] iwl_mvm_configure_filter+0x4e/0x70 [iwlmvm]
       [&lt;ffffffffa05e6d43&gt;] ieee80211_configure_filter+0x153/0x5f0 [mac80211]
       [&lt;ffffffffa05e71f5&gt;] ieee80211_reconfig_filter+0x15/0x20 [mac80211]
       [snip]

-&gt; #1 (&amp;mvm-&gt;mutex){+.+.+.}:
       [&lt;ffffffff810d95bb&gt;] __lock_acquire+0xb3b/0x13b0
       [&lt;ffffffff810d9ee0&gt;] lock_acquire+0xb0/0x1f0
       [&lt;ffffffff817eb9c8&gt;] mutex_lock_nested+0x78/0x4f0
       [&lt;ffffffffa0517246&gt;] iwl_mvm_add_chanctx+0x56/0xe0 [iwlmvm]
       [&lt;ffffffffa062ca1e&gt;] ieee80211_new_chanctx+0x13e/0x410 [mac80211]
       [&lt;ffffffffa062d953&gt;] ieee80211_vif_use_channel+0x1c3/0x5a0 [mac80211]
       [&lt;ffffffffa06035ab&gt;] ieee80211_add_virtual_monitor+0x1ab/0x6b0 [mac80211]
       [&lt;ffffffffa06052ea&gt;] ieee80211_do_open+0xe6a/0x15a0 [mac80211]
       [&lt;ffffffffa0605a79&gt;] ieee80211_open+0x59/0x60 [mac80211]
       [snip]

-&gt; #0 (&amp;local-&gt;chanctx_mtx){+.+.+.}:
       [&lt;ffffffff810d6cb7&gt;] check_prevs_add+0x977/0x980
       [&lt;ffffffff810d95bb&gt;] __lock_acquire+0xb3b/0x13b0
       [&lt;ffffffff810d9ee0&gt;] lock_acquire+0xb0/0x1f0
       [&lt;ffffffff817eb9c8&gt;] mutex_lock_nested+0x78/0x4f0
       [&lt;ffffffffa062e2f2&gt;] ieee80211_vif_release_channel+0x42/0xb0 [mac80211]
       [&lt;ffffffffa0609ec3&gt;] ieee80211_set_monitor_channel+0x113/0x1b0 [mac80211]
       [&lt;ffffffffa058fb37&gt;] cfg80211_set_monitor_channel+0x77/0x2b0 [cfg80211]
       [&lt;ffffffffa056e0b2&gt;] __nl80211_set_channel+0x122/0x140 [cfg80211]
       [&lt;ffffffffa0581374&gt;] nl80211_set_wiphy+0x284/0xaf0 [cfg80211]
       [snip]

other info that might help us debug this:

Chain exists of:
  &amp;local-&gt;chanctx_mtx --&gt; &amp;mvm-&gt;mutex --&gt; &amp;local-&gt;iflist_mtx

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&amp;local-&gt;iflist_mtx);
                               lock(&amp;mvm-&gt;mutex);
                               lock(&amp;local-&gt;iflist_mtx);
  lock(&amp;local-&gt;chanctx_mtx);

 *** DEADLOCK ***

This deadlock actually occurs:
INFO: task iw:3323 blocked for more than 120 seconds.
      Not tainted 3.14.3 #4
"echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
iw              D ffff8800c8afcd80  4192  3323   3322 0x00000000
 ffff880078fdb7e0 0000000000000046 ffff8800c8afcd80 ffff880078fdbfd8
 00000000001d5540 00000000001d5540 ffff8801141b0000 ffff8800c8afcd80
 ffff880078ff9e38 ffff880078ff9e38 ffff880078ff9e40 0000000000000246
Call Trace:
 [&lt;ffffffff817ea841&gt;] schedule_preempt_disabled+0x31/0x80
 [&lt;ffffffff817ebaed&gt;] mutex_lock_nested+0x19d/0x4f0
 [&lt;ffffffffa06225cf&gt;] ? ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
 [&lt;ffffffffa06225cf&gt;] ? ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
 [&lt;ffffffffa052a680&gt;] ? iwl_mvm_power_mac_update_mode+0xc0/0xc0 [iwlmvm]
 [&lt;ffffffffa06225cf&gt;] ieee80211_iterate_active_interfaces+0x2f/0x60 [mac80211]
 [&lt;ffffffffa0529357&gt;] _iwl_mvm_power_update_binding+0x27/0x80 [iwlmvm]
 [&lt;ffffffffa0516eb1&gt;] iwl_mvm_unassign_vif_chanctx+0x81/0xc0 [iwlmvm]
 [&lt;ffffffffa062d3ff&gt;] __ieee80211_vif_release_channel+0xdf/0x470 [mac80211]
 [&lt;ffffffffa062e2fa&gt;] ieee80211_vif_release_channel+0x4a/0xb0 [mac80211]
 [&lt;ffffffffa0609ec3&gt;] ieee80211_set_monitor_channel+0x113/0x1b0 [mac80211]
 [&lt;ffffffffa058fb37&gt;] cfg80211_set_monitor_channel+0x77/0x2b0 [cfg80211]
 [&lt;ffffffffa056e0b2&gt;] __nl80211_set_channel+0x122/0x140 [cfg80211]
 [&lt;ffffffffa0581374&gt;] nl80211_set_wiphy+0x284/0xaf0 [cfg80211]

This fixes https://bugzilla.kernel.org/show_bug.cgi?id=75541

Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: pcie: disable interrupts upon PCIe alloc</title>
<updated>2014-06-07T17:28:22+00:00</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-04-13T13:03:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=83134b6448d894e1842bbd765a87a456b5c67a1e'/>
<id>83134b6448d894e1842bbd765a87a456b5c67a1e</id>
<content type='text'>
commit 83f7a85f1134c6e914453f5747435415a23d516b upstream.

In case RFKILL is in KILL position, the NIC will issue an
interrupt straight away. This interrupt won't be sent
because it is masked in the hardware.
But if our interrupt service routine is called for another
reason (SHARED_IRQ), then we'll look at the interrupt cause
and service it. This can cause bad things if we are not
ready yet.
Explicitly clean the interrupt cause register to make sure
we won't service anything before we are ready to.

Reported-and-tested-by: Alexander Monakov &lt;amonakov@gmail.com&gt;
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 83f7a85f1134c6e914453f5747435415a23d516b upstream.

In case RFKILL is in KILL position, the NIC will issue an
interrupt straight away. This interrupt won't be sent
because it is masked in the hardware.
But if our interrupt service routine is called for another
reason (SHARED_IRQ), then we'll look at the interrupt cause
and service it. This can cause bad things if we are not
ready yet.
Explicitly clean the interrupt cause register to make sure
we won't service anything before we are ready to.

Reported-and-tested-by: Alexander Monakov &lt;amonakov@gmail.com&gt;
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>brcmsmac: fix deadlock on missing firmware</title>
<updated>2014-06-07T17:28:18+00:00</updated>
<author>
<name>Emil Goode</name>
<email>emilgoode@gmail.com</email>
</author>
<published>2014-03-09T20:06:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9f531ef39d2a3dcfb50e66faabf66a6376f324e5'/>
<id>9f531ef39d2a3dcfb50e66faabf66a6376f324e5</id>
<content type='text'>
commit 8fc1e8c240aab968db658b2d8d079b4391207a36 upstream.

When brcm80211 firmware is not installed networking hangs.
A deadlock happens because we call ieee80211_unregister_hw()
from the .start callback of struct ieee80211_ops. When .start
is called we are under rtnl lock and ieee80211_unregister_hw()
tries to take it again.

Function call stack:

dev_change_flags()
	__dev_change_flags()
		__dev_open()
			ASSERT_RTNL() &lt;-- Assert rtnl lock
			ops-&gt;ndo_open()

.ndo_open = ieee80211_open,

ieee80211_open()
	ieee80211_do_open()
		drv_start()
			local-&gt;ops-&gt;start()

.start = brcms_ops_start,

brcms_ops_start()
	brcms_remove()
		ieee80211_unregister_hw()
			rtnl_lock() &lt;-- Here we deadlock

Introduced by:
commit 25b5632fb35ca61b8ae3eee235edcdc2883f7a5e
("brcmsmac: request firmware in .start() callback")

This patch fixes the bug by removing the call to brcms_remove()
and moves the brcms_request_fw() call to the top of the .start
callback to not initiate anything unless firmware is installed.

Signed-off-by: Emil Goode &lt;emilgoode@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8fc1e8c240aab968db658b2d8d079b4391207a36 upstream.

When brcm80211 firmware is not installed networking hangs.
A deadlock happens because we call ieee80211_unregister_hw()
from the .start callback of struct ieee80211_ops. When .start
is called we are under rtnl lock and ieee80211_unregister_hw()
tries to take it again.

Function call stack:

dev_change_flags()
	__dev_change_flags()
		__dev_open()
			ASSERT_RTNL() &lt;-- Assert rtnl lock
			ops-&gt;ndo_open()

.ndo_open = ieee80211_open,

ieee80211_open()
	ieee80211_do_open()
		drv_start()
			local-&gt;ops-&gt;start()

.start = brcms_ops_start,

brcms_ops_start()
	brcms_remove()
		ieee80211_unregister_hw()
			rtnl_lock() &lt;-- Here we deadlock

Introduced by:
commit 25b5632fb35ca61b8ae3eee235edcdc2883f7a5e
("brcmsmac: request firmware in .start() callback")

This patch fixes the bug by removing the call to brcms_remove()
and moves the brcms_request_fw() call to the top of the .start
callback to not initiate anything unless firmware is installed.

Signed-off-by: Emil Goode &lt;emilgoode@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rtl8192cu: Fix unbalanced irq enable in error path of rtl92cu_hw_init()</title>
<updated>2014-06-07T17:28:18+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2014-04-26T20:59:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e9582f152369e8e183e9c5cd5e42900ff87a7f24'/>
<id>e9582f152369e8e183e9c5cd5e42900ff87a7f24</id>
<content type='text'>
commit 3234f5b06fc3094176a86772cc64baf3decc98fc upstream.

Fixes: a53268be0cb9 ('rtlwifi: rtl8192cu: Fix too long disable of IRQs')
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3234f5b06fc3094176a86772cc64baf3decc98fc upstream.

Fixes: a53268be0cb9 ('rtlwifi: rtl8192cu: Fix too long disable of IRQs')
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: fix beaconing on USB</title>
<updated>2014-06-07T17:28:16+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=c2965f4fee71bb2432a2d06989247cbc526b9e55'/>
<id>c2965f4fee71bb2432a2d06989247cbc526b9e55</id>
<content type='text'>
commit 8834d3608cc516f13e2e510f4057c263f3d2ce42 upstream.

When disable beaconing we clear register with beacon and newer set it
back, what make we stop send beacons infinitely.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8834d3608cc516f13e2e510f4057c263f3d2ce42 upstream.

When disable beaconing we clear register with beacon and newer set it
back, what make we stop send beacons infinitely.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iwlwifi: mvm: delay enabling smart FIFO until after beacon RX</title>
<updated>2014-06-07T17:28:11+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2014-03-19T17:36:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=53937890848b0e9552be2119ad49823cfb9c5eb9'/>
<id>53937890848b0e9552be2119ad49823cfb9c5eb9</id>
<content type='text'>
commit 0229cdafb6f67064a217591d48b0f6abf14e8385 upstream.

If we have no beacon data before association, delay smart FIFO
enablement until after we have this data.

Not doing so can cause association failures in extremely silent
environments (usually only a shielded box/room) as beacon RX is
not sent to the host immediately, and then the association time
event ends without the host receiving any beacon even though it
was on the air - it's just stuck on the FIFO.

Fixes: 1f3b0ff8ecce ("iwlwifi: mvm: Add Smart FIFO support")
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 0229cdafb6f67064a217591d48b0f6abf14e8385 upstream.

If we have no beacon data before association, delay smart FIFO
enablement until after we have this data.

Not doing so can cause association failures in extremely silent
environments (usually only a shielded box/room) as beacon RX is
not sent to the host immediately, and then the association time
event ends without the host receiving any beacon even though it
was on the air - it's just stuck on the FIFO.

Fixes: 1f3b0ff8ecce ("iwlwifi: mvm: Add Smart FIFO support")
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;


</pre>
</div>
</content>
</entry>
</feed>
