<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/wireless, branch mybooklive</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/net/wireless?h=mybooklive</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/net/wireless?h=mybooklive'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2010-04-01T22:58:55Z</updated>
<entry>
<title>b43: Workaround circular locking in hw-tkip key update callback</title>
<updated>2010-04-01T22:58:55Z</updated>
<author>
<name>Michael Buesch</name>
<email>mb@bu3sch.de</email>
</author>
<published>2010-03-19T15:38:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e548510b30a5b74f9be9c501d955ca90c7d1a8d0'/>
<id>urn:sha1:e548510b30a5b74f9be9c501d955ca90c7d1a8d0</id>
<content type='text'>
commit 96869a39399269a776a94812e9fff3d38b47d838 upstream

The TKIP key update callback is called from the RX path, where the driver
mutex is already locked. This results in a circular locking bug.
Avoid this by removing the lock.

Johannes noted that there is a separate bug: The callback still breaks on SDIO
hardware, because SDIO hardware access needs to sleep, but we are not allowed
to sleep in the callback due to mac80211's RCU locking.

Signed-off-by: Michael Buesch &lt;mb@bu3sch.de&gt;
Tested-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Reported-by: kecsa@kutfo.hit.bme.hu
Cc: Johannes Berg &lt;johannes@sipsolutions.net&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>ath9k: Enable IEEE80211_HW_REPORTS_TX_ACK_STATUS flag for ath9k</title>
<updated>2010-04-01T22:58:52Z</updated>
<author>
<name>Vivek Natarajan</name>
<email>vnatarajan@atheros.com</email>
</author>
<published>2010-03-11T21:03:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=948dc19cef84be418aadc6b3ade94207c0888937'/>
<id>urn:sha1:948dc19cef84be418aadc6b3ade94207c0888937</id>
<content type='text'>
commit 05df49865be08b30e7ba91b9d3d94d7d52dd3033 upstream.

Signed-off-by: Vivek Natarajan &lt;vnatarajan@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ath9k: Enable TIM timer interrupt only when needed.</title>
<updated>2010-04-01T22:58:51Z</updated>
<author>
<name>Senthil Balasubramanian</name>
<email>senthilkumar@atheros.com</email>
</author>
<published>2010-03-11T19:50:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=525ad995580f1d760cbf4a3b42df1cba3df6821b'/>
<id>urn:sha1:525ad995580f1d760cbf4a3b42df1cba3df6821b</id>
<content type='text'>
commit 3f7c5c10e9dc6bf90179eb9f7c06151d508fb324 upstream.

The TIM timer interrupt is enabled even before the ACK of nullqos
is received which is unnecessary.

Also clean up the CONF_PS part of config callback properly for
better readability.

Signed-off-by: Senthil Balasubramanian &lt;senthilkumar@atheros.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Luis R. Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ath9k: fix BUG_ON triggered by PAE frames</title>
<updated>2010-04-01T22:58:46Z</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2010-03-12T03:02:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fa8e8558a6874707d8e30c85bb386f43cb61a6e1'/>
<id>urn:sha1:fa8e8558a6874707d8e30c85bb386f43cb61a6e1</id>
<content type='text'>
commit 4fdec031b9169b3c17938b9c4168f099f457169c upstream.

When I initially stumbled upon sequence number problems with PAE frames
in ath9k, I submitted a patch to remove all special cases for PAE
frames and let them go through the normal transmit path.
Out of concern about crypto incompatibility issues, this change was
merged instead:

commit 6c8afef551fef87a3bf24f8a74c69a7f2f72fc82
Author: Sujith &lt;Sujith.Manoharan@atheros.com&gt;
Date:   Tue Feb 9 10:07:00 2010 +0530

    ath9k: Fix sequence numbers for PAE frames

After a lot of testing, I'm able to reliably trigger a driver crash on
rekeying with current versions with this change in place.
It seems that the driver does not support sending out regular MPDUs with
the same TID while an A-MPDU session is active.
This leads to duplicate entries in the TID Tx buffer, which hits the
following BUG_ON in ath_tx_addto_baw():

    index  = ATH_BA_INDEX(tid-&gt;seq_start, bf-&gt;bf_seqno);
    cindex = (tid-&gt;baw_head + index) &amp; (ATH_TID_MAX_BUFS - 1);

    BUG_ON(tid-&gt;tx_buf[cindex] != NULL);

