<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/wireless/ath/ath9k, branch master</title>
<subtitle>Linux Kernel</subtitle>
<id>https://git.etezian.org/cgit.cgi/linux.git/atom?h=master</id>
<link rel='self' href='https://git.etezian.org/cgit.cgi/linux.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/'/>
<updated>2016-12-21T14:28:32+00:00</updated>
<entry>
<title>ath9k: do not return early to fix rcu unlocking</title>
<updated>2016-12-21T14:28:32+00:00</updated>
<author>
<name>Tobias Klausmann</name>
<email>tobias.johannes.klausmann@mni.thm.de</email>
</author>
<published>2016-12-13T17:08:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=d1f1c0e289e1bc46cd6873ba6dd6c627f459e7fa'/>
<id>urn:sha1:d1f1c0e289e1bc46cd6873ba6dd6c627f459e7fa</id>
<content type='text'>
Starting with commit d94a461d7a7d ("ath9k: use ieee80211_tx_status_noskb
where possible") the driver uses rcu_read_lock() &amp;&amp; rcu_read_unlock(), yet on
returning early in ath_tx_edma_tasklet() the unlock is missing leading to stalls
and suspicious RCU usage:

 ===============================
 [ INFO: suspicious RCU usage. ]
 4.9.0-rc8 #11 Not tainted
 -------------------------------
 kernel/rcu/tree.c:705 Illegal idle entry in RCU read-side critical section.!

 other info that might help us debug this:

 RCU used illegally from idle CPU!
 rcu_scheduler_active = 1, debug_locks = 0
 RCU used illegally from extended quiescent state!
 1 lock held by swapper/7/0:
 #0:
  (
 rcu_read_lock
 ){......}
 , at:
 [&lt;ffffffffa06ed110&gt;] ath_tx_edma_tasklet+0x0/0x450 [ath9k]

 stack backtrace:
 CPU: 7 PID: 0 Comm: swapper/7 Not tainted 4.9.0-rc8 #11
 Hardware name: Acer Aspire V3-571G/VA50_HC_CR, BIOS V2.21 12/16/2013
  ffff88025efc3f38 ffffffff8132b1e5 ffff88017ede4540 0000000000000001
  ffff88025efc3f68 ffffffff810a25f7 ffff88025efcee60 ffff88017edebdd8
  ffff88025eeb5400 0000000000000091 ffff88025efc3f88 ffffffff810c3cd4
 Call Trace:
  &lt;IRQ&gt;
  [&lt;ffffffff8132b1e5&gt;] dump_stack+0x68/0x93
  [&lt;ffffffff810a25f7&gt;] lockdep_rcu_suspicious+0xd7/0x110
  [&lt;ffffffff810c3cd4&gt;] rcu_eqs_enter_common.constprop.85+0x154/0x200
  [&lt;ffffffff810c5a54&gt;] rcu_irq_exit+0x44/0xa0
  [&lt;ffffffff81058631&gt;] irq_exit+0x61/0xd0
  [&lt;ffffffff81018d25&gt;] do_IRQ+0x65/0x110
  [&lt;ffffffff81672189&gt;] common_interrupt+0x89/0x89
  &lt;EOI&gt;
  [&lt;ffffffff814ffe11&gt;] ? cpuidle_enter_state+0x151/0x200
  [&lt;ffffffff814ffee2&gt;] cpuidle_enter+0x12/0x20
  [&lt;ffffffff8109a6ae&gt;] call_cpuidle+0x1e/0x40
  [&lt;ffffffff8109a8f6&gt;] cpu_startup_entry+0x146/0x220
  [&lt;ffffffff810336f8&gt;] start_secondary+0x148/0x170

Signed-off-by: Tobias Klausmann &lt;tobias.johannes.klausmann@mni.thm.de&gt;
Fixes: d94a461d7a7d ("ath9k: use ieee80211_tx_status_noskb where possible")
Cc: &lt;stable@vger.kernel.org&gt; # v4.9
Acked-by: Felix Fietkau &lt;nbd@nbd.name&gt;
Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Tested-by: Gabriel Craciunescu &lt;nix.or.die@gmail.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'wireless-drivers-next-for-davem-2016-12-01' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next</title>
<updated>2016-12-02T18:58:10+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2016-12-02T18:58:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=ab17cb1fea82b346bdecd4f2d7f0e84e80f847af'/>
<id>urn:sha1:ab17cb1fea82b346bdecd4f2d7f0e84e80f847af</id>
<content type='text'>
Kalle Valo says:

====================
wireless-drivers-next patches for 4.10

Major changes:

rsi

* filter rx frames
* configure tx power
* make it possible to select antenna
* support 802.11d

brcmfmac

* cleanup of scheduled scan code
* support for bcm43341 chipset with different chip id
* support rev6 of PCIe device interface

ath10k

* add spectral scan support for QCA6174 and QCA9377 families
* show used tx bitrate with 10.4 firmware

wil6210

* add power save mode support
* add abort scan functionality
* add support settings retry limit for short frames

bcma

* add Dell Inspiron 3148
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ath9k_htc: don't use HZ for usb msg timeouts</title>
<updated>2016-12-01T11:18:33+00:00</updated>
<author>
<name>Anthony Romano</name>
<email>anthony.romano@coreos.com</email>
</author>
<published>2016-11-28T04:27:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=982a6151f6f1296725de241a17932a3ecdd359d2'/>
<id>urn:sha1:982a6151f6f1296725de241a17932a3ecdd359d2</id>
<content type='text'>
The usb_*_msg() functions expect a timeout in msecs but are given HZ,
which is ticks per second. If HZ=100, firmware download often times out
when there is modest USB utilization and the device fails to initialize.

Replaces HZ in usb_*_msg timeouts with 1000 msec since HZ is one second
for timeouts in jiffies.

Signed-off-by: Anthony Romano &lt;anthony.romano@coreos.com&gt;
Acked-by: Oleksij Rempel &lt;linux@rempel-privat.de&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>ath9k: constify ath_bus_ops structure</title>
<updated>2016-12-01T11:17:45+00:00</updated>
<author>
<name>Bhumika Goyal</name>
<email>bhumirks@gmail.com</email>
</author>
<published>2016-11-27T17:03:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=8ca5a6078d6d09ac50d9c39c214df3284f0d2efb'/>
<id>urn:sha1:8ca5a6078d6d09ac50d9c39c214df3284f0d2efb</id>
<content type='text'>
Declare the structure ath_bus_ops as const as it is only passed as an
argument to the function ath9k_init_device. This argument is of type
const struct ath_bus_ops *, so ath_bus_ops structures with this property
can be declared as const.
Done using Coccinelle:
@r1 disable optional_qualifier @
identifier i;
position p;
@@
static struct ath_bus_ops i@p = {...};

@ok1@
identifier r1.i;
position p;
expression e1,e2;
@@
ath9k_init_device(e1,e2,&amp;i@p)

@bad@
position p!={r1.p,ok1.p};
identifier r1.i;
@@
i@p

@depends on !bad disable optional_qualifier@
identifier r1.i;
@@
static
+const
struct ath_bus_ops i={...};

@depends on !bad disable optional_qualifier@
identifier r1.i;
@@
+const
struct ath_bus_ops i;

File size before:
   text	   data	    bss	    dec	    hex	filename
   1295	    232	      0	   1527	    5f7	ath/ath9k/ahb.o

File size after:
   text	   data	    bss	    dec	    hex	filename
   1359	    176	      0	   1535	    5ff	ath/ath9k/ahb.o

Signed-off-by: Bhumika Goyal &lt;bhumirks@gmail.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>ath9k: feed only active spectral / dfs-detector</title>
<updated>2016-12-01T10:29:24+00:00</updated>
<author>
<name>Zefir Kurtisi</name>
<email>zefir.kurtisi@neratec.com</email>
</author>
<published>2016-11-25T15:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=87fedb974e0ceaf2a4200b7abb64054fa031cf85'/>
<id>urn:sha1:87fedb974e0ceaf2a4200b7abb64054fa031cf85</id>
<content type='text'>
Radar pulse and spectral scan reports are provided by the HW
with the ATH9K_RXERR_PHY flag set. Those are forwarded to
the dfs-detector and spectral module for further processing.

For some older chips, the pre-conditions checked in those
modules are ambiguous, since ATH9K_PHYERR_RADAR is used to
tag both types. As a result, spectral frames are fed into
the dfs-detector and vice versa.

This could lead to a false radar detection on a non-DFS
channel (which is uncritical), but more relevant it causes
useless CPU load for processing invalid frames.

This commit ensures that the dfs-detector and spectral
collector are only fed when they are active.

Signed-off-by: Zefir Kurtisi &lt;zefir.kurtisi@neratec.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'wireless-drivers-next-for-davem-2016-11-25' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next</title>
<updated>2016-11-28T01:26:59+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2016-11-28T01:26:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=33f8a0458b2ce4546b681c5fae04427e3077a543'/>
<id>urn:sha1:33f8a0458b2ce4546b681c5fae04427e3077a543</id>
<content type='text'>
Kalle Valo says:

====================
wireless-drivers-next patches for 4.10

Major changes:

iwlwifi

* finalize and enable dynamic queue allocation
* use dev_coredumpmsg() to prevent locking the driver
* small fix to pass the AID to the FW
* use FW PS decisions with multi-queue

ath9k

* add device tree bindings
* switch to use mac80211 intermediate software queues to reduce
  latency and fix bufferbloat

wl18xx

* allow scanning in AP mode
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ath9k: fix NULL pointer dereference</title>
<updated>2016-11-23T13:59:38+00:00</updated>
<author>
<name>Miaoqing Pan</name>
<email>miaoqing@codeaurora.org</email>
</author>
<published>2016-11-16T09:23:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=40bea976c72b9ee60f8d097852deb53ccbeaffbe'/>
<id>urn:sha1:40bea976c72b9ee60f8d097852deb53ccbeaffbe</id>
<content type='text'>
relay_open() may return NULL, check the return value to avoid the crash.

BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
IP: [&lt;ffffffffa01a95c5&gt;] ath_cmn_process_fft+0xd5/0x700 [ath9k_common]
PGD 41cf28067 PUD 41be92067 PMD 0
Oops: 0000 [#1] SMP
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.6+ #35
Hardware name: Hewlett-Packard h8-1080t/2A86, BIOS 6.15    07/04/2011
task: ffffffff81e0c4c0 task.stack: ffffffff81e00000
RIP: 0010:[&lt;ffffffffa01a95c5&gt;] [&lt;ffffffffa01a95c5&gt;] ath_cmn_process_fft+0xd5/0x700 [ath9k_common]
RSP: 0018:ffff88041f203ca0 EFLAGS: 00010293
RAX: 0000000000000000 RBX: 000000000000059f RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000040 RDI: ffffffff81f0ca98
RBP: ffff88041f203dc8 R08: ffffffffffffffff R09: 00000000000000ff
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffffffff81f0ca98 R14: 0000000000000000 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff88041f200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000040 CR3: 000000041b6ec000 CR4: 00000000000006f0
Stack:
0000000000000363 00000000000003f3 00000000000003f3 00000000000001f9
000000000000049a 0000000001252c04 ffff88041f203e44 ffff880417b4bfd0
0000000000000008 ffff88041785b9c0 0000000000000002 ffff88041613dc60

Call Trace:
&lt;IRQ&gt;
[&lt;ffffffffa01b6441&gt;] ath9k_tasklet+0x1b1/0x220 [ath9k]
[&lt;ffffffff8105d8dd&gt;] tasklet_action+0x4d/0xf0
[&lt;ffffffff8105dde2&gt;] __do_softirq+0x92/0x2a0

Reported-by: Devin Tuchsen &lt;devin.tuchsen@gmail.com&gt;
Tested-by: Devin Tuchsen &lt;devin.tuchsen@gmail.com&gt;
Signed-off-by: Miaoqing Pan &lt;miaoqing@codeaurora.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success</title>
<updated>2016-11-23T13:58:21+00:00</updated>
<author>
<name>Matthias Schiffer</name>
<email>mschiffer@universe-factory.net</email>
</author>
<published>2016-11-15T17:47:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=91851cc7a939039bd401adb6ca3da4402bec1d0c'/>
<id>urn:sha1:91851cc7a939039bd401adb6ca3da4402bec1d0c</id>
<content type='text'>
Commit b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and
SOC") refactored ath9k_hw_gpio_get() to support both WMAC and SOC GPIOs,
changing the return on success from 1 to BIT(gpio). This broke some callers
like ath_is_rfkill_set(). This doesn't fix any known bug in mainline at the
moment, but should be fixed anyway.

Instead of fixing all callers, change ath9k_hw_gpio_get() back to only
return 0 or 1.

Fixes: b2d70d4944c1 ("ath9k: make GPIO API to support both of WMAC and SOC")
Cc: &lt;stable@vger.kernel.org&gt; # v4.7+
Signed-off-by: Matthias Schiffer &lt;mschiffer@universe-factory.net&gt;
[kvalo@qca.qualcomm.com: mention that doesn't fix any known bug]
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>ath9k: Switch to using mac80211 intermediate software queues.</title>
<updated>2016-11-15T15:00:04+00:00</updated>
<author>
<name>Toke Høiland-Jørgensen</name>
<email>toke@toke.dk</email>
</author>
<published>2016-11-09T11:31:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=50f08edf98096a68f01ff4566b605a25bf8e42ce'/>
<id>urn:sha1:50f08edf98096a68f01ff4566b605a25bf8e42ce</id>
<content type='text'>
This switches ath9k over to using the mac80211 intermediate software
queueing mechanism for data packets. It removes the queueing inside the
driver, except for the retry queue, and instead pulls from mac80211 when
a packet is needed. The retry queue is used to store a packet that was
pulled but can't be sent immediately.

The old code path in ath_tx_start that would queue packets has been
removed completely, as has the qlen limit tunables (since there's no
longer a queue in the driver to limit).

The mac80211 intermediate software queues offer significant latency
reductions, and this patch allows ath9k to realise them. The exact gains
from this varies with the test scenario, but in an access point scenario
we have seen latency reductions ranging from 1/3 to as much as an order
of magnitude. We also achieve slightly better aggregation.

Median latency (ping) figures with this patch applied at the access point,
with two high-rate stations and one low-rate station (HT20 5Ghz), running
a Flent rtt_fair_var_up test with one TCP flow and one ping flow going to
each station:

                                 Fast station        Slow station
Default pfifo_fast qdisc:            430.4 ms            638.7 ms
fq_codel qdisc on iface:              35.5 ms            211.8 ms
This patch set:                       22.4 ms             38.2 ms

Median aggregation sizes over the same test:

Default pfifo_fast qdisc:            9.5 pkts            1.9 pkts
fq_codel qdisc on iface:            11.2 pkts            1.9 pkts
This patch set:                     13.9 pkts            1.9 pkts

This patch is based on Tim's original patch set, but reworked quite
thoroughly.

Cc: Tim Shepard &lt;shep@alum.mit.edu&gt;
Cc: Felix Fietkau &lt;nbd@nbd.name&gt;
Signed-off-by: Toke Høiland-Jørgensen &lt;toke@toke.dk&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>ath9k_htc: fix minor mistakes in dev_err messages</title>
<updated>2016-11-15T14:57:47+00:00</updated>
<author>
<name>Colin Ian King</name>
<email>colin.king@canonical.com</email>
</author>
<published>2016-10-31T15:12:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/linux.git/commit/?id=14acebc33e6dc69b31828c64ae069869d9e19f58'/>
<id>urn:sha1:14acebc33e6dc69b31828c64ae069869d9e19f58</id>
<content type='text'>
Add missing space in a dev_err message and join wrapped text so
it does not span multiple lines.  Fix spelling mistake on "unknown".

Signed-off-by: Colin Ian King &lt;colin.king@canonical.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
</feed>
