<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/driver-ops.h, branch linux-2.6.36.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.36.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.36.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2010-06-29T18:51:23Z</updated>
<entry>
<title>mac80211: add basic tracing to drv_get_survey</title>
<updated>2010-06-29T18:51:23Z</updated>
<author>
<name>John W. Linville</name>
</author>
<published>2010-06-29T18:51:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c466d4efb86bb5aa327d6e43f62781a9faabfdae'/>
<id>urn:sha1:c466d4efb86bb5aa327d6e43f62781a9faabfdae</id>
<content type='text'>
Reported-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Fix circular locking dependency in ARP filter handling</title>
<updated>2010-06-14T19:42:31Z</updated>
<author>
<name>Juuso Oikarinen</name>
</author>
<published>2010-06-09T10:43:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=685429623f88d84f98bd5daffc3c427c408740d4'/>
<id>urn:sha1:685429623f88d84f98bd5daffc3c427c408740d4</id>
<content type='text'>
There is a circular locking dependency when configuring the
hardware ARP filters on association, occurring when flushing the mac80211
workqueue. This is what happens:

[   92.026800] =======================================================
[   92.030507] [ INFO: possible circular locking dependency detected ]
[   92.030507] 2.6.34-04781-g2b2c009 #85
[   92.030507] -------------------------------------------------------
[   92.030507] modprobe/5225 is trying to acquire lock:
[   92.030507]  ((wiphy_name(local-&gt;hw.wiphy))){+.+.+.}, at: [&lt;ffffffff8105b5c0&gt;] flush_workq
ueue+0x0/0xb0
[   92.030507]
[   92.030507] but task is already holding lock:
[   92.030507]  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff812b9ce2&gt;] rtnl_lock+0x12/0x20
[   92.030507]
[   92.030507] which lock already depends on the new lock.
[   92.030507]
[   92.030507]
[   92.030507] the existing dependency chain (in reverse order) is:
[   92.030507]
[   92.030507] -&gt; #2 (rtnl_mutex){+.+.+.}:
[   92.030507]        [&lt;ffffffff810761fb&gt;] lock_acquire+0xdb/0x110
[   92.030507]        [&lt;ffffffff81341754&gt;] mutex_lock_nested+0x44/0x300
[   92.030507]        [&lt;ffffffff812b9ce2&gt;] rtnl_lock+0x12/0x20
[   92.030507]        [&lt;ffffffffa022d47c&gt;] ieee80211_assoc_done+0x6c/0xe0 [mac80211]
[   92.030507]        [&lt;ffffffffa022f2ad&gt;] ieee80211_work_work+0x31d/0x1280 [mac80211]

[   92.030507] -&gt; #1 ((&amp;local-&gt;work_work)){+.+.+.}:
[   92.030507]        [&lt;ffffffff810761fb&gt;] lock_acquire+0xdb/0x110
[   92.030507]        [&lt;ffffffff8105a51a&gt;] worker_thread+0x22a/0x370
[   92.030507]        [&lt;ffffffff8105ecc6&gt;] kthread+0x96/0xb0
[   92.030507]        [&lt;ffffffff81003a94&gt;] kernel_thread_helper+0x4/0x10
[   92.030507]
[   92.030507] -&gt; #0 ((wiphy_name(local-&gt;hw.wiphy))){+.+.+.}:
[   92.030507]        [&lt;ffffffff81075fdc&gt;] __lock_acquire+0x1c0c/0x1d50
[   92.030507]        [&lt;ffffffff810761fb&gt;] lock_acquire+0xdb/0x110
[   92.030507]        [&lt;ffffffff8105b60e&gt;] flush_workqueue+0x4e/0xb0
[   92.030507]        [&lt;ffffffffa023ff7b&gt;] ieee80211_stop_device+0x2b/0xb0 [mac80211]
[   92.030507]        [&lt;ffffffffa0231635&gt;] ieee80211_stop+0x3e5/0x680 [mac80211]

The locking in this case is quite complex. Fix the problem by rewriting the
way the hardware ARP filter list is handled - i.e. make a copy of the address
list to the bss_conf struct, and provide that list to the hardware driver
when needed.

The current patch will enable filtering also in promiscuous mode. This may need
to be changed in the future.

Reported-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: bracket driver tracing</title>
<updated>2010-06-14T19:39:29Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-06-10T08:56:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4efc76bdbf9bfd2b8624c4dd52b9d8ffed176b31'/>
<id>urn:sha1:4efc76bdbf9bfd2b8624c4dd52b9d8ffed176b31</id>
<content type='text'>
Currently, driver tracing is sometimes invoked
after and sometimes before the actual driver
callback. This is fine as long as the driver
has no tracing itself, but as soon as it does
it gets confusing.