I believe until we actually have a reproducible case of an
incompatibility with another AP using no PAE special cases, we should
simply get rid of this mess.

This patch completely fixes my crash issues in STA mode and makes it
stay connected without throughput drops or connectivity issues even
when the AP is configured to a very short group rekey interval.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&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>iwlwifi: Silence tfds_in_queue message</title>
<updated>2010-04-01T22:58:41Z</updated>
<author>
<name>Adel Gadllah</name>
<email>adel.gadllah@gmail.com</email>
</author>
<published>2010-03-14T18:16:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=632682a2eccc96b1b5238e274dde6b18a5b670f1'/>
<id>urn:sha1:632682a2eccc96b1b5238e274dde6b18a5b670f1</id>
<content type='text'>
commit c8406ea8fa1adde8dc5400127281d497bbcdb84a upstream.

Commit a239a8b47cc0e5e6d7416a89f340beac06d5edaa introduced a
noisy message, that fills up the log very fast.

The error seems not to be fatal (the connection is stable and
performance is ok), so make it IWL_DEBUG_TX rather than IWL_ERR.

Signed-off-by: Adel Gadllah &lt;adel.gadllah@gmail.com&gt;
Acked-by: Reinette Chatre &lt;reinette.chatre@intel.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>iwlwifi: use dma_alloc_coherent</title>
<updated>2010-04-01T22:58:40Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2010-03-19T10:10:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7a8a56a5be1dcaa8c3668b5293ed3a5df771e25a'/>
<id>urn:sha1:7a8a56a5be1dcaa8c3668b5293ed3a5df771e25a</id>
<content type='text'>
commit f36d04abe684f9e2b07c6ebe9f77ae20eb5c1e84 upstream.

Change pci_alloc_consistent() to dma_alloc_coherent() so we can use
GFP_KERNEL flag.

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: Reinette Chatre &lt;reinette.chatre@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>wl1251: fix potential crash</title>
<updated>2010-04-01T22:58:37Z</updated>
<author>
<name>Grazvydas Ignotas</name>
<email>notasas@gmail.com</email>
</author>
<published>2010-03-11T15:45:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=70aba33f52d17490d8b0b5ba2d8b0ac17220ba03'/>
<id>urn:sha1:70aba33f52d17490d8b0b5ba2d8b0ac17220ba03</id>
<content type='text'>
commit 3f60ebc9d6291863652d564bacc430629271e6a9 upstream.

In case debugfs does not init for some reason (or is disabled
on older kernels) driver does not allocate stats.fw_stats
structure, but tries to clear it later and trips on a NULL
pointer:

Unable to handle kernel NULL pointer dereference at virtual address
00000000
PC is at __memzero+0x24/0x80
Backtrace:
[&lt;bf0ddb88&gt;] (wl1251_debugfs_reset+0x0/0x30 [wl1251])
[&lt;bf0d6a2c&gt;] (wl1251_op_stop+0x0/0x12c [wl1251])
[&lt;bf0bc228&gt;] (ieee80211_stop_device+0x0/0x74 [mac80211])
[&lt;bf0b0d10&gt;] (ieee80211_stop+0x0/0x4ac [mac80211])
[&lt;c02deeac&gt;] (dev_close+0x0/0xb4)
[&lt;c02deac0&gt;] (dev_change_flags+0x0/0x184)
[&lt;c031f478&gt;] (devinet_ioctl+0x0/0x704)
[&lt;c0320720&gt;] (inet_ioctl+0x0/0x100)

Add a NULL pointer check to fix this.

Signed-off-by: Grazvydas Ignotas &lt;notasas@gmail.com&gt;
Acked-by: Kalle Valo &lt;kalle.valo@iki.fi&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>ath9k: fix lockdep warning when unloading module</title>
<updated>2010-04-01T22:58:18Z</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2010-02-27T16:56:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0dcc9985f34aef3c60bffab3dfc7f7ba3748f35a'/>
<id>urn:sha1:0dcc9985f34aef3c60bffab3dfc7f7ba3748f35a</id>
<content type='text'>
commit a9f042cbe5284f34ccff15f3084477e11b39b17b upstream.

