<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/mac80211/agg-rx.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>2012-06-24T09:32:29Z</updated>
<entry>
<title>mac80211: clean up debugging</title>
<updated>2012-06-24T09:32:29Z</updated>
<author>
<name>Johannes Berg</name>
</author>
<published>2012-06-22T09:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bdcbd8e0e3ffdad32b14b6373e67bfcf5fd3f002'/>
<id>urn:sha1:bdcbd8e0e3ffdad32b14b6373e67bfcf5fd3f002</id>
<content type='text'>
There are a few things that make the logging and
debugging in mac80211 less useful than it should
be right now:
 * a lot of messages should be pr_info, not pr_debug
 * wholesale use of pr_debug makes it require *both*
   Kconfig and dynamic configuration
 * there are still a lot of ifdefs
 * the style is very inconsistent, sometimes the
   sdata-&gt;name is printed in front

Clean up everything, introducing new macros and
separating out the station MLME debugging into
a new Kconfig symbol.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless</title>
<updated>2012-06-06T18:40:06Z</updated>
<author>
<name>John W. Linville</name>
</author>
<published>2012-06-06T18:40:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c9c46c16d2d1d232f3296924162de293477f017'/>
<id>urn:sha1:7c9c46c16d2d1d232f3296924162de293477f017</id>
<content type='text'>
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-drv.c
</content>
</entry>
<entry>
<title>net: mac80211: Add and use ht_vdbg debugging macro</title>
<updated>2012-06-05T19:32:10Z</updated>
<author>
<name>Joe Perches</name>
</author>
<published>2012-05-15T21:20:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d63e9ae3b12fd0c6a3795c9b08de6b476f80b8c3'/>
<id>urn:sha1:d63e9ae3b12fd0c6a3795c9b08de6b476f80b8c3</id>
<content type='text'>
Simplify the use of #ifdef CONFIG_MAC80211_HT_DEBUG/#endif
by adding a logging macro to encapsulate the test.

Convert the appropriate uses too.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>net: mac80211: Convert printk(KERN_DEBUG to pr_debug</title>
<updated>2012-06-05T19:27:16Z</updated>
<author>
<name>Joe Perches</name>
</author>
<published>2012-05-15T21:20:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0d232080fa5d040aaf73a39d127b003cdd2d0ae'/>
<id>urn:sha1:f0d232080fa5d040aaf73a39d127b003cdd2d0ae</id>
<content type='text'>
Standardize the debugging to be able to use dynamic_debug.

Coalesce formats, align arguments.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add missing rcu_read_lock/unlock in agg-rx session timer</title>
<updated>2012-06-04T19:25:41Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2012-05-30T13:32:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d8c7aae64cd2db5eccc631c29fa978a24fb1feef'/>
<id>urn:sha1:d8c7aae64cd2db5eccc631c29fa978a24fb1feef</id>
<content type='text'>
Fixes a lockdep warning:

===================================================
[ INFO: suspicious rcu_dereference_check() usage. ]
---------------------------------------------------
net/mac80211/agg-rx.c:148 invoked rcu_dereference_check() without protection!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 1
1 lock held by arecord/11226:
 #0:  (&amp;tid_agg_rx-&gt;session_timer){+.-...}, at: [&lt;ffffffff81066bb0&gt;] call_timer_fn+0x0/0x360

stack backtrace:
Pid: 11226, comm: arecord Not tainted 3.1.0-kml #16
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff81093454&gt;] lockdep_rcu_dereference+0xa4/0xc0
 [&lt;ffffffffa02778c9&gt;] sta_rx_agg_session_timer_expired+0xc9/0x110 [mac80211]
 [&lt;ffffffffa0277800&gt;] ? ieee80211_process_addba_resp+0x220/0x220 [mac80211]
 [&lt;ffffffff81066c3a&gt;] call_timer_fn+0x8a/0x360
 [&lt;ffffffff81066bb0&gt;] ? init_timer_deferrable_key+0x30/0x30
 [&lt;ffffffff81477bb0&gt;] ? _raw_spin_unlock_irq+0x30/0x70
 [&lt;ffffffff81067049&gt;] run_timer_softirq+0x139/0x310
 [&lt;ffffffff81091d5e&gt;] ? put_lock_stats.isra.25+0xe/0x40
 [&lt;ffffffff810922ac&gt;] ? lock_release_holdtime.part.26+0xdc/0x160
 [&lt;ffffffffa0277800&gt;] ? ieee80211_process_addba_resp+0x220/0x220 [mac80211]
 [&lt;ffffffff8105cb78&gt;] __do_softirq+0xc8/0x3c0
 [&lt;ffffffff8108f088&gt;] ? tick_dev_program_event+0x48/0x110
 [&lt;ffffffff8108f16f&gt;] ? tick_program_event+0x1f/0x30
 [&lt;ffffffff81153b15&gt;] ? putname+0x35/0x50
 [&lt;ffffffff8147a43c&gt;] call_softirq+0x1c/0x30
 [&lt;ffffffff81004c55&gt;] do_softirq+0xa5/0xe0
 [&lt;ffffffff8105d1ee&gt;] irq_exit+0xae/0xe0
 [&lt;ffffffff8147ac6b&gt;] smp_apic_timer_interrupt+0x6b/0x98
 [&lt;ffffffff81479ab3&gt;] apic_timer_interrupt+0x73/0x80
 &lt;EOI&gt;  [&lt;ffffffff8146aac6&gt;] ? free_debug_processing+0x1a1/0x1d5
 [&lt;ffffffff81153b15&gt;] ? putname+0x35/0x50
 [&lt;ffffffff8146ab2b&gt;] __slab_free+0x31/0x2ca
 [&lt;ffffffff81477c3a&gt;] ? _raw_spin_unlock_irqrestore+0x4a/0x90
 [&lt;ffffffff81253b8f&gt;] ? __debug_check_no_obj_freed+0x15f/0x210
 [&lt;ffffffff81097054&gt;] ? lock_release_nested+0x84/0xc0
 [&lt;ffffffff8113ec55&gt;] ? kmem_cache_free+0x105/0x250
 [&lt;ffffffff81153b15&gt;] ? putname+0x35/0x50
 [&lt;ffffffff81153b15&gt;] ? putname+0x35/0x50
 [&lt;ffffffff8113ed8f&gt;] kmem_cache_free+0x23f/0x250
 [&lt;ffffffff81153b15&gt;] putname+0x35/0x50
 [&lt;ffffffff81146d8d&gt;] do_sys_open+0x16d/0x1d0
 [&lt;ffffffff81146e10&gt;] sys_open+0x20/0x30
 [&lt;ffffffff81478f42&gt;] system_call_fastpath+0x16/0x1b

