* [PATCH 1/4] mt76: fix tx status timeout processing
@ 2019-02-18 19:42 Felix Fietkau
2019-02-18 19:42 ` [PATCH 2/4] mt76: fix corrupted software generated tx CCMP PN Felix Fietkau
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Felix Fietkau @ 2019-02-18 19:42 UTC (permalink / raw)
To: linux-wireless
Remove bogus check for MT_PACKET_ID_NO_ACK in mt76_tx_status_skb_get, which
is already handled in callers and turns timeout calls into no-ops
Do not clean up pending status items on reordering of tx status information
if the timeout is not reached yet
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
drivers/net/wireless/mediatek/mt76/tx.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/tx.c b/drivers/net/wireless/mediatek/mt76/tx.c
index ef38e8626da9..5a349fe3e576 100644
--- a/drivers/net/wireless/mediatek/mt76/tx.c
+++ b/drivers/net/wireless/mediatek/mt76/tx.c
@@ -205,9 +205,6 @@ mt76_tx_status_skb_get(struct mt76_dev *dev, struct mt76_wcid *wcid, int pktid,
{
struct sk_buff *skb, *tmp;
- if (pktid == MT_PACKET_ID_NO_ACK)
- return NULL;
-
skb_queue_walk_safe(&dev->status_list, skb, tmp) {
struct mt76_tx_cb *cb = mt76_tx_skb_cb(skb);
@@ -217,7 +214,7 @@ mt76_tx_status_skb_get(struct mt76_dev *dev, struct mt76_wcid *wcid, int pktid,
if (cb->pktid == pktid)
return skb;
- if (!pktid &&
+ if (pktid >= 0 &&
!time_after(jiffies, cb->jiffies + MT_TX_STATUS_SKB_TIMEOUT))
continue;
--
2.17.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/4] mt76: fix corrupted software generated tx CCMP PN
2019-02-18 19:42 [PATCH 1/4] mt76: fix tx status timeout processing Felix Fietkau
@ 2019-02-18 19:42 ` Felix Fietkau
2019-02-22 15:24 ` Sasha Levin
2019-02-18 19:42 ` [PATCH 3/4] mt76: fix resetting software IV flag on key delete Felix Fietkau
2019-02-18 19:42 ` [PATCH 4/4] mt76: mt76x2: simplify per-chain signal strength handling Felix Fietkau
2 siblings, 1 reply; 5+ messages in thread
From: Felix Fietkau @ 2019-02-18 19:42 UTC (permalink / raw)
To: linux-wireless; +Cc: stable
Since ccmp_pn is u8 *, the second half needs to start at array index 4
instead of 0. Fixes a connection stall after a certain amount of traffic
Fixes: 23405236460b9 ("mt76: fix transmission of encrypted management frames")
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
index bf39624c9b98..eab713723b7e 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
@@ -314,7 +314,7 @@ void mt76x02_mac_write_txwi(struct mt76x02_dev *dev, struct mt76x02_txwi *txwi,
ccmp_pn[6] = pn >> 32;
ccmp_pn[7] = pn >> 40;
txwi->iv = *((__le32 *)&ccmp_pn[0]);
- txwi->eiv = *((__le32 *)&ccmp_pn[1]);
+ txwi->eiv = *((__le32 *)&ccmp_pn[4]);
}
spin_lock_bh(&dev->mt76.lock);
--
2.17.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/4] mt76: fix resetting software IV flag on key delete
2019-02-18 19:42 [PATCH 1/4] mt76: fix tx status timeout processing Felix Fietkau
2019-02-18 19:42 ` [PATCH 2/4] mt76: fix corrupted software generated tx CCMP PN Felix Fietkau
@ 2019-02-18 19:42 ` Felix Fietkau
2019-02-18 19:42 ` [PATCH 4/4] mt76: mt76x2: simplify per-chain signal strength handling Felix Fietkau
2 siblings, 0 replies; 5+ messages in thread
From: Felix Fietkau @ 2019-02-18 19:42 UTC (permalink / raw)
To: linux-wireless
It needs to be unset instead of set
Fixes: 23405236460b9 ("mt76: fix transmission of encrypted management frames")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
index 87ed00768bc7..11b5f664f5b1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c
@@ -431,7 +431,7 @@ int mt76x02_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
} else {
if (idx == wcid->hw_key_idx) {
wcid->hw_key_idx = -1;
- wcid->sw_iv = true;
+ wcid->sw_iv = false;
}
key = NULL;
--
2.17.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 4/4] mt76: mt76x2: simplify per-chain signal strength handling
2019-02-18 19:42 [PATCH 1/4] mt76: fix tx status timeout processing Felix Fietkau
2019-02-18 19:42 ` [PATCH 2/4] mt76: fix corrupted software generated tx CCMP PN Felix Fietkau
2019-02-18 19:42 ` [PATCH 3/4] mt76: fix resetting software IV flag on key delete Felix Fietkau
@ 2019-02-18 19:42 ` Felix Fietkau
2 siblings, 0 replies; 5+ messages in thread
From: Felix Fietkau @ 2019-02-18 19:42 UTC (permalink / raw)
To: linux-wireless
There is no need to use a for loop here, supported chips can only support
up to 2 chains.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
index eab713723b7e..be2979f34f31 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mac.c
@@ -608,7 +608,7 @@ int mt76x02_mac_process_rx(struct mt76x02_dev *dev, struct sk_buff *skb,
u16 rate = le16_to_cpu(rxwi->rate);
u16 tid_sn = le16_to_cpu(rxwi->tid_sn);
bool unicast = rxwi->rxinfo & cpu_to_le32(MT_RXINFO_UNICAST);
- int i, pad_len = 0, nstreams = dev->mt76.chainmask & 0xf;
+ int pad_len = 0, nstreams = dev->mt76.chainmask & 0xf;
s8 signal;
u8 pn_len;
u8 wcid;
@@ -668,12 +668,13 @@ int mt76x02_mac_process_rx(struct mt76x02_dev *dev, struct sk_buff *skb,
status->chains = BIT(0);
signal = mt76x02_mac_get_rssi(dev, rxwi->rssi[0], 0);
- for (i = 0; i < nstreams; i++) {
- status->chains |= BIT(i);
- status->chain_signal[i] = mt76x02_mac_get_rssi(dev,
- rxwi->rssi[i],
- i);
- signal = max_t(s8, signal, status->chain_signal[i]);
+ status->chain_signal[0] = signal;
+ if (nstreams > 1) {
+ status->chains |= BIT(1);
+ status->chain_signal[1] = mt76x02_mac_get_rssi(dev,
+ rxwi->rssi[1],
+ 1);
+ signal = max_t(s8, signal, status->chain_signal[1]);
}
status->signal = signal;
status->freq = dev->mt76.chandef.chan->center_freq;
--
2.17.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/4] mt76: fix corrupted software generated tx CCMP PN
2019-02-18 19:42 ` [PATCH 2/4] mt76: fix corrupted software generated tx CCMP PN Felix Fietkau
@ 2019-02-22 15:24 ` Sasha Levin
0 siblings, 0 replies; 5+ messages in thread
From: Sasha Levin @ 2019-02-22 15:24 UTC (permalink / raw)
To: Sasha Levin, Felix Fietkau, linux-wireless; +Cc: stable, stable, stable
Hi,
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag,
fixing commit: 23405236460b mt76: fix transmission of encrypted management frames.
The bot has tested the following trees: v4.20.11, v4.19.24.
v4.19.24: Failed to apply! Possible dependencies:
047aed1c38cf ("mt76: unify mac_shared_key_setup")
108a4861ef19 ("mt76: create new mt76x02-lib module for common mt76x{0,2} code")
2735a6dd7df3 ("mt76: unify wait_for_mac")
32bb405fe2bc ("mt76: unify mac_wcid_setup")
427f9ebec682 ("mt76: move mt76x02_mac_write_txwi in mt76x02-lib module")
46436b5ef9dd ("mt76: unify mac_wcid_set_key")
516ea2a2a9d4 ("mt76: use mac_wcid_set_drop in mt76x0")
797ea2407825 ("mt76: merge mt76x0/regs.h into mt76x02_regs.h")
c378f2473466 ("mt76: unify mac_get_key_info")
f5a7f126e5fe ("mt76: unify sta structure part 1")
How should we proceed with this patch?
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-02-22 15:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-18 19:42 [PATCH 1/4] mt76: fix tx status timeout processing Felix Fietkau
2019-02-18 19:42 ` [PATCH 2/4] mt76: fix corrupted software generated tx CCMP PN Felix Fietkau
2019-02-22 15:24 ` Sasha Levin
2019-02-18 19:42 ` [PATCH 3/4] mt76: fix resetting software IV flag on key delete Felix Fietkau
2019-02-18 19:42 ` [PATCH 4/4] mt76: mt76x2: simplify per-chain signal strength handling Felix Fietkau
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.