<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/net/wireless/ath, branch linux-4.20.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.20.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.20.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2019-03-13T21:04:20+00:00</updated>
<entry>
<title>ath9k: Avoid OF no-EEPROM quirks without qca,no-eeprom</title>
<updated>2019-03-13T21:04:20+00:00</updated>
<author>
<name>Daniel F. Dickinson</name>
<email>cshored@thecshore.com</email>
</author>
<published>2018-12-22T06:09:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=21beb16585c7b4703658fd4b7971d986014e5896'/>
<id>urn:sha1:21beb16585c7b4703658fd4b7971d986014e5896</id>
<content type='text'>
commit ce938231bd3b1d7af3cbd8836f084801090470e1 upstream.

ath9k_of_init() function[0] was initially written on the assumption that
if someone had an explicit ath9k OF node that "there must be something
wrong, why would someone add an OF node if everything is fine"[1]
(Quoting Martin Blumenstingl &lt;martin.blumenstingl@googlemail.com&gt;)

"it turns out it's not that simple. with your requirements I'm now aware
of two use-cases where the current code in ath9k_of_init() doesn't work
without modifications"[1]

The "your requirements" Martin speaks of is the result of the fact that I
have a device (PowerCloud Systems CR5000) has some kind of default - not
unique mac address - set and requires to set the correct MAC address via
mac-address devicetree property, however:

"some cards come with a physical EEPROM chip [or OTP] so "qca,no-eeprom"
should not be set (your use-case). in this case AH_USE_EEPROM should be
set (which is the default when there is no OF node)"[1]

The other use case is:

the firmware on some PowerMac G5 seems to add a OF node for the ath9k
card automatically. depending on the EEPROM on the card AH_NO_EEP_SWAP
should be unset (which is the default when there is no OF node). see [3]

After this patch to ath9k_of_init() the new behavior will be:

    if there's no OF node then everything is the same as before
    if there's an empty OF node then ath9k will use the hardware EEPROM
      (before ath9k would fail to initialize because no EEPROM data was
      provided by userspace)
    if there's an OF node with only a MAC address then ath9k will use
      the MAC address and the hardware EEPROM (see the case above)
    with "qca,no-eeprom" EEPROM data from userspace will be requested.
      the behavior here will not change
[1]

Martin provides additional background on EEPROM swapping[1].

Thanks to Christian Lamparter &lt;chunkeey@gmail.com&gt; for all his help on
troubleshooting this issue and the basis for this patch.

[0]https://elixir.bootlin.com/linux/v4.20-rc7/source/drivers/net/wireless/ath/ath9k/init.c#L615
[1]https://github.com/openwrt/openwrt/pull/1645#issuecomment-448027058
[2]https://github.com/openwrt/openwrt/pull/1613
[3]https://patchwork.kernel.org/patch/10241731/

Fixes: 138b41253d9c ("ath9k: parse the device configuration from an OF node")
Reviewed-by: Martin Blumenstingl &lt;martin.blumenstingl@googlemail.com&gt;
Tested-by: Martin Blumenstingl &lt;martin.blumenstingl@googlemail.com&gt;
Signed-off-by: Daniel F. Dickinson &lt;cshored@thecshore.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Cc: Christian Lamparter &lt;chunkeey@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath10k: correct bus type for WCN3990</title>
<updated>2019-03-13T21:04:13+00:00</updated>
<author>
<name>Brian Norris</name>
<email>briannorris@chromium.org</email>
</author>
<published>2019-01-29T23:12:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=494d92a0c349ff1494868887886ac0473d069beb'/>
<id>urn:sha1:494d92a0c349ff1494868887886ac0473d069beb</id>
<content type='text'>
[ Upstream commit 2c2008a63e482654ab137c84d3c61c03b75e7df6 ]

WCN3990 is SNOC, not PCI. This prevents probing WCN3990.