Since txq-&gt;axq_lock may be hold in softirq context, it must be
acquired with spin_lock_bh() instead of spin_lock() if softieq is
enabled.

The patch fixes the lockdep warning below when unloading ath9k modules.

=================================
[ INFO: inconsistent lock state ]
2.6.33-wl #12
---------------------------------
inconsistent {IN-SOFTIRQ-W} -&gt; {SOFTIRQ-ON-W} usage.
rmmod/3642 [HC0[0]:SC0[0]:HE1:SE1] takes:
 (&amp;(&amp;txq-&gt;axq_lock)-&gt;rlock){+.?...}, at: [&lt;ffffffffa03568c3&gt;] ath_tx_node_cleanup+0x62/0x180 [ath9k]
{IN-SOFTIRQ-W} state was registered at:
  [&lt;ffffffff8107577d&gt;] __lock_acquire+0x2f6/0xd35
  [&lt;ffffffff81076289&gt;] lock_acquire+0xcd/0xf1
  [&lt;ffffffff813a7486&gt;] _raw_spin_lock_bh+0x3b/0x6e
  [&lt;ffffffffa0356b49&gt;] spin_lock_bh+0xe/0x10 [ath9k]
  [&lt;ffffffffa0358ec7&gt;] ath_tx_tasklet+0xcd/0x391 [ath9k]
  [&lt;ffffffffa0354f5f&gt;] ath9k_tasklet+0x70/0xc8 [ath9k]
  [&lt;ffffffff8104e601&gt;] tasklet_action+0x8c/0xf4
  [&lt;ffffffff8104f459&gt;] __do_softirq+0xf8/0x1cd
  [&lt;ffffffff8100ab1c&gt;] call_softirq+0x1c/0x30
  [&lt;ffffffff8100c2cf&gt;] do_softirq+0x4b/0xa3
  [&lt;ffffffff8104f045&gt;] irq_exit+0x4a/0x8c
  [&lt;ffffffff813acccc&gt;] do_IRQ+0xac/0xc3
  [&lt;ffffffff813a7d53&gt;] ret_from_intr+0x0/0x16
  [&lt;ffffffff81302d52&gt;] cpuidle_idle_call+0x9e/0xf8
  [&lt;ffffffff81008be7&gt;] cpu_idle+0x62/0x9d
  [&lt;ffffffff81391c1a&gt;] rest_init+0x7e/0x80
  [&lt;ffffffff818bbd38&gt;] start_kernel+0x3e8/0x3f3
  [&lt;ffffffff818bb2bc&gt;] x86_64_start_reservations+0xa7/0xab
  [&lt;ffffffff818bb3b8&gt;] x86_64_start_kernel+0xf8/0x107
irq event stamp: 42037
hardirqs last  enabled at (42037): [&lt;ffffffff813a7b21&gt;] _raw_spin_unlock_irqrestore+0x47/0x56
hardirqs last disabled at (42036): [&lt;ffffffff813a72f4&gt;] _raw_spin_lock_irqsave+0x2b/0x88
softirqs last  enabled at (42000): [&lt;ffffffffa0353ea6&gt;] spin_unlock_bh+0xe/0x10 [ath9k]
softirqs last disabled at (41998): [&lt;ffffffff813a7463&gt;] _raw_spin_lock_bh+0x18/0x6e

other info that might help us debug this:
4 locks held by rmmod/3642:
 #0:  (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff8132c10d&gt;] rtnl_lock+0x17/0x19
 #1:  (&amp;wdev-&gt;mtx){+.+.+.}, at: [&lt;ffffffffa01e53f2&gt;] cfg80211_netdev_notifier_call+0x28d/0x46d [cfg80211]
 #2:  (&amp;ifmgd-&gt;mtx){+.+.+.}, at: [&lt;ffffffffa0260834&gt;] ieee80211_mgd_deauth+0x3f/0x17e [mac80211]
 #3:  (&amp;local-&gt;sta_mtx){+.+.+.}, at: [&lt;ffffffffa025a381&gt;] sta_info_destroy_addr+0x2b/0x5e [mac80211]

