--- /dev/null
+From 7afb94da3cd8a28ed7ae268143117bf1ac8a3371 Mon Sep 17 00:00:00 2001
+From: Sharvari Harisangam <sharvari@marvell.com>
+Date: Wed, 12 Jun 2019 20:42:11 +0530
+Subject: mwifiex: update set_mac_address logic
+
+From: Sharvari Harisangam <sharvari@marvell.com>
+
+commit 7afb94da3cd8a28ed7ae268143117bf1ac8a3371 upstream.
+
+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>
+Cc: Brian Norris <briannorris@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/marvell/mwifiex/main.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/marvell/mwifiex/main.c
++++ b/drivers/net/wireless/marvell/mwifiex/main.c
+@@ -960,10 +960,10 @@ int mwifiex_set_mac_address(struct mwifi
+
+ 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;