Fixes: 367c899f622c ("ath10k: add bus type check in ath10k_init_hw_params")
Signed-off-by: Brian Norris &lt;briannorris@chromium.org&gt;
Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ath9k: dynack: check da-&gt;enabled first in sampling routines</title>
<updated>2019-02-12T19:02:39+00:00</updated>
<author>
<name>Lorenzo Bianconi</name>
<email>lorenzo.bianconi@redhat.com</email>
</author>
<published>2018-11-02T20:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=db74e5aebab92dc3132afb3f6a98ccfe4757a517'/>
<id>urn:sha1:db74e5aebab92dc3132afb3f6a98ccfe4757a517</id>
<content type='text'>
commit 9d3d65a91f027b8a9af5e63752d9b78cb10eb92d upstream.

Check da-&gt;enabled flag first in ath_dynack_sample_tx_ts and
ath_dynack_sample_ack_ts routines in order to avoid useless
processing

Tested-by: Koen Vandeputte &lt;koen.vandeputte@ncentric.com&gt;
Signed-off-by: Lorenzo Bianconi &lt;lorenzo.bianconi@redhat.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath9k: dynack: make ewma estimation faster</title>
<updated>2019-02-12T19:02:39+00:00</updated>
<author>
<name>Lorenzo Bianconi</name>
<email>lorenzo.bianconi@redhat.com</email>
</author>
<published>2018-11-02T20:49:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e7e4c25c1b17f4582aabfb0b535d8cfd2b94fd7d'/>
<id>urn:sha1:e7e4c25c1b17f4582aabfb0b535d8cfd2b94fd7d</id>
<content type='text'>
commit 0c60c490830a1a756c80f8de8d33d9c6359d4a36 upstream.

In order to make propagation time estimation faster,
use current sample as ewma output value during 'late ack'
tracking

Tested-by: Koen Vandeputte &lt;koen.vandeputte@ncentric.com&gt;
Signed-off-by: Lorenzo Bianconi &lt;lorenzo.bianconi@redhat.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath10k: fix tx_stats memory leak</title>
<updated>2019-02-12T19:02:25+00:00</updated>
<author>
<name>Zhi Chen</name>
<email>zhichen@codeaurora.org</email>
</author>
<published>2018-12-20T12:25:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7ee55abc1fee9da7080d18db8a1918021d57859e'/>
<id>urn:sha1:7ee55abc1fee9da7080d18db8a1918021d57859e</id>
<content type='text'>
[ Upstream commit 386f97e3b201d18578abb0e7037b85a1ae50c0a3 ]

Memory of tx_stats was allocated when a STA was added. But it's not freed
if the STA failed to be added to driver. This issue could be seen in MDK3
attack case when STA number reached the limit.

Tested: QCA9984 with firmware ver 10.4-3.9.0.1-00005
Signed-off-by: Zhi Chen &lt;zhichen@codeaurora.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ath10k: fix kernel panic due to use after free</title>
<updated>2019-02-12T19:02:25+00:00</updated>
<author>
<name>Karthikeyan Periyasamy</name>
<email>periyasa@codeaurora.org</email>
</author>
<published>2018-12-20T07:53:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=38e98806b7608e1bb5c3577a10d32a2023ad3113'/>
<id>urn:sha1:38e98806b7608e1bb5c3577a10d32a2023ad3113</id>
<content type='text'>
[ Upstream commit 553a7cca769d551f1317186760631487c47e23bf ]

This issue arise in a race condition between ath10k_sta_state() and
ath10k_htt_fetch_peer_stats(), explained in below scenario

Steps:
1. In ath10k_sta_state(), arsta-&gt;tx_stats get deallocated before peer deletion
   when the station moves from IEEE80211_STA_NONE to IEEE80211_STA_NOTEXIST
   state.
2. Meanwhile ath10k receive HTT_T2H_MSG_TYPE_PEER_STATS message.
   In ath10k_htt_fetch_peer_stats(), arsta-&gt;tx_stats get accessed after
   the peer validation check.

Since arsta-&gt;tx_stats get freed before the peer deletion [1].
ath10k_htt_fetch_peer_stats() ended up in "use after free" situation.

Fixed this issue by moving the arsta-&gt;tx_stats free handling after the
peer deletion. so that ath10k_htt_fetch_peer_stats() will not end up in
"use after free" situation.

Kernel Panic:

