[OEM-B][SRU][PATCH 10/11] UBUNTU: SAUCE: rsi: Optimizing virtual interfaces

Shrirang Bagul shrirang.bagul at canonical.com
Tue Jul 17 11:07:52 UTC 2018


From: Siva Rebbagondla <siva.rebbagondla at redpinesignals.com>

BugLink: https://bugs.launchpad.net/bugs/1782070

Due to multiple calls of add interface routine, vif is getting duplicated
and at certain instance, we are out of vifs, causing the driver to behave
abnormal.

Fix: Every vif has a unique mac-id, when we got a vif with same mac-id as
the previous id's, we will override the respective vif.

Signed-off-by: Siva Rebbagondla <siva.rebbagondla at redpinesignals.com>
Signed-off-by: Shrirang Bagul <shrirang.bagul at canonical.com>
---
 drivers/net/wireless/rsi/rsi_91x_mac80211.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/wireless/rsi/rsi_91x_mac80211.c b/drivers/net/wireless/rsi/rsi_91x_mac80211.c
index f73e582dafa2..d7dbdf64863c 100644
--- a/drivers/net/wireless/rsi/rsi_91x_mac80211.c
+++ b/drivers/net/wireless/rsi/rsi_91x_mac80211.c
@@ -529,6 +529,10 @@ static int rsi_mac80211_add_interface(struct ieee80211_hw *hw,
 		if (!adapter->vifs[i]) {
 			vap_idx = i;
 			break;
+		} else if (!memcmp(vif->addr, adapter->vifs[i]->addr,
+				   ETH_ALEN)) {
+			vap_idx = i;
+			break;
 		}
 	}
 	if (vap_idx < 0) {
-- 
2.17.1





More information about the kernel-team mailing list