<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/iface.c, branch linux-3.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-01-17T16:46:36Z</updated>
<entry>
<title>mac80211: fix station destruction in AP/mesh modes</title>
<updated>2013-01-17T16:46:36Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-12-13T21:54:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52beb077553228824002fc77b701ff632423860c'/>
<id>urn:sha1:52beb077553228824002fc77b701ff632423860c</id>
<content type='text'>
commit 97f97b1f5fe0878b35c8e314f98591771696321b upstream.

Unfortunately, commit b22cfcfcae5b, intended to speed up roaming
by avoiding the synchronize_rcu() broke AP/mesh modes as it moved
some code into that work item that will still call into the driver
at a time where it's no longer expected to handle this: after the
AP or mesh has been stopped.

To fix this problem remove the per-station work struct, maintain a
station cleanup list instead and flush this list when stations are
flushed. To keep this patch smaller for stable, do this when the
stations are flushed (sta_info_flush()). This unfortunately brings
back the original roaming delay; I'll fix that again in a separate
patch.

Also, Ben reported that the original commit could sometimes (with
many interfaces) cause long delays when an interface is set down,
due to blocking on flush_workqueue(). Since we now maintain the
cleanup list, this particular change of the original patch can be
reverted.

Reported-by: Ben Greear &lt;greearb@candelatech.com&gt;
Tested-by: Ben Greear &lt;greearb@candelatech.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: use ieee80211_free_txskb in a few more places</title>
<updated>2012-10-15T18:45:50Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2012-10-10T20:40:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d4fa14cd62bd078c8e3ef39283b9f237e5b2ff0f'/>
<id>urn:sha1:d4fa14cd62bd078c8e3ef39283b9f237e5b2ff0f</id>
<content type='text'>
Free tx status skbs when draining power save buffers, pending frames, or
when tearing down a vif.
Fixes remaining conditions that can lead to hostapd/wpa_supplicant hangs when
running out of socket write memory.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: use call_rcu() on sta deletion</title>
<updated>2012-09-10T10:44:17Z</updated>
<author>
<name>Eliad Peller</name>
</author>
<published>2012-09-09T11:43:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b22cfcfcae5b2c1e9b43543b6a23e5ef517de8f8'/>
<id>urn:sha1:b22cfcfcae5b2c1e9b43543b6a23e5ef517de8f8</id>
<content type='text'>
mac80211 calls synchronize_rcu() on sta deletion,
which increase the roaming time significantly.

Convert it into a call_rcu() mechanism, in order
to avoid blocking. Since some of the cleanup
functions might sleep, schedule from the call_rcu
callback a new work that will do the actual cleanup.

In order to make sure the cleanup occurs before
the interface went down, flush local-&gt;workqueue
on ieee80211_do_stop().

Signed-off-by: Yoni Divinsky &lt;yoni.divinsky@ti.com&gt;
Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Do not check for valid hw_queues for P2P_DEVICE</title>
<updated>2012-09-04T12:16:41Z</updated>
<author>
<name>Ilan Peer</name>
</author>
<published>2012-08-21T09:43:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ef24e528f27683620d78c3393b3df73d804828c'/>
<id>urn:sha1:0ef24e528f27683620d78c3393b3df73d804828c</id>
<content type='text'>
A P2P Device interface does not have a netdev, and is not
expected to be used for transmitting data, so there is no
need to assign hw queues for it.

Signed-off-by: Ilan Peer &lt;ilan.peer@intel.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF</title>
<updated>2012-08-20T11:58:23Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-06-19T15:19:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d71117a279aa30574a8af6c7348570c292285c2'/>
<id>urn:sha1:6d71117a279aa30574a8af6c7348570c292285c2</id>
<content type='text'>
Some devices like the current iwlwifi implementation
require that the P2P interface address match the P2P
Device address (only one P2P interface is supported.)
Add the HW flag IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF
that allows drivers to request that P2P Interfaces
added while a P2P Device is active get the same MAC
address by default.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: support P2P Device abstraction</title>
<updated>2012-08-20T11:58:22Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-06-18T18:07:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f142c6b906da451ded2c7a8e17b2a0e6fee3e891'/>
<id>urn:sha1:f142c6b906da451ded2c7a8e17b2a0e6fee3e891</id>
<content type='text'>
After cfg80211 got a P2P Device abstraction, add
support to mac80211. Whether it really is supported
or not will depend on whether or not the driver has
support for it, but mac80211 needs to change to be
able to support drivers that need a P2P Device.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>cfg80211: add P2P Device abstraction</title>
<updated>2012-08-20T11:58:21Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-06-15T22:19:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=98104fdeda63d57631c9f89e90a7b83b58fcee40'/>
<id>urn:sha1:98104fdeda63d57631c9f89e90a7b83b58fcee40</id>
<content type='text'>
In order to support using a different MAC address
for the P2P Device address we must first have a
P2P Device abstraction that can be assigned a MAC
address.

This abstraction will also be useful to support
offloading P2P operations to the device, e.g.
periodic listen for discoverability.

Currently, the driver is responsible for assigning
a MAC address to the P2P Device, but this could be
changed by allowing a MAC address to be given to
the NEW_INTERFACE command.

As it has no associated netdev, a P2P Device can
only be identified by its wdev identifier but the
previous patches allowed using the wdev identifier
in various APIs, e.g. remain-on-channel.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: avoid using synchronize_rcu in ieee80211_set_probe_resp</title>
<updated>2012-08-20T11:20:56Z</updated>
<author>
<name>Eyal Shapira</name>
</author>
<published>2012-08-06T11:26:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aa7a00809cf6afe3cd6f5af2889110b47b798667'/>
<id>urn:sha1:aa7a00809cf6afe3cd6f5af2889110b47b798667</id>
<content type='text'>
This could take a while (100ms+) and may delay sending assoc resp
in AP mode with WPS or P2P GO (as setting the probe resp takes place
there). We've encountered situations where the delay was big enough
to cause connection problems with devices like Galaxy Nexus.
Switch to using call_rcu with a free handler.

[Arik - rework to use plain buffer and instead of skb]

Signed-off-by: Eyal Shapira &lt;eyal@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: remove ieee80211_clean_sdata()</title>
<updated>2012-08-03T19:34:22Z</updated>
<author>
<name>Thomas Pedersen</name>
</author>
<published>2012-08-03T19:21:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3e17f2be31f354fe03e1732bc527a31ff3dd3bb9'/>
<id>urn:sha1:3e17f2be31f354fe03e1732bc527a31ff3dd3bb9</id>
<content type='text'>
This function was only used by mesh, and not really needed since any
interface-specific cleanup already happens in the netdev handlers.

Signed-off-by: Thomas Pedersen &lt;thomas@cozybit.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: improve cleanup when leaving mesh</title>
<updated>2012-08-03T19:34:17Z</updated>
<author>
<name>Thomas Pedersen</name>
</author>
<published>2012-08-03T19:21:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0d466b9c6798d431141ab15ae6d5ea413b4d09b2'/>
<id>urn:sha1:0d466b9c6798d431141ab15ae6d5ea413b4d09b2</id>
<content type='text'>
It is not necessary to stop the mesh beacon in the mac80211 ndo_stop
handler, since cfg80211 has already left the mesh on NETDEV_GOING_DOWN
notification.

Also some improvements to ieee80211_stop_mesh():

 - flush mpath entries.
 - flush sta entries per-sdata so we don't remove entries belonging to
   other vifs on the same hw.

Signed-off-by: Thomas Pedersen &lt;thomas@cozybit.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
</feed>