Unable to handle kernel NULL pointer dereference at virtual address 00000286
pgd = d8754000
[00000286] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
...
CPU: 0 PID: 6245 Comm: hostapd Not tainted
task: dc44cac0 ti: d4a38000 task.ti: d4a38000
PC is at kmem_cache_alloc+0x7c/0x114
LR is at ath10k_sta_state+0x190/0xd58 [ath10k_core]
pc : [&lt;c02bdc50&gt;]    lr : [&lt;bf916b78&gt;]    psr: 20000013
sp : d4a39b88  ip : 00000000  fp : 00000001
r10: 00000000  r9 : 1d3bc000  r8 : 00000dc0
r7 : 000080d0  r6 : d4a38000  r5 : dd401b00  r4 : 00000286
r3 : 00000000  r2 : d4a39ba0  r1 : 000080d0  r0 : dd401b00
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5787d  Table: 5a75406a  DAC: 00000015
Process hostapd (pid: 6245, stack limit = 0xd4a38238)
Stack: (0xd4a39b88 to 0xd4a3a000)
...
[&lt;c02bdc50&gt;] (kmem_cache_alloc) from [&lt;bf916b78&gt;] (ath10k_sta_state+0x190/0xd58 [ath10k_core])
[&lt;bf916b78&gt;] (ath10k_sta_state [ath10k_core]) from [&lt;bf870d4c&gt;] (sta_info_insert_rcu+0x418/0x61c [mac80211])
[&lt;bf870d4c&gt;] (sta_info_insert_rcu [mac80211]) from [&lt;bf88634c&gt;] (ieee80211_add_station+0xf0/0x134 [mac80211])
[&lt;bf88634c&gt;] (ieee80211_add_station [mac80211]) from [&lt;bf83f3c4&gt;] (nl80211_new_station+0x330/0x36c [cfg80211])
[&lt;bf83f3c4&gt;] (nl80211_new_station [cfg80211]) from [&lt;bf6c4040&gt;] (extack_doit+0x2c/0x74 [compat])
[&lt;bf6c4040&gt;] (extack_doit [compat]) from [&lt;c05c285c&gt;] (genl_rcv_msg+0x274/0x30c)
[&lt;c05c285c&gt;] (genl_rcv_msg) from [&lt;c05c1d98&gt;] (netlink_rcv_skb+0x58/0xac)
[&lt;c05c1d98&gt;] (netlink_rcv_skb) from [&lt;c05c25d4&gt;] (genl_rcv+0x20/0x34)
[&lt;c05c25d4&gt;] (genl_rcv) from [&lt;c05c1750&gt;] (netlink_unicast+0x11c/0x204)
[&lt;c05c1750&gt;] (netlink_unicast) from [&lt;c05c1be0&gt;] (netlink_sendmsg+0x30c/0x370)
[&lt;c05c1be0&gt;] (netlink_sendmsg) from [&lt;c0587e90&gt;] (sock_sendmsg+0x70/0x84)
[&lt;c0587e90&gt;] (sock_sendmsg) from [&lt;c058970c&gt;] (___sys_sendmsg.part.3+0x188/0x228)
[&lt;c058970c&gt;] (___sys_sendmsg.part.3) from [&lt;c058a594&gt;] (__sys_sendmsg+0x4c/0x70)
[&lt;c058a594&gt;] (__sys_sendmsg) from [&lt;c0208c80&gt;] (ret_fast_syscall+0x0/0x44)
Code: ebfffec1 e1a04000 ea00001b e5953014 (e7940003)
ath10k_pci 0000:01:00.0: SWBA overrun on vdev 0, skipped old beacon

Hardware tested: QCA9984
Firmware tested: 10.4-3.6.0.1-00004

Fixes: a904417fc ("ath10k: add extended per sta tx statistics support")
Signed-off-by: Karthikeyan Periyasamy &lt;periyasa@codeaurora.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ath9k: dynack: use authentication messages for 'late' ack</title>
<updated>2019-02-12T19:02:05+00:00</updated>
<author>
<name>Lorenzo Bianconi</name>
<email>lorenzo.bianconi@redhat.com</email>
</author>
<published>2018-11-02T20:49:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=13fb29fd2b7145b4674b36d67da261d2f2f209c3'/>
<id>urn:sha1:13fb29fd2b7145b4674b36d67da261d2f2f209c3</id>
<content type='text'>
[ Upstream commit 3831a2a0010c72e3956020cbf1057a1701a2e469 ]

