diff mbox series

mt76: mt7921: fix UC entry is being overwritten

Message ID 1621495354-4130-1-git-send-email-sean.wang@mediatek.com (mailing list archive)
State Superseded
Delegated to: Felix Fietkau
Headers show
Series mt76: mt7921: fix UC entry is being overwritten | expand

Commit Message

Sean Wang May 20, 2021, 7:22 a.m. UTC
From: Deren Wu <deren.wu@mediatek.com>

Fix UC entry is being overwritten by BC entry

Fixes: 36fcc8cff592 ("mt76: mt7921: introduce mt7921_mcu_sta_add routine")
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: YN Chen <yn.chen@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
 drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

Comments

Lorenzo Bianconi May 23, 2021, 9:18 p.m. UTC | #1
> From: Deren Wu <deren.wu@mediatek.com>
> 
> Fix UC entry is being overwritten by BC entry
> 
> Fixes: 36fcc8cff592 ("mt76: mt7921: introduce mt7921_mcu_sta_add routine")
> Signed-off-by: Deren Wu <deren.wu@mediatek.com>
> Signed-off-by: YN Chen <yn.chen@mediatek.com>
> Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> ---
>  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
>
Ryder Lee May 24, 2021, 5:52 p.m. UTC | #2
On Sun, 2021-05-23 at 23:18 +0200, Lorenzo Bianconi wrote:
> > From: Deren Wu <deren.wu@mediatek.com>
> > 
> > Fix UC entry is being overwritten by BC entry
> > 
> > Fixes: 36fcc8cff592 ("mt76: mt7921: introduce mt7921_mcu_sta_add routine")
> > Signed-off-by: Deren Wu <deren.wu@mediatek.com>
> > Signed-off-by: YN Chen <yn.chen@mediatek.com>
> > Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> > ---
> >  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
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
diff mbox series

Patch

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));