]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mwifiex: update set_mac_address logic
authorSharvari Harisangam <sharvari@marvell.com>
Wed, 12 Jun 2019 15:12:11 +0000 (20:42 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 25 Jun 2019 04:46:59 +0000 (07:46 +0300)
In set_mac_address, driver check for interfaces with same bss_type
For first STA entry, this would return 3 interfaces since all priv's have
bss_type as 0 due to kzalloc. Thus mac address gets changed for STA
unexpected. This patch adds check for first STA and avoids mac address
change. This patch also adds mac_address change for p2p based on bss_num
type.

Signed-off-by: Sharvari Harisangam <sharvari@marvell.com>
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/main.c

index f6da8edab7f1c109755ab1955a3c867fb40cac14..4c14b48653672eb73be4a00da00337efbf748ff4 100644 (file)
@@ -960,10 +960,10 @@ int mwifiex_set_mac_address(struct mwifiex_private *priv,
 
                mac_addr = old_mac_addr;
 
-               if (priv->bss_type == MWIFIEX_BSS_TYPE_P2P)
+               if (priv->bss_type == MWIFIEX_BSS_TYPE_P2P) {
                        mac_addr |= BIT_ULL(MWIFIEX_MAC_LOCAL_ADMIN_BIT);
-
-               if (mwifiex_get_intf_num(priv->adapter, priv->bss_type) > 1) {
+                       mac_addr += priv->bss_num;
+               } else if (priv->adapter->priv[0] != priv) {
                        /* Set mac address based on bss_type/bss_num */
                        mac_addr ^= BIT_ULL(priv->bss_type + 8);
                        mac_addr += priv->bss_num;