To make traces containing such information
easier to read, introduce a return tracer in
mac80211 that essentially brackets any driver
tracing, and invoke the real trace before the
driver's callback, only showing the return
value, if any, afterwards.

Since tracing records the process, there's no
problem with overlapping calls if that should
happen.

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: allow drivers to sleep in ampdu_action</title>
<updated>2010-06-14T19:39:28Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-06-10T08:21:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=85ad181ea78861f69b007599cec9e6ba33fcdf8a'/>
<id>urn:sha1:85ad181ea78861f69b007599cec9e6ba33fcdf8a</id>
<content type='text'>
Allow drivers to sleep, and indicate this in
the documentation. ath9k has some locking I
don't understand, so keep it safe and disable
BHs in it, all other drivers look fine with
the context change.

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: change TX aggregation locking</title>
<updated>2010-06-14T19:39:28Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-06-10T08:21:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cfcdbde35e2b621cf56bedc38a3a81e8c28addb9'/>
<id>urn:sha1:cfcdbde35e2b621cf56bedc38a3a81e8c28addb9</id>
<content type='text'>
To prepare for allowing drivers to sleep in
ampdu_action, change the locking in the TX
aggregation code to use the mutex the RX part
already uses. The spinlock is still necessary
around some code to avoid races with TX, but
now we can also synchronize_net() to avoid
getting an inconsistent sequence number.

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: change RX aggregation locking</title>
<updated>2010-06-14T19:39:28Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-06-10T08:21:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a93e364430de7f7a5f4eedd604ad1ab3d825dde5'/>
<id>urn:sha1:a93e364430de7f7a5f4eedd604ad1ab3d825dde5</id>
<content type='text'>
To prepare for allowing drivers to sleep in
ampdu_action, change the locking in the RX
aggregation code to use a mutex, so that it
would already allow drivers to sleep. But
explicitly disable BHs around the callback
for now since the TX part cannot yet sleep,
and drivers' locking might require it.

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>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6</title>
<updated>2010-06-07T19:13:46Z</updated>
<author>
<name>John W. Linville</name>
</author>
<published>2010-06-07T19:13:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d88477c41904127ab9ae1f3b5b4a39bf6474043'/>
<id>urn:sha1:9d88477c41904127ab9ae1f3b5b4a39bf6474043</id>
<content type='text'>
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-core.h
</content>
</entry>
<entry>
<title>mac80211: fix function pointer check</title>
<updated>2010-06-07T18:44:40Z</updated>
<author>
<name>Holger Schurig</name>
</author>
<published>2010-06-07T14:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=35dd0509b21e4b5bab36b9eb80c8dab0322f5007'/>
<id>urn:sha1:35dd0509b21e4b5bab36b9eb80c8dab0322f5007</id>
<content type='text'>
This makes "iw wlan0 dump survey" work again with
mac80211-based drivers that support it, e.g. ath5k.

Signed-off-by: Holger Schurig &lt;holgerschurig@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Remove deprecated sta_notify commands</title>
<updated>2010-06-04T19:32:25Z</updated>
<author>
<name>Sujith</name>
</author>
<published>2010-05-19T06:02:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=38a6cc7538d3c44b76f9dcea607a171adcc0208e'/>
<id>urn:sha1:38a6cc7538d3c44b76f9dcea607a171adcc0208e</id>
<content type='text'>
STA_NOTIFY_ADD and STA_NOTIFY_REMOVE have no users anymore,
and station addition/removal are indicated to drivers
using sta_add() and sta_remove(), which can sleep.

Signed-off-by: Sujith &lt;Sujith.Manoharan@atheros.com&gt;
Acked-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Add support for hardware ARP query filtering</title>
<updated>2010-06-03T18:10:45Z</updated>
<author>
<name>Juuso Oikarinen</name>
</author>
<published>2010-05-27T12:32:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2b2c009ecf71f4c66ff8420b63dddbc9737e04e3'/>
<id>urn:sha1:2b2c009ecf71f4c66ff8420b63dddbc9737e04e3</id>
<content type='text'>
Some hardware allow extended filtering of ARP frames not intended for
the host. To perform such filtering, the hardware needs to know the current
IP address(es) of the host, bound to its interface.

Add support for ARP filtering to mac80211 by adding a new op to the driver
interface, allowing to configure the current IP addresses. This op is called
upon association with the currently configured address(es), and when
associated whenever the IP address(es) change.

This patch adds configuration of IPv4 addresses only, as IPv6 addresses don't
need ARP filtering.

Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