In order to properly support dynack in ad-hoc mode running
wpa_supplicant, take into account authentication frames for
'late ack' detection. This patch has been tested on devices
mounted on offshore high-voltage stations connected through
~24Km link

Reported-by: Koen Vandeputte &lt;koen.vandeputte@ncentric.com&gt;
Tested-by: Koen Vandeputte &lt;koen.vandeputte@ncentric.com&gt;
Signed-off-by: Lorenzo Bianconi &lt;lorenzo.bianconi@redhat.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>ath10k: assign 'n_cipher_suites' for WCN3990</title>
<updated>2019-02-12T19:02:05+00:00</updated>
<author>
<name>Brian Norris</name>
<email>briannorris@chromium.org</email>
</author>
<published>2018-11-02T17:17:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a055693f05f5aee1406e42e0a4c9fb0534b2ab29'/>
<id>urn:sha1:a055693f05f5aee1406e42e0a4c9fb0534b2ab29</id>
<content type='text'>
[ Upstream commit 2bd345cd2bfc0bd44528896313c0b45f087bdf67 ]

Commit 2ea9f12cefe4 ("ath10k: add new cipher suite support") added a new
n_cipher_suites HW param with a fallback value and a warning log. Commit
03a72288c546 ("ath10k: wmi: add hw params entry for wcn3990") later
added WCN3990 HW entries, but it missed the n_cipher_suites.

Rather than seeing this warning every boot

  ath10k_snoc 18800000.wifi: invalid hw_params.n_cipher_suites 0

let's provide the appropriate value.

Cc: Rakesh Pillai &lt;pillair@qti.qualcomm.com&gt;
Cc: Govind Singh &lt;govinds@qti.qualcomm.com&gt;
Signed-off-by: Brian Norris &lt;briannorris@chromium.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>wil6210: fix memory leak in wil_find_tx_bcast_2</title>
<updated>2019-02-12T19:02:05+00:00</updated>
<author>
<name>Lior David</name>
<email>liord@codeaurora.org</email>
</author>
<published>2018-10-31T08:52:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=112aac1653688c07d1a6ed29c92e2fa6627442e2'/>
<id>urn:sha1:112aac1653688c07d1a6ed29c92e2fa6627442e2</id>
<content type='text'>
[ Upstream commit 664497400c89a4d40aee51bcf48bbd2e4dc71104 ]

A successful call to wil_tx_ring takes skb reference so
it will only be freed in wil_tx_complete. Consume the skb
in wil_find_tx_bcast_2 to prevent memory leak.

Signed-off-by: Lior David &lt;liord@codeaurora.org&gt;
Signed-off-by: Maya Erez &lt;merez@codeaurora.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>wil6210: fix reset flow for Talyn-mb</title>
<updated>2019-02-12T19:02:05+00:00</updated>
<author>
<name>Alexei Avshalom Lazar</name>
<email>ailizaro@codeaurora.org</email>
</author>
<published>2018-10-31T08:52:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9dc29400d82139fa7ec5636b1bd375693bec522f'/>
<id>urn:sha1:9dc29400d82139fa7ec5636b1bd375693bec522f</id>
<content type='text'>
[ Upstream commit d083b2e2b7db5cca1791643d036e6597af27f49b ]

With current reset flow, Talyn sometimes get stuck causing PCIe
enumeration to fail. Fix this by removing some reset flow operations
that are not relevant for Talyn.
Setting bit 15 in RGF_HP_CTRL is WBE specific and is not in use for
all wil6210 devices.
For Sparrow, BIT_HPAL_PERST_FROM_PAD and BIT_CAR_PERST_RST were set
as a WA an HW issue.

Signed-off-by: Alexei Avshalom Lazar &lt;ailizaro@codeaurora.org&gt;
Signed-off-by: Maya Erez &lt;merez@codeaurora.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
</feed>
