* [PATCH 1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces
@ 2018-05-15 12:33 Felix Fietkau
2018-05-15 12:33 ` [PATCH 2/2] mt76: discard early received packets if not running yet Felix Fietkau
2018-05-23 7:57 ` [1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces Kalle Valo
0 siblings, 2 replies; 3+ messages in thread
From: Felix Fietkau @ 2018-05-15 12:33 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo
For encryption to work properly, the BSS index needs to be initialized
for the WCID entry used for the interface.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
drivers/net/wireless/mediatek/mt76/mt76x2.h | 3 +++
drivers/net/wireless/mediatek/mt76/mt76x2_init.c | 3 +++
drivers/net/wireless/mediatek/mt76/mt76x2_main.c | 2 +-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2.h b/drivers/net/wireless/mediatek/mt76/mt76x2.h
index a5d1255e4b9c..dc12bbdbb2ee 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2.h
@@ -39,6 +39,9 @@
#define MT_CALIBRATE_INTERVAL HZ
+#define MT_MAX_VIFS 8
+#define MT_VIF_WCID(_n) (254 - ((_n) & 7))
+
#include "mt76.h"
#include "mt76x2_regs.h"
#include "mt76x2_mac.h"
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
index dd4c1127797e..aeee0b3de136 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
@@ -296,6 +296,9 @@ static int mt76x2_mac_reset(struct mt76x2_dev *dev, bool hard)
for (i = 0; i < 256; i++)
mt76x2_mac_wcid_setup(dev, i, 0, NULL);
+ for (i = 0; i < MT_MAX_VIFS; i++)
+ mt76x2_mac_wcid_setup(dev, MT_VIF_WCID(i), i, NULL);
+
for (i = 0; i < 16; i++)
for (k = 0; k < 4; k++)
mt76x2_mac_shared_key_setup(dev, i, k, NULL);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
index 81c58f865c64..5c0d1e1260fa 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_main.c
@@ -104,7 +104,7 @@ mt76x2_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
idx += 8;
mvif->idx = idx;
- mvif->group_wcid.idx = 254 - idx;
+ mvif->group_wcid.idx = MT_VIF_WCID(idx);
mvif->group_wcid.hw_key_idx = -1;
mt76x2_txq_init(dev, vif->txq);
--
2.17.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] mt76: discard early received packets if not running yet
2018-05-15 12:33 [PATCH 1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces Felix Fietkau
@ 2018-05-15 12:33 ` Felix Fietkau
2018-05-23 7:57 ` [1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces Kalle Valo
1 sibling, 0 replies; 3+ messages in thread
From: Felix Fietkau @ 2018-05-15 12:33 UTC (permalink / raw)
To: linux-wireless; +Cc: kvalo
If the radio was previously in running state, it can receive some
packets before it is able to process them.
This can lead to a crash if the channel is not initialized yet.
Discard all rx packets until start() is called
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
drivers/net/wireless/mediatek/mt76/mt76x2_mac.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_mac.c b/drivers/net/wireless/mediatek/mt76/mt76x2_mac.c
index dab713756004..b49aea4da2d6 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_mac.c
@@ -301,6 +301,9 @@ int mt76x2_mac_process_rx(struct mt76x2_dev *dev, struct sk_buff *skb,
u8 wcid;
int len;
+ if (!test_bit(MT76_STATE_RUNNING, &dev->mt76.state))
+ return -EINVAL;
+
if (rxinfo & MT_RXINFO_L2PAD)
pad_len += 2;
--
2.17.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces
2018-05-15 12:33 [PATCH 1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces Felix Fietkau
2018-05-15 12:33 ` [PATCH 2/2] mt76: discard early received packets if not running yet Felix Fietkau
@ 2018-05-23 7:57 ` Kalle Valo
1 sibling, 0 replies; 3+ messages in thread
From: Kalle Valo @ 2018-05-23 7:57 UTC (permalink / raw)
To: Felix Fietkau; +Cc: linux-wireless
Felix Fietkau <nbd@nbd.name> wrote:
> For encryption to work properly, the BSS index needs to be initialized
> for the WCID entry used for the interface.
>
> Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 patches applied to wireless-drivers-next.git, thanks.
d98fb328ad10 mt76: fix sending encrypted broadcast packets for secondary interfaces
66a77cbe63eb mt76: discard early received packets if not running yet
--
https://patchwork.kernel.org/patch/10400931/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-05-23 7:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-15 12:33 [PATCH 1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces Felix Fietkau
2018-05-15 12:33 ` [PATCH 2/2] mt76: discard early received packets if not running yet Felix Fietkau
2018-05-23 7:57 ` [1/2] mt76: fix sending encrypted broadcast packets for secondary interfaces Kalle Valo
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.