<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/mac80211, branch v3.9.4</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net/mac80211?h=v3.9.4</id>
<link rel='self' href='https://git.amat.us/linux/atom/net/mac80211?h=v3.9.4'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-05-08T03:33:05Z</updated>
<entry>
<title>mac80211: use synchronize_rcu() with rcu_barrier()</title>
<updated>2013-05-08T03:33:05Z</updated>
<author>
<name>Bob Copeland</name>
<email>me@bobcopeland.com</email>
</author>
<published>2013-04-18T22:26:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=678bfb06ac1c589dfe179d7bf86a57204afec044'/>
<id>urn:sha1:678bfb06ac1c589dfe179d7bf86a57204afec044</id>
<content type='text'>
commit 8ceb59557bdc373e532b87d4142ce27e04218f0e upstream.

The RCU docs used to state that rcu_barrier() included a wait
for an RCU grace period; however the comments for rcu_barrier()
as of commit f0a0e6f... "rcu: Clarify memory-ordering properties
of grace-period primitives" contradict this.

So add back synchronize_{rcu,net}() to where they once were,
but keep the rcu_barrier()s for the call_rcu() callbacks.

Signed-off-by: Bob Copeland &lt;bob@cozybit.com&gt;
Reviewed-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>mac80211: fix station entry leak/warning while suspending</title>
<updated>2013-05-08T03:33:04Z</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2013-04-17T09:26:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1c407b93add6c626075227db19bee97111fc6d6e'/>
<id>urn:sha1:1c407b93add6c626075227db19bee97111fc6d6e</id>
<content type='text'>
commit b20d34c458bc2bbd0a4624f2933581e01e72d875 upstream.

Since Stanislaw's patches, when suspending while connected,
cfg80211 will disconnect. This causes the AP station to be
removed, which uses call_rcu() to clean up. Due to needing
process context, this queues a work struct on the mac80211
workqueue. This will warn and fail when already suspended,
which can happen if the rcu call doesn't happen quickly.

To fix this, replace the synchronize_net() which is really
just synchronize_rcu_expedited() with rcu_barrier(), which
unlike synchronize_rcu() waits until RCU callback have run
and thus avoids this issue.

In theory, this can even happen without Stanislaw's change
to disconnect on suspend since userspace might disconnect
just before suspending, though then it's unlikely that the
call_rcu() will be delayed long enough.

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

</content>
</entry>
<entry>
<title>Merge branch 'for-john' of git://x-git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211</title>
<updated>2013-04-12T17:20:51Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-04-12T17:20:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bef086e08e8281fe6ccf764b83cb9b12791466ed'/>
<id>urn:sha1:bef086e08e8281fe6ccf764b83cb9b12791466ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mac80211: fix cfg80211 interaction on auth/assoc request</title>
<updated>2013-04-10T19:38:36Z</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2013-04-10T19:38:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7b119dc06d871405fc7c3e9a73a6c987409ba639'/>
<id>urn:sha1:7b119dc06d871405fc7c3e9a73a6c987409ba639</id>
<content type='text'>
If authentication (or association with FT) is requested by
userspace, mac80211 currently doesn't tell cfg80211 that it
disconnected from the AP. That leaves inconsistent state:
cfg80211 thinks it's connected while mac80211 thinks it's
not. Typically this won't last long, as soon as mac80211
reports the new association to cfg80211 the old one goes
away. If, however, the new authentication or association
doesn't succeed, then cfg80211 will forever think the old
one still exists and will refuse attempts to authenticate
or associate with the AP it thinks it's connected to.

Anders reported that this leads to it taking a very long
time to reconnect to a network, or never even succeeding.
I tested this with an AP hacked to never respond to auth
frames, and one that works, and with just those two the
system never recovers because one won't work and cfg80211
thinks it's connected to the other so refuses connections
to it.

To fix this, simply make mac80211 tell cfg80211 when it is
no longer connected to the old AP, while authenticating or
associating to a new one.

Cc: stable@vger.kernel.org
Reported-by: Anders Kaseorg &lt;andersk@mit.edu&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211</title>
<updated>2013-04-08T18:30:26Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-04-08T18:30:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8cab24f0b1daf23ba042464f0d4a4e51695bed74'/>
<id>urn:sha1:8cab24f0b1daf23ba042464f0d4a4e51695bed74</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mac80211: fix LED in idle handling</title>
<updated>2013-04-08T11:12:05Z</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2013-04-08T09:52:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=62a40a15554d6924a58b3e9f8756e0d683dc9c0c'/>
<id>urn:sha1:62a40a15554d6924a58b3e9f8756e0d683dc9c0c</id>
<content type='text'>
feng xiangjun reports that my

commit 382a103b2b528a3085cde4ac56fc69d92a828b72
Author: Johannes Berg &lt;johannes.berg@intel.com&gt;
Date:   Fri Mar 22 22:30:09 2013 +0100

    mac80211: fix idle handling sequence

broke the wireless status LED. The reason is that
we now call ieee80211_idle_off() when the channel
context is assigned, and that doesn't recalculate
the LED state. Fix this by making that function a
wrapper around most of idle recalculation while
forcing active.

Reported-by: feng xiangjun &lt;fengxj325@gmail.com&gt;
Tested-by: feng xiangjun &lt;fengxj325@gmail.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211</title>
<updated>2013-04-01T19:09:28Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-04-01T19:09:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=95bc6b8461d809d7573ad8cadae3f307a472c017'/>
<id>urn:sha1:95bc6b8461d809d7573ad8cadae3f307a472c017</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211</title>
<updated>2013-03-25T18:50:17Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-03-25T18:50:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fae172136c0cfc80cb4b13620c861688e671650a'/>
<id>urn:sha1:fae172136c0cfc80cb4b13620c861688e671650a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mac80211: fix idle handling sequence</title>
<updated>2013-03-25T15:50:18Z</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2013-03-22T21:30:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=382a103b2b528a3085cde4ac56fc69d92a828b72'/>
<id>urn:sha1:382a103b2b528a3085cde4ac56fc69d92a828b72</id>
<content type='text'>
Corey Richardson reported that my idle handling cleanup
(commit fd0f979a1b, "mac80211: simplify idle handling")
broke ath9k_htc. The reason appears to be that it wants
to go out of idle before switching channels. To fix it,
reimplement that sequence.

Reported-by: Corey Richardson &lt;corey@octayn.net&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: fix remain-on-channel cancel crash</title>
<updated>2013-03-25T12:50:33Z</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2013-03-25T10:51:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3fbd45ca8d1c98f3c2582ef8bc70ade42f70947b'/>
<id>urn:sha1:3fbd45ca8d1c98f3c2582ef8bc70ade42f70947b</id>
<content type='text'>
If a ROC item is canceled just as it expires, the work
struct may be scheduled while it is running (and waiting
for the mutex). This results in it being run after being
freed, which obviously crashes.

To fix this don't free it when aborting is requested but
instead mark it as "to be freed", which makes the work a
no-op and allows freeing it outside.

Cc: stable@vger.kernel.org [3.6+]
Reported-by: Jouni Malinen &lt;j@w1.fi&gt;
Tested-by: Jouni Malinen &lt;j@w1.fi&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
</feed>
