diff mbox

ath10k: fix firmware assert in monitor mode

Message ID 1456929832-6147-1-git-send-email-rmanohar@qti.qualcomm.com (mailing list archive)
State Accepted
Headers show

Commit Message

Rajkumar Manoharan March 2, 2016, 2:43 p.m. UTC
commit 166de3f1895d ("ath10k: remove supported chain mask") had revealed
an issue on monitor mode. Configuring NSS upon monitor interface
creation is causing target assert in all qca9888x and qca6174 firmware.
Firmware assert issue can be reproduced by below sequence even after
reverting commit 166de3f1895d ("ath10k: remove supported chain mask").

ip link set wlan0 down
iw wlan0 set type monitor
iw phy0 set antenna 7
ip link set wlan0 up

This issue is originally reported on qca9888 with 10.1 firmware.

Fixes: 5572a95b4b ("ath10k: apply chainmask settings to vdev on creation")
Reported-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
---
 drivers/net/wireless/ath/ath10k/mac.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Kalle Valo March 7, 2016, 9:51 a.m. UTC | #1
Rajkumar Manoharan <rmanohar@qti.qualcomm.com> writes:

> commit 166de3f1895d ("ath10k: remove supported chain mask") had revealed
> an issue on monitor mode. Configuring NSS upon monitor interface
> creation is causing target assert in all qca9888x and qca6174 firmware.
> Firmware assert issue can be reproduced by below sequence even after
> reverting commit 166de3f1895d ("ath10k: remove supported chain mask").
>
> ip link set wlan0 down
> iw wlan0 set type monitor
> iw phy0 set antenna 7
> ip link set wlan0 up
>
> This issue is originally reported on qca9888 with 10.1 firmware.
>
> Fixes: 5572a95b4b ("ath10k: apply chainmask settings to vdev on creation")
> Reported-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
> Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>

Applied, thanks for fixing this. I also CCed stable.

But I'm not actually sure if the "Fixes" lines implies "Cc stable"? I
think I saw one patch going into stable like that so I have been
wondering how this works. Does anyone know?
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 78999c9..c42866d 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -4489,7 +4489,10 @@  static int ath10k_add_interface(struct ieee80211_hw *hw,
 		goto err_vdev_delete;
 	}
 
-	if (ar->cfg_tx_chainmask) {
+	/* Configuring number of spatial stream for monitor interface is causing
+	 * target assert in qca9888 and qca6174.
+	 */
+	if (ar->cfg_tx_chainmask && (vif->type != NL80211_IFTYPE_MONITOR)) {
 		u16 nss = get_nss_from_chainmask(ar->cfg_tx_chainmask);
 
 		vdev_param = ar->wmi.vdev_param->nss;