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@redpinesignals.com>
Signed-off-by: Sushant Kumar Mishra <sushant.mishra@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
 
        /* Get free vap index */
        for (i = 0; i < RSI_MAX_VIFS; i++) {
-               if (!adapter->vifs[i]) {
+               if (!adapter->vifs[i] ||
+                   !memcmp(vif->addr, adapter->vifs[i]->addr, ETH_ALEN)) {
                        vap_idx = i;
                        break;
                }