[PATCH] mt76: mt7915: fix MBSS index condition in DBDC mode

Felix Fietkau nbd at nbd.name
Mon Mar 14 07:37:26 PDT 2022


On 09.03.22 15:02, Evelyn Tsai wrote:
> MT7915_MAX_INTERFACES is per-band declartion.
> 
> Signed-off-by: Evelyn Tsai <evelyn.tsai at mediatek.com>
> Signed-off-by: Bo Jiao <bo.jiao at mediatek.com>
> ---
>   drivers/net/wireless/mediatek/mt76/mt76.h        | 2 +-
>   drivers/net/wireless/mediatek/mt76/mt7915/main.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
> index 5e10fe156926..c60af144f611 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76.h
> +++ b/drivers/net/wireless/mediatek/mt76/mt76.h
> @@ -727,7 +727,7 @@ struct mt76_dev {
>   	u32 wcid_mask[DIV_ROUND_UP(MT76_N_WCIDS, 32)];
>   	u32 wcid_phy_mask[DIV_ROUND_UP(MT76_N_WCIDS, 32)];
>   
> -	u32 vif_mask;
> +	u64 vif_mask;
>   
>   	struct mt76_wcid global_wcid;
>   	struct mt76_wcid __rcu *wcid[MT76_N_WCIDS];
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/main.c b/drivers/net/wireless/mediatek/mt76/mt7915/main.c
> index c3f44d801e7f..9eefc132d77a 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7915/main.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7915/main.c
> @@ -205,7 +205,7 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
>   		phy->monitor_vif = vif;
>   
>   	mvif->mt76.idx = ffs(~dev->mt76.vif_mask) - 1;
> -	if (mvif->mt76.idx >= MT7915_MAX_INTERFACES) {
> +	if (mvif->mt76.idx >= (MT7915_MAX_INTERFACES << dev->dbdc_support)) {
This patch is incomplete. There are several other places in the code 
that are not prepared for vif_mask being 64 bits wide, including the ffs 
line above.

- Felix



More information about the Linux-mediatek mailing list