From: Ben Greear
NOTE: These channels must not be used in most regulatory
domains unless you have a license from the FCC or similar!
A proper regulatory database is also required to actually use
these channels.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath9k/ath9k.h | 2 +
From: Ben Greear
When channel-context is not enabled, all vifs belong to
the first context, but it is not configured as 'assigned'.
Fix misc debugfs file to print out info for non-assigned
contexts, and also print whether ctx is assigned or not.
Signed-off-by: Ben Greear
---
This is not overl
From: Ben Greear
The commit that went into 3.17:
ath9k: Summarize hw state per channel context
Group and set hw state (opmode, primary_sta, beacon conf) per
channel context instead of whole list of vifs. This would allow
each channel context to run in different mode (STA/AP).
From: Ben Greear
A similar patch fixed crashes seen on an ath9k system
when testing against a broken ath10k AP. This patch
is slightly less protective, but probably will do the
job and is less redundant.
Signed-off-by: Ben Greear
---
Compile tested only.
drivers/net/wireless/ath/ath9k/beaco
From: Ben Greear
Make sure we cannot ever assign beacon interval to zero.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath9k/beacon.c | 4
drivers/net/wireless/ath/ath9k/recv.c | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath9
From: Ben Greear
I saw this splat below on a 3.9.11+ kernel system configured to receive
a UDP flood using wpa2 encryption and software-crypt. This patch attempts
to fix this by returning after processing a max of 1000 packets.
BUG: soft lockup - CPU#0 stuck for 22s! [btserver:32646]
Modules li
_mask: 1.
ath10k: Failed to get pcie state addr: -5
ath10k: early firmware event indicated
[ cut here ]
WARNING: at
/home/greearb/git/linux.wireless-testing/drivers/net/wireless/ath/ath10k/ce.c:771
ath10k_ce_per_engine_service+0x53/0x1b4 [ath10k_pci]()
(it hits the wa
From: Ben Greear
Signed-off-by: Ben Greear
---
This is against wireless-next, and has been in my 3.9 tree for
some time.
drivers/net/wireless/ath/ath9k/htc.h |2 +
drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 16 +-
drivers/net/wireless/ath/ath9k/htc_drv_init.c |
From: Ben Greear
This provides some of the same info found in
the ath9k_htc debugfs through the standard ethtool stats API.
This logic is only supported when ath9k_htc debugfs kernel
feature is enabled, since that is the only time stats
are actually gathered.
Signed-off-by: Ben Greear
---
Thi
From: Ben Greear
This provides some of the same info found in
the ath9k_htc debugfs through the standard ethtool stats API.
This logic is only supported when ath9k_htc debugfs kernel
feature is enabled, since that is the only time stats
are actually gathered.
Signed-off-by: Ben Greear
---
v2:
From: Ben Greear
With CONFIG_ATH9K_DEBUGFS enabled, and slub memory poisoning
enabled, I see this crash on rmmod of ath9k. I'm not sure how
to fix this properly, but in the meantime, this patch to disable
the spectral scan code works around the problem for me.
With memory poisoning and the veri
From: Ben Greear
This provides some of the same info found in
the ath9k_htc debugfs through the standard ethtool stats API.
This logic is only supported when ath9k_htc debugfs kernel
feature is enabled, since that is the only time stats
are actually gathered.
Signed-off-by: Ben Greear
---
dri
From: Ben Greear
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath9k/htc.h |2 +
drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 16 +-
drivers/net/wireless/ath/ath9k/htc_drv_init.c |7
drivers/net/wireless/ath/ath9k/htc_drv_main.c | 38 +++
From: Ben Greear
Should make the warning messages more useful.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/key.c |9 ++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/key.c b/drivers/net/wireless/ath/key.c
index 5c54aa4..1816b4e 10
From: Ben Greear
Otherwise, can't get the Sparklan AR9380 NICs to be
5Ghz APs, since they are in world-roaming domain by
default. Add this to /etc/modprobe.d/ath9k.conf:
options ath9k override_eeprom_regdomain=0
Signed-off-by: Ben Greear
---
:100644 100644 af932c9... dee91a2... M drivers/net
From: Ben Greear
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath9k/debug.c |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/debug.c
b/drivers/net/wireless/ath/ath9k/debug.c
index daae4d0..67a2a4b 100644
--- a/drivers/net/wirele
From: Ben Greear
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath9k/debug.c |3 +++
drivers/net/wireless/ath/ath9k/debug.h |2 ++
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/debug.c
b/drivers/net/wireless/ath/ath9k/debug.c
ind
From: Ben Greear
We see TX lockups on ar9380 NICs when running 32 stations
each with a 56kbps stream of MTU sized UDP packets.
We see lockups on the AP and also on the station, seems
random which hits first.
The test case further involves a programmable attenuator,
and the attenuation is taken f
From: Ben Greear
This returns many of the values that formerly could
only be obtained from debugfs. This should be an
improvement when trying to access these counters
programatically. Currently this support is only
enabled when DEBUGFS is enabled because otherwise
these stats are not accumulate
From: Ben Greear
This returns many of the values that formerly could
only be obtained from debugfs. This should be an
improvement when trying to access these counters
programatically. Currently this support is only
enabled when DEBUGFS is enabled because otherwise
these stats are not accumulate
From: Ben Greear
Report all defined sync_cause errors in debugfs
to aid with debugging.
Signed-off-by: Ben Greear
---
v2: Lots of changes. Report all sync-cause errors instead of just one.
Use method to gather them instead of individual macros.
Increase width of the interrupts debu
From: Ben Greear
Seems like a useful stat to report (when debugfs
is enabled).
Signed-off-by: Ben Greear
---
:100644 100644 7b6417b... ec4fc16... M
drivers/net/wireless/ath/ath9k/ar9002_mac.c
:100644 100644 09b8c9d... 4948f54... M
drivers/net/wireless/ath/ath9k/ar9003_mac.c
:100644 100644 4
From: Ben Greear
This adds counters in various places that can drop packets on
rx without otherwise incrementing a counter. It also counts
some non-error cases, such as becons and fragments received.
Should help with figuring out where packets are (and are not)
dropped.
Signed-off-by: Ben Gree
From: Ben Greear
This counts any failure during getting packets into
the DMA buffers, including out-of-memory, etc.
Signed-off-by: Ben Greear
---
:100644 100644 35d1c8e... 9078279... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 64fcfad... d1c132f... M drivers/net/wireless/ath/ath9k
From: Ben Greear
On systems with multiple NICs, it's nice to know which
one is producing warnings. Here is an example of the
new ouput:
ath: wiphy0: Failed to stop TX DMA, queues=0x005!
Signed-off-by: Ben Greear
---
v2: Remove _ath_printk macro, minor formatting changes.
:100644 100644 efc
From: Ben Greear
On systems with multiple NICs, it's nice to know which
one is producing warnings. Here is an example of the
new ouput:
ath: wiphy0: Failed to stop TX DMA, queues=0x005!
Signed-off-by: Ben Greear
---
:100644 100644 efc0111... 54f255d... M drivers/net/wireless/ath/ath.h
:10064
From: Ben Greear
Add interface address so it can be mapped to a local
interface. Add max-ampdu and mpdu-density.
Print out the tid->baw_size
Signed-off-by: Ben Greear
---
:100644 100644 1c269f5... 3d3b44f... M drivers/net/wireless/ath/ath9k/ath9k.h
:100644 100644 327aa28... 8e7e57c... M dri
From: Ben Greear
Try all xmit queues until the hardware buffers are full.
Signed-off-by: Ben Greear
---
:100644 100644 2ad732d... 5f05a3a... M drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c | 64 +++--
1 files changed, 37 insertions(+
From: Ben Greear
Add a misc file to show hardware op-mode, irq setup,
number of various types of VIFs and more.
Also, previous patches were using the wrong xmit queue
indexes. Change to use the internal ath9k indexes instead
of the mac80211 queue indexes.
Signed-off-by: Ben Greear
---
v4: U
From: Ben Greear
Add a misc file to show hardware op-mode, irq setup,
number of various types of VIFs and more.
Also, previous patches were using the wrong xmit queue
indexes. Change to use the internal ath9k indexes instead
of the mac80211 queue indexes.
Signed-off-by: Ben Greear
---
v3: U
From: Ben Greear
When using a mixture of AP and Station interfaces,
the hardware mode was using the type of the
last VIF registered. Instead, we should keep track
of the number of different types of vifs and set the
mode accordingly.
In addtion, use the vif type instead of hardware opmode
when
From: Ben Greear
When using a mixture of AP and Station interfaces,
the hardware mode was using the type of the
last VIF registered. Instead, we should keep track
of the number of different types of vifs and set the
mode accordingly.
In addtion, use the vif type instead of hardware opmode
when
From: Ben Greear
Add a misc file to show hardware op-mode, irq setup,
number of various types of VIFs and more.
Also, previous patches were using the wrong xmit queue
indexes. Change to use the internal ath9k indexes instead
of the mac80211 queue indexes.
Signed-off-by: Ben Greear
---
:100644
From: Ben Greear
When using a mixture of AP and Station interfaces,
the hardware mode was using the type of the
last VIF registered. Instead, we should keep track
of the number of different types of vifs and set the
mode accordingly.
In addtion, use the vif type instead of hardware opmode
when
From: Ben Greear
Show counters for pkts sent directly to hardware and
those queued in software.
Signed-off-by: Ben Greear
---
:100644 100644 577bc5a... faf84e4... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 cd2db3f... 980c9fa... M drivers/net/wireless/ath/ath9k/debug.h
:100644 100
From: Ben Greear
To try to figure out why xmit logic hangs.
Signed-off-by: Ben Greear
---
:100644 100644 650f00f... 9e009cc... M drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/debug.c | 26 ++
1 files changed, 26 insertions(+), 0 deletions(-)
From: Ben Greear
There can be multiple struct ath_atx_ac entries for each
txq, so if the first one doesn't have any packets to send
now, try the rest of them. This should help keep xmit
going when using multiple stations, especially with AMPDU
enabled.
Signed-off-by: Ben Greear
---
:100644 100
From: Ben Greear
This saves us constantly allocating large, multi-page
skbs. It should fix the order-1 allocation errors reported,
and in a 60-vif scenario, this significantly decreases CPU
utilization, and latency, and increases bandwidth.
Signed-off-by: Ben Greear
---
:100644 100644 b2497b8.
From: Ben Greear
Should help debug strange tx lockup type issues.
Signed-off-by: Ben Greear
---
:100644 100644 5075faa... 577bc5a... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 1e5078b... cd2db3f... M drivers/net/wireless/ath/ath9k/debug.h
:100644 100644 180170d... 99ce6f1... M d
From: Ben Greear
The system can get into a state where the xmit queue
is stopped, but there are no packets pending, so
the queue will not be restarted.
Add logic to the xmit watchdog to attempt to restart
the xmit logic if this situation is detected.
Example 'dmesg' output:
ath: txq: f4e723e0
From: Ben Greear
The stations hold the ath_node, which holds the tid
and other xmit logic structures. In order to debug
stuck xmit logic, we need a way to print out the tid
state for the stations.
Signed-off-by: Ben Greear
---
:100644 100644 deda815... 3f5c513... M drivers/net/wireless/ath/at
From: Ben Greear
If the txq->axq_q is empty, the code was breaking out
of the tx_processq logic without checking to see if it should
transmit other queued AMPDU frames (txq->axq_acq).
This patches ensures ath_txq_schedule is called.
This needs review.
Signed-off-by: Ben Greear
---
:100644 100
From: Ben Greear
Signed-off-by: Ben Greear
---
:100644 100644 3681caf5.. deda815... M drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/ath9k.h |1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h
b/drivers/net/wir
From: Ben Greear
Previous code left it NULL.
Signed-off-by: Ben Greear
---
:100644 100644 767d8b8... 23b2998... M drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k
From: Ben Greear
I thought this might help track down stuck queues, etc.
Signed-off-by: Ben Greear
---
:100644 100644 3586c43... 5075faa... M drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/debug.c | 16
1 files changed, 16 insertions(+), 0 deletions(-
Here is my current ath9k patch queue. These have all been
posted before, but this should make it easier to apply them.
The final 'copy-break' patch still needs some work to
function properly on non PCI busses it seems, and maybe
disable copybreak on larger packets.
__
From: Ben Greear
The system can get into a state where the xmit queue
is stopped, but there are no packets pending, so
the queue will not be restarted.
Add logic to the xmit watchdog to attempt to restart
the xmit logic if this situation is detected.
Example 'dmesg' output:
ath: txq: f4e723e0
From: Ben Greear
The system can get into a state where the xmit queue
is stopped, but there are no packets pending, so
the queue will not be restarted.
Add logic to the xmit watchdog to attempt to restart
the xmit logic if this situation is detected.
Signed-off-by: Ben Greear
---
NOTE: This
From: Ben Greear
This saves us constantly allocating large, multi-page
skbs. It should fix the order-1 allocation errors reported,
and in a 60-vif scenario, this significantly decreases CPU
utilization, and latency, and increases bandwidth.
Signed-off-by: Ben Greear
---
:100644 100644 b2497b8.
From: Ben Greear
There can be multiple struct ath_atx_ac entries for each
txq, so if the first one doesn't have any packets to send
now, try the rest of them. This should help keep xmit
going when using multiple stations, especially with AMPDU
enabled.
Signed-off-by: Ben Greear
---
:100644 100
From: Ben Greear
It is not guaranteed that the ath_tx_complete_poll_work runs
after some fixed duration because the channel-reset logic
removes the work and then re-adds it to run immediately.
Two channel-changes 1ms apart, with a transmit was being
attempted, could thus incorrectly trigger a res
From: Ben Greear
To try to figure out why xmit logic hangs.
Signed-off-by: Ben Greear
---
:100644 100644 650f00f... 9e009cc... M drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/debug.c | 26 ++
1 files changed, 26 insertions(+), 0 deletions(-)
From: Ben Greear
The stations hold the ath_node, which holds the tid
and other xmit logic structures. In order to debug
stuck xmit logic, we need a way to print out the tid
state for the stations.
Signed-off-by: Ben Greear
---
v1 -> v2: Use linked list instead of array. Protect with spinloc
From: Ben Greear
We should not get to this state, but we do. What is
worse, many times the xmit logic still will not start,
probably due to tids being paused when they shouldn't be.
Signed-off-by: Ben Greear
---
NOTE: This needs review. It might be too much of a hack
for upstream code, and
From: Ben Greear
The stations hold the ath_node, which holds the tid
and other xmit logic structures. In order to debug
stuck xmit logic, we need a way to print out the tid
state for the stations.
Signed-off-by: Ben Greear
---
:100644 100644 deda815... a34141a... M drivers/net/wireless/ath/at
From: Ben Greear
Patch is from Eric Dumazet, as described here:
https://patchwork.kernel.org/patch/104271/
Reported-by: Michael Guntsche
Signed-off-by: Eric Dumazet
Signed-off-by: Ben Greear
---
NOTE: This needs review by ath9k and/or other informed
people.
:100644 100644 b2497b8... 270661
From: Ben Greear
If the txq->axq_q is empty, the code was breaking out
of the tx_processq logic without checking to see if it should
transmit other queued AMPDU frames (txq->axq_acq).
This patches ensures ath_txq_schedule is called.
This needs review.
Signed-off-by: Ben Greear
---
:100644 100
From: Ben Greear
Should help debug strange tx lockup type issues.
Signed-off-by: Ben Greear
---
:100644 100644 5075faa... 577bc5a... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 1e5078b... cd2db3f... M drivers/net/wireless/ath/ath9k/debug.h
:100644 100644 e3d2ebf... 1fcc1a5... M d
From: Ben Greear
Show counters for pkts sent directly to hardware and
those queued in software.
Signed-off-by: Ben Greear
---
:100644 100644 577bc5a... faf84e4... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 cd2db3f... 980c9fa... M drivers/net/wireless/ath/ath9k/debug.h
:100644 100
From: Ben Greear
Signed-off-by: Ben Greear
---
:100644 100644 2c31f51... 8855539... M drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/ath9k.h |1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h
b/drivers/net/wir
From: Ben Greear
Previous code left it NULL.
Signed-off-by: Ben Greear
---
:100644 100644 b0e5e716.. 9ca87de... M drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k
From: Ben Greear
I thought this might help track down stuck queues, etc.
Signed-off-by: Ben Greear
---
:100644 100644 3586c43... 5075faa... M drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/debug.c | 16
1 files changed, 16 insertions(+), 0 deletions(-
From: Ben Greear
It can be NULL according to docs, and logging showed it
to be NULL in practice.
Signed-off-by: Ben Greear
---
:100644 100644 8b0b076... 5ddca08... M drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c |5 -
1 files changed, 4 insertions(+), 1 d
From: Ben Greear
This decreases spammage in the log. A single line message
will still be printed, so users can be aware that problem
exists.
Signed-off-by: Ben Greear
---
:100644 100644 b4417d2... 082b16d... M drivers/net/wireless/ath/ath9k/recv.c
:100644 100644 f207007... 10cf682... M drive
From: Ben Greear
This fixes debugfs problems when a phy is renamed,
and is able to remove a bit of code that is no longer
needed.
Signed-off-by: Ben Greear
---
:100644 100644 0c3c74c... 3586c43... M drivers/net/wireless/ath/ath9k/debug.c
:100644 100644 646ff7e... 1e5078b... M drivers/net/wire
From: Ben Greear
Otherwise, lockdep splats, at the least:
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
Pid: 2240, comm: ip Not tainted 2.6.36-rc8-wl+ #32
Call Trace:
[] ? printk+0xf/0x17
[] register_lock_
From: Ben Greear
Otherwise, lockdep splats, at the least.
Signed-off-by: Ben Greear
---
:100644 100644 a4c5ed4... fdc25f9... M drivers/net/wireless/ath/ath9k/init.c
drivers/net/wireless/ath/ath9k/init.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wirel
From: Ben Greear
Previous patches cleared the pointer to the SKB, but did not
clear the DMA addresses. This patch moves the clear logic into
a method and makes sure that the DMA addresses are cleared as well.
This does not obviously fix any bug, but may make it harder to
cause bugs in the futur
From: Ben Greear
This doesn't fix any problem that I'm aware of, but should
make it harder to add use-after-free type bugs in the
future.
Signed-off-by: Ben Greear
---
:100644 100644 df6a9fa... 97d471f... M drivers/net/wireless/ath/ath9k/beacon.c
:100644 100644 cd748ab... fd778d2... M drivers
From: Ben Greear
The bf_dmacontext seems to be totally useless and duplicated
by bf_buf_addr. Remove it entirely, use bf_buf_addr in its
place.
Signed-off-by: Ben Greear
---
:100644 100644 4e81fe3... 0c917e5... M drivers/net/wireless/ath/ath9k/ath9k.h
:100644 100644 8e43443... df6a9fa... M d
From: Ben Greear
The bf_dmacontext seems to be totally useless and duplicated
by bf_buf_addr. Remove it entirely, use bf_buf_addr in its
place.
Also null out bf_buf_addr and bf_mpdu pointers when resources
they are pointing to are no longer owned by the buffer object.
Signed-off-by: Ben Greear
From: Ben Greear
The ath_debug_stat_tx references bf->bf_mpdu, which
is the skb consumed by ath_tx_complete. So, call
the ath_debug_stat_tx method first.
Signed-off-by: Ben Greear
---
:100644 100644 942be55... 6d41d47... M drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k
72 matches
Mail list logo