<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/main.c, 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-12-09T21:32:09Z</updated>
<entry>
<title>mac80211: fix offchannel assumption upon association</title>
<updated>2010-12-09T21:32:09Z</updated>
<author>
<name>Luis R. Rodriguez</name>
</author>
<published>2010-09-25T01:59:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=714d22c3ff7cdc4bd23ca35af560688516e0e99b'/>
<id>urn:sha1:714d22c3ff7cdc4bd23ca35af560688516e0e99b</id>
<content type='text'>
commit 8d4780eb1ece4e8109b4f6b2e5e61f7fc593c3f4 upstream.

Association is dealt with as an atomic offchannel operation,
we do this because we don't know we are associated until we
get the associatin response from the AP. When we do get the
associatin response though we were never clearing the offchannel
state. This has a few implications, we told drivers we were
still offchannel, and the first configured TX power for the
channel does not take into account any power constraints.

For ath9k this meant ANI calibration would not start upon
association, and we'd have to wait until the first bgscan
to be triggered. There may be other issues this resolves
but I'm too lazy to comb the code to check.

Cc: Amod Bodas &lt;amod.bodas@atheros.com&gt;
Cc: Vasanth Thiagarajan &lt;vasanth.thiagarajan@atheros.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mac80211: delete work timer</title>
<updated>2010-08-30T20:02:34Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-08-25T12:47:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=071249b1d501b1f31a6b1af3fbcbe03158a84e5c'/>
<id>urn:sha1:071249b1d501b1f31a6b1af3fbcbe03158a84e5c</id>
<content type='text'>
The new workqueue changes helped me find this bug
that's been lingering since the changes to the work
processing in mac80211 -- the work timer is never
deleted properly. Do that to avoid having it fire
after all data structures have been freed. It can't
be re-armed because all it will do, if running, is
schedule the work, but that gets flushed later and
won't have anything to do since all work items are
gone by now (by way of interface removal).

Cc: stable@kernel.org [2.6.34+]
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: Fix compilation warning when CONFIG_INET is not set</title>
<updated>2010-08-04T19:28:37Z</updated>
<author>
<name>Juuso Oikarinen</name>
</author>
<published>2010-08-03T05:22:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93c08c32914264f539baf7f04cce310a0dd30a7a'/>
<id>urn:sha1:93c08c32914264f539baf7f04cce310a0dd30a7a</id>
<content type='text'>
The warning is:
  net/mac80211/main.c:688: warning: label ‘fail_ifa’ defined but not used

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: inform drivers about the off-channel status on channel changes</title>
<updated>2010-07-28T20:24:02Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2010-07-28T00:40:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4552124543141debf40a94b67155e57aa6bb34d6'/>
<id>urn:sha1:4552124543141debf40a94b67155e57aa6bb34d6</id>
<content type='text'>
For some drivers it can be useful to know whether the channel they're
supposed to switch to is going to be used for short off-channel work or
scanning, or whether the hardware is expected to stay on it for a while
longer. This is important for various kinds of calibration work, which
takes longer to complete and should keep some persistent state, even if
the channel temporarily changes.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: remove wep dependency</title>
<updated>2010-07-08T20:35:50Z</updated>
<author>
<name>John W. Linville</name>
</author>
<published>2010-07-07T19:07:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3473187d2459a078e00e5fac8aafc30af69c57fa'/>
<id>urn:sha1:3473187d2459a078e00e5fac8aafc30af69c57fa</id>
<content type='text'>
The current mac80211 code assumes that WEP is always available.  If WEP
fails to initialize, ieee80211_register_hw will always fail.

In some cases (e.g. FIPS certification), the cryptography used by WEP is
unavailable.  However, in such cases there is no good reason why CCMP
encryption (or even no link level encryption) cannot be used.  So, this
patch removes mac80211's assumption that WEP (and TKIP) will always be
available for use.

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: Fix ps-qos network latency handling</title>
<updated>2010-06-15T20:00:48Z</updated>
<author>
<name>Juuso Oikarinen</name>
</author>
<published>2010-06-09T06:51:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff61638105db6f5832ef8700436ba6aa6d3a2fda'/>
<id>urn:sha1:ff61638105db6f5832ef8700436ba6aa6d3a2fda</id>
<content type='text'>
The ps-qos latency handling is broken. It uses predetermined latency values
to select specific dynamic PS timeouts. With common AP configurations, these
values overlap with beacon interval and are therefore essentially useless
(for network latencies less than the beacon interval, PSM is disabled.)

This patch remedies the problem by replacing the predetermined network latency
values with one high value (1900ms) which is used to go trigger full psm. For
backwards compatibility, the value 2000ms is still mapped to a dynamic ps
timeout of 100ms.

Currently also the mac80211 internal value for storing user space configured
dynamic PSM values is incorrectly in the driver visible ieee80211_conf struct.
Move it to the ieee80211_local struct.

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: 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: refcount aggregation queue stop</title>
<updated>2010-06-14T19:39:27Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-06-10T08:21:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a6a67db2bc89d2b1ff07e0817f11235c20d2c329'/>
<id>urn:sha1:a6a67db2bc89d2b1ff07e0817f11235c20d2c329</id>
<content type='text'>
mac80211 currently maintains the ampdu_lock to
avoid starting a queue due to one aggregation
session while another aggregation session needs
the queue stopped.

We can do better, however, and instead refcount
the queue stops for this particular purpose,
thus removing the need for the lock. This will
help making ampdu_action able to sleep.

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: move aggregation callback processing</title>
<updated>2010-06-14T19:39:27Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2010-06-10T08:21:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1475ca99edcc7216ddc45838ab2c3281c14ba22'/>
<id>urn:sha1:c1475ca99edcc7216ddc45838ab2c3281c14ba22</id>
<content type='text'>
This moves the aggregation callback processing
to the per-sdata skb queue and a work function
rather than the tasklet.

Unfortunately, this means that it extends the
pkt_type hack to that skb queue. However, it
will enable making ampdu_action API changes
gradually, my current plan is to get rid of
this again by forcing drivers to only return
from ampdu_action() when everything is done,
thus removing the callbacks completely.

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 netif state checking to ieee80211_ifa_changed</title>
<updated>2010-06-08T13:31:21Z</updated>
<author>
<name>Juuso Oikarinen</name>
</author>
<published>2010-06-07T07:52:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90b726097ba0dcc1f9725182513e669a30e77db5'/>
<id>urn:sha1:90b726097ba0dcc1f9725182513e669a30e77db5</id>
<content type='text'>
There's a window for ieee80211_ifa_changed() to get called whilst the
managed mode mutex has not been initialized when opening and stopping the
interface. Currently this causes a kernel BUG like the following:

[  132.460013] kernel BUG at /home/wifi/iwlwifi-2.6/net/mac80211/main.c:380!
[  132.460013] invalid opcode: 0000 [#1] SMP

The mutex is initialized during open(), hence once netif_running() is true,
the mutex should be valid. Fix by adding a netif_running() check to the
function.

Reported-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Tested-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