Reported-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
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>net: Convert net_ratelimit uses to net_&lt;level&gt;_ratelimited</title>
<updated>2012-05-15T17:45:03Z</updated>
<author>
<name>Joe Perches</name>
</author>
<published>2012-05-13T21:56:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e87cc4728f0e2fb663e592a1141742b1d6c63256'/>
<id>urn:sha1:e87cc4728f0e2fb663e592a1141742b1d6c63256</id>
<content type='text'>
Standardize the net core ratelimited logging functions.

Coalesce formats, align arguments.
Change a printk then vprintk sequence to use printf extension %pV.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>mac80211: optimize aggregation session timeout handling</title>
<updated>2012-04-09T20:09:36Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2012-03-18T21:58:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=12d3952fc4a1cd96234bc7023bf7eefeb0bb6355'/>
<id>urn:sha1:12d3952fc4a1cd96234bc7023bf7eefeb0bb6355</id>
<content type='text'>
Calling mod_timer from the rx/tx hotpath is somewhat expensive, and the
timeout doesn't need to be so precise.

Switch to a different strategy: Schedule the timer initially, store jiffies
of all last rx/tx activity which would previously modify the timer, and
let the timer re-arm itself after checking the last rx/tx timestamp.
Make the session timers deferrable to avoid causing extra wakeups on systems
running on battery.
This visibly reduces CPU load under high network load on small embedded
systems.

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: fix possible tid_rx-&gt;reorder_timer use after free</title>
<updated>2012-03-26T19:07:29Z</updated>
<author>
<name>Stanislaw Gruszka</name>
</author>
<published>2012-03-19T15:00:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d72308bff5c2fa207949a5925b020bce74495e33'/>
<id>urn:sha1:d72308bff5c2fa207949a5925b020bce74495e33</id>
<content type='text'>
Is possible that we will arm the tid_rx-&gt;reorder_timer after
del_timer_sync() in ___ieee80211_stop_rx_ba_session(). We need to stop
timer after RCU grace period finish, so move it to
ieee80211_free_tid_rx(). Timer will not be armed again, as
rcu_dereference(sta-&gt;ampdu_mlme.tid_rx[tid]) will return NULL.

Debug object detected problem with the following warning:
ODEBUG: free active (active state 0) object type: timer_list hint: sta_rx_agg_reorder_timer_expired+0x0/0xf0 [mac80211]

Bug report (with all warning messages):
https://bugzilla.redhat.com/show_bug.cgi?id=804007

Reported-by: "jan p. springer" &lt;jsd@igroup.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>net: reintroduce missing rcu_assign_pointer() calls</title>
<updated>2012-01-12T20:26:56Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2012-01-12T04:41:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cf778b00e96df6d64f8e21b8395d1f8a859ecdc7'/>
<id>urn:sha1:cf778b00e96df6d64f8e21b8395d1f8a859ecdc7</id>
<content type='text'>
commit a9b3cd7f32 (rcu: convert uses of rcu_assign_pointer(x, NULL) to
RCU_INIT_POINTER) did a lot of incorrect changes, since it did a
complete conversion of rcu_assign_pointer(x, y) to RCU_INIT_POINTER(x,
y).

We miss needed barriers, even on x86, when y is not NULL.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
CC: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
CC: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>mac80211: Add HT operation modes for IBSS</title>
<updated>2011-12-06T21:05:25Z</updated>
<author>
<name>Alexander Simon</name>
</author>
<published>2011-11-30T15:56:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=13c40c54682ffe62977f670681268a26d500d6fa'/>
<id>urn:sha1:13c40c54682ffe62977f670681268a26d500d6fa</id>
<content type='text'>
The HT mode is set by iw (previous patchsets).
The interface is set into the specified HT mode.
HT mode and capabilities are announced in beacons.

If we add a station that uses HT also, the fastest matching HT mode will
be used for transmission. That means if we are using HT40+ and we add a station
running on HT40-, we would transfer at HT20.

If we join an IBSS with HT40, but the secondary channel is not
available, we will fall back into HT20 as well.

Allow frame aggregation to start in IBSS mode.

Signed-off-by: Alexander Simon &lt;an.alexsimon@googlemail.com&gt;
[siwu@hrz.tu-chemnitz.de: Updates]
* remove implicit channel_type enum assumptions
* use rate_control_rate_init() if channel type changed
* remove channel flags check
* activate HT IBSS feature support
* slightly reword commit message
* rebase on wireless-testing

Signed-off-by: Simon Wunderlich &lt;siwu@hrz.tu-chemnitz.de&gt;
Signed-off-by: Mathias Kretschmer &lt;mathias.kretschmer@fokus.fraunhofer.de&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
