From: Ben Greear
This fixes stale beacon-int values that would keep a netdev
from going up.
To reproduce:
Create two VAP on one radio.
vap1 has beacon-int 100, start it.
vap2 has beacon-int 240, start it (and it will fail
because beacon-int mismatch).
reconfigure vap2 to have beacon-int 100
From: Ben Greear
This makes the mlme code probe multiple times spread out across
the time-out period instead of lots of probes all at once.
It also makes the ap-probe and the nullfunc probe logic
act similarly, which allows us to remove some code.
Signed-off-by: Ben Greear
---
From: Ben Greear
Recent ath10k-ct 10.1 firmware supports survey results, and
advertises the appropriate service flags. This confuses
the ath10k driver because the 10.1 wmi commands are not set up
for survey information. So, this patch adds support for
handling survey
From: Ben Greear
The warning the the logs does not give user a clue as to what
command is failing, so it is worth it to check for un-supported
command before trying the call.
And add return-code to survey error message.
Signed-off-by: Ben Greear
From: Ben Greear
The warning the the logs does not give user a clue as to what
command is failing, so it is worth it to check for un-supported
command before trying the call.
And add return-code to survey error message.
Signed-off-by: Ben Greear
From: Ben Greear
These feature flags are used by ath10k-ct firmware. Add these
so we can use them in future patches and so there are no warings
about feature flags on loading ath10k-ct firmware.
Signed-off-by: Ben Greear
---
From: Ben Greear
Recent ath10k-ct 10.1 firmware supports survey results, and
advertises the appropriate service flags. This confuses
the ath10k driver because the 10.1 wmi commands are not set up
for survey information. So, this patch adds support for
handling survey
From: Ben Greear
Skip a firmware stats update when calling
code indicates the stats refresh is not needed.
Signed-off-by: Ben Greear
---
v2: Convert to new flag name, attempt to fix build
when there is not DEBUGFS enabled for ath10k.
From: Ben Greear
This enables users to request fewer stats to be refreshed
in cases where firmware does not need to be probed.
Signed-off-by: Ben Greear
---
v2: No changes.
include/net/mac80211.h| 6 ++
net/mac80211/driver-ops.h |
From: Ben Greear
Skip a firmware stats update when calling
code indicates the stats refresh is not needed.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/debug.c | 18 +++---
drivers/net/wireless/ath/ath10k/debug.h |
From: Ben Greear
This is similar to ETHTOOL_GSTATS, but it allows you to specify
flags. These flags can be used by the driver to decrease the
amount of stats refreshed. In particular, this helps with ath10k
since getting the firmware stats can be slow.
Signed-off-by:
From: Ben Greear
This enables users to request fewer stats to be refreshed
in cases where firmware does not need to be probed.
Signed-off-by: Ben Greear
---
include/net/mac80211.h| 6 ++
net/mac80211/driver-ops.h | 9 +++--
From: Ben Greear
This is similar to ETHTOOL_GSTATS, but it allows you to specify
a 'level'. This level can be used by the driver to decrease the
amount of stats refreshed. In particular, this helps with ath10k
since getting the firmware stats can be slow.
From: Ben Greear
Otherwise, rx rate encodings are wrong as SGI flag may be set
when it should not be. Maybe other issues as well.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/htt_rx.c | 1 +
1 file changed, 1 insertion(+)
From: Ben Greear
Calling napi_disable twice in a row (w/out starting it and/or without
having NAPI active leads to deadlock because napi_disable sets
NAPI_STATE_SCHED and NAPI_STATE_NPSVC when it returns, as far as I
can tell. So, guard this call to napi_disable. I
From: Ben Greear
Calling napi_disable twice in a row (w/out starting it and/or without
having NAPI active leads to deadlock because napi_disable sets
NAPI_STATE_SCHED and NAPI_STATE_NPSVC when it returns, as far as I
can tell. So, guard this call to napi_disable. I
From: Ben Greear
In case where the system is sluggish, we should probably break out
early. Maybe this will fix issues where the OS thinks the IRQ handler
is not responding and disables the IRQ because 'nobody cared'
Signed-off-by: Ben Greear
From: Ben Greear
This provides per-chain rssi for management frames received
over wmi.
Signed-off-by: Ben Greear
---
v2: Fix 'rssh' typo in commit message.
drivers/net/wireless/ath/ath10k/wmi.c | 21 -
From: Ben Greear
This provides per-chain rssh for management frames received
over wmi.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/wmi.c | 21 -
drivers/net/wireless/ath/ath10k/wmi.h | 1 +
2 files
From: Ben Greear
Might help one figure out why aqm drivers may fail to transmit
frames sometimes.
Signed-off-by: Ben Greear
---
v2: Fix checking wrong flag for NO-AMSDU
net/mac80211/debugfs_sta.c | 10 +++---
1 file changed, 7
From: Ben Greear
Might help one figure out why aqm drivers may fail to transmit
frames sometimes.
Signed-off-by: Ben Greear
---
net/mac80211/debugfs_sta.c | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git
From: Ben Greear
The PAUSED field was never printed per tid. Replace that
with has_queued, which might help someone track down strange
bugs related to aqm.
And, make tx-queue debug info show peer BSSID as well as vdev
MAC to aid debugging with multiple stations
From: Ben Greear
The India regulatory domain allows CH 173, so add that to the
available channel list. I verified basic connectivity between
a 9880 and 9984 NIC.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.h | 3 ++-
From: Ben Greear
The 10.4 'mem' reporting struct had the wrong order vs the 10.2,
so just make a new _10_4 specific struct. Save these reported
values and make them available via debugfs.
Stock 10.4 firmware probably reports zero values
for this currently, but they
From: Ben Greear
The rx pdev related stats do not match the 10.4 firmware stats
struct. The pdev-rx-timeout field needs to be added.
Stock firmware may not actually ever increment that value,
but this should at least help the other stats be aligned properly.
From: Ben Greear
The 10.4 firmware defines this as a 3-bit field, as does the
mac80211 stack. The 4th bit is defined as CONF_IMPLICIT_BF
at least in the firmware header I have seen. This patch
fixes the ath10k wmi header to match the firmware.
Signed-off-by: Ben
From: Ben Greear
This bug appears to have been added between 4.0 (which works for us),
and 4.4, which does not work.
I think this is because the tx-offchannel logic gets in a loop when
ath10k_mac_tx_frm_has_freq(ar) is false, so pkt is never actually
sent to the
From: Ben Greear
This works around a problem we see when sometimes the wifi NIC does
not respond the first time. This seems to happen especially often on
some of the 9984 NICs in mid-range platforms.
Signed-off-by: Ben Greear
---
v2: Change
From: Ben Greear
This way, we can apply the values when the NIC does come up.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/hw.c | 9 +++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git
From: Ben Greear
This works around a problem we see when sometimes the wifi NIC does
not respond the first time. This seems to happen especially often on
some of the 9984 NICs in mid-range platforms.
Signed-off-by: Ben Greear
---
From: Ben Greear
Modify the receive-from-user-space logic to do length
and 'is-down' checks before trying to allocate an skb.
And, if we are going to ignore the pkt due to radio idle,
then do not return an error code to user-space. User-space
cannot reliably know
From: Ben Greear
This makes it easier to understand why wmediumd (or similar)
is getting errors when sending frames to the kernel.
Signed-off-by: Ben Greear
---
drivers/net/wireless/mac80211_hwsim.c | 55 +++
1
From: Ben Greear
The goal is to allow the user-space application to properly
filter packets before sending them down to the kernel. This
should more closely mimic what a real piece of hardware would
do.
Signed-off-by: Ben Greear
---
v3:
From: Ben Greear
This message just fills up dmesg and/or kernel logs and does
not provide any useful information.
Signed-off-by: Ben Greear
---
drivers/net/wireless/mac80211_hwsim.c | 2 --
1 file changed, 2 deletions(-)
diff --git
From: Ben Greear
This message just fills up dmesg and/or kernel logs and does
not provide any useful information.
Signed-off-by: Ben Greear
---
drivers/net/wireless/mac80211_hwsim.c | 2 --
1 file changed, 2 deletions(-)
diff --git
From: Ben Greear
The goal is to allow the user-space application to properly
filter packets before sending them down to the kernel. This
should more closely mimic what a real piece of hardware would
do.
Signed-off-by: Ben Greear
---
v2:
From: Ben Greear
Modify the receive-from-user-space logic to do length
and 'is-down' checks before trying to allocate an skb.
And, if we are going to ignore the pkt due to radio idle,
then do not return an error code to user-space. User-space
cannot reliably know
From: Ben Greear
This makes it easier to understand why wmediumd (or similar)
is getting errors when sending frames to the kernel.
Signed-off-by: Ben Greear
---
v2: Add and use hwsim_ratelimit() instead of net_ratelimit.
Squash two
From: Ben Greear
This message just fills up dmesg and/or kernel logs and does
not provide any useful information.
Signed-off-by: Ben Greear
---
drivers/net/wireless/mac80211_hwsim.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff
From: Ben Greear
Modify the receive-from-user-space logic to do length
and 'is-down' checks before trying to allocate an skb.
And, if we are going to ignore the pkt due to radio idle,
then do not return an error code to user-space. User-space
cannot reliably know
From: Ben Greear
The flags field allows user-space to properly decode what the
rate->idx really means. The tx-power field is useful as well,
in case user-space is interested in doing something clever with
path-loss calculations.
Signed-off-by: Ben Greear
From: Ben Greear
Signed-off-by: Ben Greear
---
drivers/net/wireless/mac80211_hwsim.c | 13 -
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/mac80211_hwsim.c
From: Ben Greear
The goal is to allow the user-space application to properly
filter packets before sending them down to the kernel. This
should more closely mimic what a real piece of hardware would
do.
Signed-off-by: Ben Greear
---
From: Ben Greear
This allows proper rx-status reporting for packets received
from the netlink api.
Signed-off-by: Ben Greear
---
drivers/net/wireless/mac80211_hwsim.c | 10 ++
drivers/net/wireless/mac80211_hwsim.h | 18
From: Ben Greear
This makes it easier to understand why wmediumd (or similar)
is getting errors when sending frames to the kernel.
Signed-off-by: Ben Greear
---
drivers/net/wireless/mac80211_hwsim.c | 42 ++-
1
From: Ben Greear
This allows one to disable VHT160 (or 80+80) on hardware
that might otherwise try to use it.
Signed-off-by: Ben Greear
---
v2: Change description
include/linux/ieee80211.h | 1 +
net/mac80211/main.c | 1 +
From: Ben Greear
This allows one to disable VHT160 (or 80+80) on hardware
that might otherwise try to use it. One potential reason
to do this is that at least some 160Mhz/80+80 hardware can
only do 2x2 at 160Mhz, but can do 4x4 at 80Mhz. And, due to
driver and firmware
From: Ben Greear
QCA9984 hardware can do 4x4 at 80Mhz, but only 2x2 at 160Mhz.
First, report this to user-space by setting the max-tx-speed
and max-rx-speed vht capabilities.
Second, if the peer rx-speed is configured, and if we
are in 160 or 80+80 mode, and the peer
From: Ben Greear
ath10k firmware checks nbytes == 0 as part of determining if DMA
has completed successfully. To help make this work more often,
have the driver initialize nbytes to zero when freeing the descriptor
slot.
Signed-off-by: Ben Greear
From: Ben Greear
ieee80211_xmit_fast assigns info from the passed-in
skb, but then later it also checks for skb_shared(skb),
and may create a new skb based on that check.
But, the code did not re-assign 'info', so it pointed into
the old shared skb. This leads to all
From: Ben Greear
This fixes obtaining the rate info via sta_set_sinfo
when the rx rate is invalid (for instance, on IBSS
interface that has received no frames from one of its
peers).
This also fixes a more general issue with rinfo->flags
not being properly initialized
From: Ben Greear
This fixes obtaining the rate info via sta_set_sinfo
when the rx rate is invalid (for instance, on IBSS
interface that has received no frames from one of its
peers).
Signed-off-by: Ben Greear
---
net/mac80211/sta_info.c | 8
From: Ben Greear
For non-station devices. This gives at least some useful
summary in some cases (especially when we know AP has only one
station attached, for instance).
Signed-off-by: Ben Greear
---
v2: Remove commented out pr_err code,
From: Ben Greear
Could be useful for debugging memory consumption issues,
and perhaps power-save as well.
Signed-off-by: Ben Greear
---
v2: Use more appropriate length, add comment to explain
magic numbers.
net/mac80211/debugfs.c | 27
From: Ben Greear
Hopefully this fixes the problem reported by Kalle:
Noticed this in my log, but I don't have time to investigate this in
detail right now:
[ 413.795346] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 414.158755] IPv6: ADDRCONF(NETDEV_CHANGE):
From: Ben Greear
Due to reasons I do not fully understand, when ath10k firmware
crashes when trying to bring up lots of vdevs, the ar->txqs
may still have references to the txq struct when mac80211 re-adds
the network devices.
The device add logic was re-initializing
on-nowait: arvif: 8801ce97e320 ar: (null)
arvif->magic: 0x87560001
[ cut here ]
kernel BUG at
/home/greearb/git/linux-4.7.dev.y/drivers/net/wireless/ath/ath10k/wmi.c:1781!
invalid opcode: [#1] PREEMPT SMP KASAN
Modules linked in: nf_conntrack_netlink
From: Ben Greear
For non-station devices. This gives at least some useful
summary in some cases (especially when we know AP has only one
station attached, for instance).
Signed-off-by: Ben Greear
---
This is against 4.7.10+, applied to 4.4
From: Ben Greear
Could be useful for debugging memory consumption issues,
and perhaps power-save as well.
Signed-off-by: Ben Greear
---
This is against 4.7.10+
net/mac80211/debugfs.c | 26 ++
1 file changed, 26
From: Ben Greear
This fixes OOM when using pktgen to drive a wifi station at more than
the station can transmit. pktgen uses ndo_start_xmit instead of going
through the queue layer, so it will not back off when the queues are
stopped, and would thus cause packets to be
From: Ben Greear
I was seeing kernel crashes due to accessing freed memory
while debugging a 9984 firmware that was crashing often.
This patch fixes the crashes. I am not certain if there
is a better way or not.
Signed-off-by: Ben Greear
---
From: Ben Greear
Helps to know the sta pointer.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c
From: Ben Greear
I was seeing some spin-lock hangs in this area of the code,
and it seems more proper to do the rcu-read-lock outside of
the spin lock. I am not sure how much this matters, however.
Signed-off-by: Ben Greear
---
From: Ben Greear <gree...@candelatech.com>
When driving ath10k with a modified pktgen, we see excessive amounts
of these warnings:
Jun 6 13:47:53 localhost kernel: WARNING: CPU: 1 PID: 1186 at
/home/greearb/git/linux-4.4.dev.y/net/mac80211/tx.c:3
125 ieee80211_tx_pending+0x9d/0x19e [ma
From: Ben Greear
This makes it a lot easier to understand the capabilities used
by the station:
VHT supported
cap: 0x300819b2
MAX-MPDU-11454
80Mhz
RXLDPC
SHORT-GI-80
TXSTBC
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
---
From: Ben Greear
There are not many of these messages producted by the
firmware, but they are generally fairly useful, so print
them at info level.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/wmi.c | 2 +-
1 file changed, 1
From: Ben Greear
Helps keep messages off of (serial) console when
that is desired.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/debug.c | 5 -
drivers/net/wireless/ath/ath10k/debug.h | 6 ++
2 files changed, 10
From: Ben Greear
This might work around problem where sometimes host cannot
access firmware crash over normal CE transport.
Requires CT firmware with matching logic in it's assert
handler (-13 and higher releases).
Signed-off-by: Ben Greear
From: Ben Greear
CT firmware has been modified so that it will always return
a response message when user requests to add a key, even if
the key could not actually be added. Upstream firmware may
assert or just not respond in a failure case.
This change should be
From: Ben Greear
Using debugfs. More convenient than module options
in some cases.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/debug.c | 62 +
1 file changed, 62 insertions(+)
diff --git
From: Ben Greear
This looks like a regression from
c4cdf753 (move fw_features to struct ath10k_fw_file)
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
From: Ben Greear
This only pertains to CT firmware, as standard firmware
can't do anywhere near this many vdevs anyway.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c | 16
1 file changed, 16 insertions(+)
From: Ben Greear
Support up to 32 stations when using CT firmware.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.c | 14 +++
drivers/net/wireless/ath/ath10k/hw.h | 6 +
drivers/net/wireless/ath/ath10k/mac.c
From: Ben Greear
This can be used to get a useful back trace out of a firmware
crash that involves an interrupt handler. For instance, a
null-pointer-exception would be this kind of trace. A user-space
tool can read the debugfs file and decode things as wished.
This
From: Ben Greear
CT firmware can support IBSS mode, so allow users to configure this.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c | 5 +
1 file changed, 5 insertions(+)
diff --git
From: Ben Greear
They may be dumped through the firmware dump debugfs
file.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.h | 18 ++
drivers/net/wireless/ath/ath10k/debug.c | 97 +++-
From: Ben Greear
This gives much better debugging capability when debugging
crashes in the firmware that cause CE transport loss.
(Such as AXI errors).
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/pci.c | 46
From: Ben Greear
This allows user-space tools to decode debug-log
messages by parsing dmesg or /var/log/messages.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/debug.c | 72 +
From: Ben Greear
This gives user-space a normal-ish way to detect that
firmware has failed to start and that a reboot is
probably required.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.h | 1 +
From: Ben Greear
They are not necessarily named in an intuitive manner,
so at least add some comments to help the next person.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.h | 8
From: Ben Greear
The firmware does not offer tx/rx bytes counters, so just keep track of
it in the driver.
For the cycle counters:
Note these counters are since the chip reset, though the counters
wrap often. When cycle-counters counter overflows on
certain hardware,
From: Ben Greear
Should help debug firmware crashes, and give users a way
to provide some useful debug reports to firmware developers.
Signed-off-by: Ben Greear
Signed-off-by: Kalle Valo
---
From: Ben Greear
Add placeholder so CT firmware can more easily co-exist with upstream
kernel. CT firmware should be backwards compatible with existing kernels,
but it also has many new features. Subsequent patches, if acceptable for
upstream, can enable and further
From: Ben Greear
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c
b/drivers/net/wireless/ath/ath10k/mac.c
index
From: Ben Greear
When firmware crashes, stack can continue to send packets
for a bit, and existing code was spamming logs.
So, rate-limit the error message for tx failures.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c |
From: Ben Greear
The (1 << x) - 1 trick won't work when you
are trying to fill up all 64 bits, so add special
case for that.
And, move the limits to the per-nic structure instead
of per-driver to allow better dynamic use of the limits.
Signed-off-by: Ben Greear
From: Ben Greear
Some NICs (ath9k_htc) don't use chanctx_conf, it
seems, so look at local->hw.conf.channel->center_freq
in that case.
Signed-off-by: Ben Greear
---
net/mac80211/ethtool.c | 12
1 file changed, 8 insertions(+), 4
From: Ben Greear
This allows user-space tools to decode debug-log
messages by parsing dmesg or /var/log/messages.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/debug.c | 72 +
From: Ben Greear
This can be used to get a useful back trace out of a firmware
crash that involves an interrupt handler. For instance, a
null-pointer-exception would be this kind of trace. A user-space
tool can read the debugfs file and decode things as wished.
This
From: Ben Greear
There are not many of these messages producted by the
firmware, but they are generally fairly useful, so print
them at info level.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/wmi.c | 2 +-
1 file changed, 1
From: Ben Greear
When firmware crashes, stack can continue to send packets
for a bit, and existing code was spamming logs.
So, rate-limit the error message for tx failures.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c |
From: Ben Greear
Helps keep messages off of (serial) console when
that is desired.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/debug.c | 5 -
drivers/net/wireless/ath/ath10k/debug.h | 6 ++
2 files changed, 10
From: Ben Greear
This only pertains to CT firmware, as standard firmware
can't do anywhere near this many vdevs anyway.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c | 16
1 file changed, 16 insertions(+)
From: Ben Greear
They may be dumped through the firmware dump debugfs
file.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.h | 18 ++
drivers/net/wireless/ath/ath10k/debug.c | 97 +++-
From: Ben Greear
Should help debug firmware crashes, and give users a way
to provide some useful debug reports to firmware developers.
Signed-off-by: Ben Greear
Signed-off-by: Kalle Valo
---
From: Ben Greear
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/mac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c
b/drivers/net/wireless/ath/ath10k/mac.c
index
From: Ben Greear
This gives much better debugging capability when debugging
crashes in the firmware that cause CE transport loss.
(Such as AXI errors).
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/pci.c | 47
From: Ben Greear
This might work around problem where sometimes host cannot
access firmware crash over normal CE transport.
Requires CT firmware with matching logic in it's assert
handler (-13 and higher releases).
Signed-off-by: Ben Greear
From: Ben Greear
Support up to 32 stations when using CT firmware.
Signed-off-by: Ben Greear
---
drivers/net/wireless/ath/ath10k/core.c | 14 +++
drivers/net/wireless/ath/ath10k/hw.h | 6 +
drivers/net/wireless/ath/ath10k/mac.c
1 - 100 of 200 matches
Mail list logo