<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/pm.c, branch linux-3.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-05-08T03:08:17Z</updated>
<entry>
<title>mac80211: fix station entry leak/warning while suspending</title>
<updated>2013-05-08T03:08:17Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2013-04-17T09:26:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f3603003d7e5c71195606281a0bba4d2c087e9db'/>
<id>urn:sha1:f3603003d7e5c71195606281a0bba4d2c087e9db</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>mac80211: fix channel context suspend/reconfig handling</title>
<updated>2012-11-20T09:33:05Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-11-19T21:19:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fe5f255930af02ef3c3e0d00545b674e7e9d0cfb'/>
<id>urn:sha1:fe5f255930af02ef3c3e0d00545b674e7e9d0cfb</id>
<content type='text'>
Sujith reported warnings with suspend/resume due to
channel contexts. When I looked into it, I realised
that the code was completely broken as it unassigned
the channel contexts when suspending, which actually
means they are destroyed.

Eliad Peller then pointed out that we also need to
remove the channel contexts from the driver. When I
looked into this, I also noticed that the code isn't
handling the virtual monitor interface correctly (if
it exists.)

Fix this by calling just the driver methods (if they
are implemented) instead of using the channel context
management code. Also add reconfiguration for the
virtual monitor interface.

Reported-by: Sujith Manoharan &lt;sujith@msujith.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add explicit AP/GO driver operations</title>
<updated>2012-10-26T10:57:06Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-10-19T13:44:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1041638f2bba0f1de75e66086d50fb1251d64dcf'/>
<id>urn:sha1:1041638f2bba0f1de75e66086d50fb1251d64dcf</id>
<content type='text'>
Depending on the driver, a lot of setup may be
necessary to start operating as an AP, some of
which may fail. Add an explicit AP start driver
method to make such failures easier to handle,
and add an AP stop driver method for symmetry.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: use channel contexts</title>
<updated>2012-10-17T09:02:09Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-07-26T15:24:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=55de908ab292c03f1eb280f51170ddb9c6b57e31'/>
<id>urn:sha1:55de908ab292c03f1eb280f51170ddb9c6b57e31</id>
<content type='text'>
Instead of operating on a single channel only,
use the new channel context infrastructure in
all mac80211 code.

This enables drivers that want to use the new
channel context infrastructure to use multiple
channels, while nothing should change for all
the other drivers that don't support it.

Right now this disables both TX power settings
and spatial multiplexing powersave. Both need
to be re-enabled on a channel context basis.

Additionally, when channel contexts are used
drop the connection when channel switch is
received rather than trying to handle it. This
will have to be improved later.

[With fixes from Eliad and Emmanuel incorporated]
Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: fix cleanup if driver suspend callback fails</title>
<updated>2012-06-20T15:39:51Z</updated>
<author>
<name>Eyal Shapira</name>
</author>
<published>2012-06-20T10:10:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9ea4fa158f3a038d5be82ccc7e142f198233f059'/>
<id>urn:sha1:9ea4fa158f3a038d5be82ccc7e142f198233f059</id>
<content type='text'>
In case the driver suspend callback fails, mac80211 is left
with stopped queues which prevents any further traffic as well
as all STAs are left marked with WLAN_STA_BLOCK_BA which will
cause any further ADDBA requests to be declined. Fix it by
undoing both before returning from __iee80211_suspend.

Reported-by: Vitaly Wool &lt;vitalywool@gmail.com&gt;
Signed-off-by: Eyal Shapira &lt;eyal@wizery.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Clear wowlan flag when drv_suspend returns failure</title>
<updated>2012-06-06T19:20:22Z</updated>
<author>
<name>Pontus Fuchs</name>
</author>
<published>2012-05-31T10:34:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3b08cf6bd2763bfe9d04fad4d7de29ee7735cd76'/>
<id>urn:sha1:3b08cf6bd2763bfe9d04fad4d7de29ee7735cd76</id>
<content type='text'>
drv_resume can get called without a prior call to drv_suspend.
Consider the following steps:

1. Suspend is started but driver's drv_suspend returns error.
2. Suspend is aborted. local-&gt;wowlan flag is left set.
3. Interface is removed.
4. Suspend again. This time open_count is 0 so drv_suspend is
   not called and local-&gt;wowlan not cleared.
5. On resume ieee80211_reconfig will call drv_resume since
   local-&gt;wowlan is set.

Signed-off-by: Pontus Fuchs &lt;pontus.fuchs@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add explicit monitor interface if needed</title>
<updated>2012-04-11T20:23:49Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-04-03T12:35:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b6f1dd6a6faf4ed8d209bbd548e78b15e55aee8'/>
<id>urn:sha1:4b6f1dd6a6faf4ed8d209bbd548e78b15e55aee8</id>
<content type='text'>
The queue mapping redesign that I'm planning to do
will break pure injection unless we handle monitor
interfaces explicitly. One possible option would
be to have the driver tell mac80211 about monitor
mode queues etc., but that would duplicate the API
since we already need to have queue assignments
handled per virtual interface.

So in order to solve this, have a virtual monitor
interface that is added whenever all active vifs
are monitors. We could also use the state of one
of the monitor interfaces, but managing that would
be complicated, so allocate separate state.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: use proper sub_if_data on suspend path</title>
<updated>2012-02-27T19:06:40Z</updated>
<author>
<name>Jakub Kicinski</name>
</author>
<published>2012-02-23T01:17:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d88c7f6709aab0e4342d80fad6fb7d3f7efc7ff'/>
<id>urn:sha1:9d88c7f6709aab0e4342d80fad6fb7d3f7efc7ff</id>
<content type='text'>
Use interface data from sta instead of invalid pointer
to list head in calls to drv_sta_state.

Signed-off-by: Jakub Kicinski &lt;kubakici@wp.pl&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: implement sta_add/sta_remove in sta_state</title>
<updated>2012-02-06T19:48:25Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-01-20T12:55:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a4ec45a421b80bc36fd37578accf081f32527a7f'/>
<id>urn:sha1:a4ec45a421b80bc36fd37578accf081f32527a7f</id>
<content type='text'>
Instead of maintaining separate sta_add/sta_remove
callsites, implement it in sta_state when the driver
has no sta_state implementation.

The only behavioural change this should cause is in
secure mesh mode: with this the station entries will
only be created after the stations are set to AUTH.
Given which drivers support mesh, this seems to not
be a problem.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add sta_state callback</title>
<updated>2012-02-06T19:48:24Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-01-20T12:55:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f09603a259ffef69ad4516a04eb06cd65ac522fe'/>
<id>urn:sha1:f09603a259ffef69ad4516a04eb06cd65ac522fe</id>
<content type='text'>
(based on Eliad's patch)

Add a callback to notify the low-level driver whenever
the state of a station changes. The driver is only
notified when the station is actually in the mac80211
hash table, not for pre-insert state transitions.

To allow the driver to replace sta_add/remove calls
with this, call extra transitions with the NOTEXIST
state.

This callback can fail, so we need to be careful in
handling it when a station is inserted, particularly
in the IBSS case where we still keep the station entry
around for mac80211 purposes.

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
