Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59101399 authored by Sharvari Harisangam's avatar Sharvari Harisangam Committed by Greg Kroah-Hartman
Browse files

mwifiex: update set_mac_address logic



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: default avatarSharvari Harisangam <sharvari@marvell.com>
Signed-off-by: default avatarGanapathi Bhat <gbhat@marvell.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Cc: Brian Norris <briannorris@google.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a1371a61
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;