stack backtrace:
Pid: 3642, comm: rmmod Not tainted 2.6.33-wl #12
Call Trace:
 [&lt;ffffffff81074469&gt;] valid_state+0x178/0x18b
 [&lt;ffffffff81014f94&gt;] ? save_stack_trace+0x2f/0x4c
 [&lt;ffffffff81074e08&gt;] ? check_usage_backwards+0x0/0x88
 [&lt;ffffffff8107458f&gt;] mark_lock+0x113/0x230
 [&lt;ffffffff810757f1&gt;] __lock_acquire+0x36a/0xd35
 [&lt;ffffffff8101018d&gt;] ? native_sched_clock+0x2d/0x5f
 [&lt;ffffffffa03568c3&gt;] ? ath_tx_node_cleanup+0x62/0x180 [ath9k]
 [&lt;ffffffff81076289&gt;] lock_acquire+0xcd/0xf1
 [&lt;ffffffffa03568c3&gt;] ? ath_tx_node_cleanup+0x62/0x180 [ath9k]
 [&lt;ffffffff810732eb&gt;] ? trace_hardirqs_off+0xd/0xf
 [&lt;ffffffff813a7193&gt;] _raw_spin_lock+0x36/0x69
 [&lt;ffffffffa03568c3&gt;] ? ath_tx_node_cleanup+0x62/0x180 [ath9k]
 [&lt;ffffffffa03568c3&gt;] ath_tx_node_cleanup+0x62/0x180 [ath9k]
 [&lt;ffffffff810749ed&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffffa0353950&gt;] ath9k_sta_remove+0x22/0x26 [ath9k]
 [&lt;ffffffffa025a08f&gt;] __sta_info_destroy+0x1ad/0x38c [mac80211]
 [&lt;ffffffffa025a394&gt;] sta_info_destroy_addr+0x3e/0x5e [mac80211]
 [&lt;ffffffffa02605d6&gt;] ieee80211_set_disassoc+0x175/0x180 [mac80211]
 [&lt;ffffffffa026084d&gt;] ieee80211_mgd_deauth+0x58/0x17e [mac80211]
 [&lt;ffffffff813a60c1&gt;] ? __mutex_lock_common+0x37f/0x3a4
 [&lt;ffffffffa01e53f2&gt;] ? cfg80211_netdev_notifier_call+0x28d/0x46d [cfg80211]
 [&lt;ffffffffa026786e&gt;] ieee80211_deauth+0x1e/0x20 [mac80211]
 [&lt;ffffffffa01f47f9&gt;] __cfg80211_mlme_deauth+0x130/0x13f [cfg80211]
 [&lt;ffffffffa01e53f2&gt;] ? cfg80211_netdev_notifier_call+0x28d/0x46d [cfg80211]
 [&lt;ffffffff810732eb&gt;] ? trace_hardirqs_off+0xd/0xf
 [&lt;ffffffffa01f7eee&gt;] __cfg80211_disconnect+0x111/0x189 [cfg80211]
 [&lt;ffffffffa01e5433&gt;] cfg80211_netdev_notifier_call+0x2ce/0x46d [cfg80211]
 [&lt;ffffffff813aa9ea&gt;] notifier_call_chain+0x37/0x63
 [&lt;ffffffff81068c98&gt;] raw_notifier_call_chain+0x14/0x16
 [&lt;ffffffff81322e97&gt;] call_netdevice_notifiers+0x1b/0x1d
 [&lt;ffffffff8132386d&gt;] dev_close+0x6a/0xa6
 [&lt;ffffffff8132395f&gt;] rollback_registered_many+0xb6/0x2f4
 [&lt;ffffffff81323bb8&gt;] unregister_netdevice_many+0x1b/0x66
 [&lt;ffffffffa026494f&gt;] ieee80211_remove_interfaces+0xc5/0xd0 [mac80211]
 [&lt;ffffffffa02580a2&gt;] ieee80211_unregister_hw+0x47/0xe8 [mac80211]
 [&lt;ffffffffa035290e&gt;] ath9k_deinit_device+0x7a/0x9b [ath9k]
 [&lt;ffffffffa035bc26&gt;] ath_pci_remove+0x38/0x76 [ath9k]
 [&lt;ffffffff8120940a&gt;] pci_device_remove+0x2d/0x51
 [&lt;ffffffff8129d797&gt;] __device_release_driver+0x7b/0xd1
 [&lt;ffffffff8129d885&gt;] driver_detach+0x98/0xbe
 [&lt;ffffffff8129ca7a&gt;] bus_remove_driver+0x94/0xb7
 [&lt;ffffffff8129ddd6&gt;] driver_unregister+0x6c/0x74
 [&lt;ffffffff812096d2&gt;] pci_unregister_driver+0x46/0xad
 [&lt;ffffffffa035bae1&gt;] ath_pci_exit+0x15/0x17 [ath9k]
 [&lt;ffffffffa035e1a2&gt;] ath9k_exit+0xe/0x2f [ath9k]
 [&lt;ffffffff8108050a&gt;] sys_delete_module+0x1c7/0x236
 [&lt;ffffffff813a7df5&gt;] ? retint_swapgs+0x13/0x1b
 [&lt;ffffffff810749b5&gt;] ? trace_hardirqs_on_caller+0x119/0x144
 [&lt;ffffffff8109b9f6&gt;] ? audit_syscall_entry+0x11e/0x14a
 [&lt;ffffffff81009bb2&gt;] system_call_fastpath+0x16/0x1b
