From dc364547d91affbfcb850094f520462b67a139fa Mon Sep 17 00:00:00 2001 From: Markus Theil Date: Wed, 18 Dec 2019 17:07:51 +0100 Subject: [PATCH] mt76: mt76x02: add check for invalid vif idx On adding vifs the idx can become 1 + (7 & 7) = 8 for APs. Check against that, as only AP vif idx 0-7 is possible. Signed-off-by: Markus Theil Signed-off-by: Felix Fietkau --- mt76x02_util.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mt76x02_util.c b/mt76x02_util.c index b20e3aab..e478eec5 100644 --- a/mt76x02_util.c +++ b/mt76x02_util.c @@ -325,7 +325,9 @@ mt76x02_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) if (vif->type == NL80211_IFTYPE_STATION) idx += 8; - if (dev->vif_mask & BIT(idx)) + /* vif is already set or idx is 8 for AP/Mesh/... */ + if (dev->vif_mask & BIT(idx) || + (vif->type != NL80211_IFTYPE_STATION && idx > 7)) return -EBUSY; dev->vif_mask |= BIT(idx);