<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/mac80211/agg-rx.c, branch v3.11.9</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>mac80211: improve aggregation debug messages</title>
<updated>2013-01-18T20:55:15+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2013-01-16T09:39:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0a214d3f7e5041685ebff054628a4354bedd78c3'/>
<id>0a214d3f7e5041685ebff054628a4354bedd78c3</id>
<content type='text'>
A lot of the aggregation messages don't indicate the
station so they're hard to understand if there are
multiple sessions in progress. Make that easier by
adding the MAC address to most messages. Also add
the TID if it wasn't already there.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A lot of the aggregation messages don't indicate the
station so they're hard to understand if there are
multiple sessions in progress. Make that easier by
adding the MAC address to most messages. Also add
the TID if it wasn't already there.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: introduce IEEE80211_NUM_TIDS and use it</title>
<updated>2012-11-19T14:44:00+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2012-11-14T22:22:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5a306f5887d5fd840beb8ea872897fa89e8fcdef'/>
<id>5a306f5887d5fd840beb8ea872897fa89e8fcdef</id>
<content type='text'>
Introduce IEEE80211_NUM_TIDS in the generic 802.11
header file and use it in place of STA_TID_NUM and
NUM_RX_DATA_QUEUES which are both really the number
of TIDs.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce IEEE80211_NUM_TIDS in the generic 802.11
header file and use it in place of STA_TID_NUM and
NUM_RX_DATA_QUEUES which are both really the number
of TIDs.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: clean up debugging</title>
<updated>2012-06-24T09:32:29+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2012-06-22T09:29:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bdcbd8e0e3ffdad32b14b6373e67bfcf5fd3f002'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</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:06+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2012-06-06T18:40:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7c9c46c16d2d1d232f3296924162de293477f017'/>
<id>7c9c46c16d2d1d232f3296924162de293477f017</id>
<content type='text'>
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-drv.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/wireless/iwlwifi/iwl-drv.c
</pre>
</div>
</content>
</entry>
<entry>
<title>net: mac80211: Add and use ht_vdbg debugging macro</title>
<updated>2012-06-05T19:32:10+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2012-05-15T21:20:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d63e9ae3b12fd0c6a3795c9b08de6b476f80b8c3'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: mac80211: Convert printk(KERN_DEBUG to pr_debug</title>
<updated>2012-06-05T19:27:16+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2012-05-15T21:20:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f0d232080fa5d040aaf73a39d127b003cdd2d0ae'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: add missing rcu_read_lock/unlock in agg-rx session timer</title>
<updated>2012-06-04T19:25:41+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2012-05-30T13:32:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d8c7aae64cd2db5eccc631c29fa978a24fb1feef'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Convert net_ratelimit uses to net_&lt;level&gt;_ratelimited</title>
<updated>2012-05-15T17:45:03+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2012-05-13T21:56:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e87cc4728f0e2fb663e592a1141742b1d6c63256'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: optimize aggregation session timeout handling</title>
<updated>2012-04-09T20:09:36+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2012-03-18T21:58:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=12d3952fc4a1cd96234bc7023bf7eefeb0bb6355'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: fix possible tid_rx-&gt;reorder_timer use after free</title>
<updated>2012-03-26T19:07:29+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2012-03-19T15:00:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d72308bff5c2fa207949a5925b020bce74495e33'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
</feed>