wlan1: deauthenticating from 00:23:cd:e1:f9:b2 by local choice (reason=3)
PM: Removing info for No Bus:wlan1
cfg80211: Calling CRDA to update world regulatory domain
PM: Removing info for No Bus:rfkill2
PM: Removing info for No Bus:phy1
ath9k 0000:16:00.0: PCI INT A disabled

Signed-off-by: Ming Lei &lt;tom.leiming@gmail.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>ath5k: fix setup for CAB queue</title>
<updated>2010-04-01T22:58:08Z</updated>
<author>
<name>Bob Copeland</name>
<email>me@bobcopeland.com</email>
</author>
<published>2010-01-21T04:51:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a0d8ffd630563ec37d9a38999ecdf516b570a0ac'/>
<id>urn:sha1:a0d8ffd630563ec37d9a38999ecdf516b570a0ac</id>
<content type='text'>
commit a951ae2176b982574ffa197455db6c89359fd5eb upstream.

The beacon sent gating doesn't seem to work with any combination
of flags.  Thus, buffered frames tend to stay buffered forever,
using up tx descriptors.

Instead, use the DBA gating and hold transmission of the buffered
frames until 80% of the beacon interval has elapsed using the ready
time.  This fixes the following error in AP mode:

   ath5k phy0: no further txbuf available, dropping packet

Add a comment to acknowledge that this isn't the best solution.

Signed-off-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Acked-by: Nick Kossifidis &lt;mickflemm@gmail.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>ath5k: dont use external sleep clock in AP mode</title>
<updated>2010-04-01T22:58:07Z</updated>
<author>
<name>Bob Copeland</name>
<email>me@bobcopeland.com</email>
</author>
<published>2010-03-11T23:23:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d69b8a11c138141bf2ee5f0d218111e923061a62'/>
<id>urn:sha1:d69b8a11c138141bf2ee5f0d218111e923061a62</id>
<content type='text'>
commit 5d6ce628f986d1a3c523cbb0a5a52095c48cc332 upstream

When using the external sleep clock in AP mode, the
TSF increments too quickly, causing beacon interval
to be much lower than it is supposed to be, resulting
in lots of beacon-not-ready interrupts.

This fixes http://bugzilla.kernel.org/show_bug.cgi?id=14802.

Signed-off-by: Bob Copeland &lt;me@bobcopeland.com&gt;
Acked-by: Nick Kossifidis &lt;mickflemm@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Luis Rodriguez &lt;lrodriguez@atheros.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
</feed>
