2021-05-20 07:25:11

by Sean Wang

[permalink] [raw]
Subject: [PATCH] mt76: mt7921: fix UC entry is being overwritten

From: Deren Wu <[email protected]>

Fix UC entry is being overwritten by BC entry

Fixes: 36fcc8cff592 ("mt76: mt7921: introduce mt7921_mcu_sta_add routine")
Signed-off-by: Deren Wu <[email protected]>
Signed-off-by: YN Chen <[email protected]>
Signed-off-by: Sean Wang <[email protected]>
---
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
index 73359defa176..f3decc59a6fe 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
@@ -875,10 +875,13 @@ int mt76_connac_mcu_add_sta_cmd(struct mt76_phy *phy,
if (IS_ERR(skb))
return PTR_ERR(skb);

- mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta, info->enable);
- if (info->enable && info->sta)
- mt76_connac_mcu_sta_tlv(phy, skb, info->sta, info->vif,
- info->rcpi);
+ if (info->sta) {
+ mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta,
+ info->enable);
+ if (info->enable)
+ mt76_connac_mcu_sta_tlv(phy, skb, info->sta,
+ info->vif, info->rcpi);
+ }

sta_wtbl = mt76_connac_mcu_add_tlv(skb, STA_REC_WTBL,
sizeof(struct tlv));
--
2.25.1


2021-05-23 21:21:01

by Lorenzo Bianconi

[permalink] [raw]
Subject: Re: [PATCH] mt76: mt7921: fix UC entry is being overwritten

> From: Deren Wu <[email protected]>
>
> Fix UC entry is being overwritten by BC entry
>
> Fixes: 36fcc8cff592 ("mt76: mt7921: introduce mt7921_mcu_sta_add routine")
> Signed-off-by: Deren Wu <[email protected]>
> Signed-off-by: YN Chen <[email protected]>
> Signed-off-by: Sean Wang <[email protected]>
> ---
> drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> index 73359defa176..f3decc59a6fe 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> @@ -875,10 +875,13 @@ int mt76_connac_mcu_add_sta_cmd(struct mt76_phy *phy,
> if (IS_ERR(skb))
> return PTR_ERR(skb);
>
> - mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta, info->enable);
> - if (info->enable && info->sta)
> - mt76_connac_mcu_sta_tlv(phy, skb, info->sta, info->vif,
> - info->rcpi);
> + if (info->sta) {
> + mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta,
> + info->enable);
> + if (info->enable)
> + mt76_connac_mcu_sta_tlv(phy, skb, info->sta,
> + info->vif, info->rcpi);
> + }

with this patch we are changing the mt7663 behaviour since we run
mt76_connac_mcu_add_sta_cmd() in mt7615_remove_interface() with
enable = false and sta = NULL. Can you please confirm you are
not introducing any regression in mt7663?

Regards,
Lorenzo

>
> sta_wtbl = mt76_connac_mcu_add_tlv(skb, STA_REC_WTBL,
> sizeof(struct tlv));
> --
> 2.25.1
>


Attachments:
(No filename) (1.66 kB)
signature.asc (235.00 B)
Download all attachments

2021-05-24 17:55:42

by Ryder Lee

[permalink] [raw]
Subject: Re: [PATCH] mt76: mt7921: fix UC entry is being overwritten

On Sun, 2021-05-23 at 23:18 +0200, Lorenzo Bianconi wrote:
> > From: Deren Wu <[email protected]>
> >
> > Fix UC entry is being overwritten by BC entry
> >
> > Fixes: 36fcc8cff592 ("mt76: mt7921: introduce mt7921_mcu_sta_add routine")
> > Signed-off-by: Deren Wu <[email protected]>
> > Signed-off-by: YN Chen <[email protected]>
> > Signed-off-by: Sean Wang <[email protected]>
> > ---
> > drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> > index 73359defa176..f3decc59a6fe 100644
> > --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> > +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
> > @@ -875,10 +875,13 @@ int mt76_connac_mcu_add_sta_cmd(struct mt76_phy *phy,
> > if (IS_ERR(skb))
> > return PTR_ERR(skb);
> >
> > - mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta, info->enable);
> > - if (info->enable && info->sta)
> > - mt76_connac_mcu_sta_tlv(phy, skb, info->sta, info->vif,
> > - info->rcpi);
> > + if (info->sta) {
> > + mt76_connac_mcu_sta_basic_tlv(skb, info->vif, info->sta,
> > + info->enable);
> > + if (info->enable)
> > + mt76_connac_mcu_sta_tlv(phy, skb, info->sta,
> > + info->vif, info->rcpi);
> > + }
>
> with this patch we are changing the mt7663 behaviour since we run
> mt76_connac_mcu_add_sta_cmd() in mt7615_remove_interface() with
> enable = false and sta = NULL. Can you please confirm you are
> not introducing any regression in mt7663?

I think this also breaks mt7622, so please double check.

> Regards,
> Lorenzo
>
> >
> > sta_wtbl = mt76_connac_mcu_add_tlv(skb, STA_REC_WTBL,
> > sizeof(struct tlv));
> > --
> > 2.25.1
> >
> _______________________________________________
> Linux-mediatek mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-mediatek