[for-4.9.y,06/10] mwifiex: fix p2p device doesn't find in scan problem

Message ID 1543416004-1547-7-git-send-email-amit.pundir@linaro.org
State Superseded
Headers show
  • Stable candidates for linux-4.9.y
Related show

Commit Message

Amit Pundir Nov. 28, 2018, 2:40 p.m.
From: Karthik D A <karthida@marvell.com>

commit 3d8bd85c2c9e47ed2c82348aa5b6029ed48376ae upstream.

Marvell p2p device disappears from the list of p2p peers on the other
p2p device after disconnection.

It happens due to a bug in driver. When interface is changed from p2p
to station, certain variables(bss_type, bss_role etc.) aren't correctly
updated. This patch corrects them to fix the issue.

Signed-off-by: Karthik D A <karthida@marvell.com>

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>

Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 6 ++++++
 1 file changed, 6 insertions(+)



diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index 2054948050e2..4da3541471e6 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -1209,6 +1209,12 @@  mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy,
 			dev->ieee80211_ptr->iftype = type;
+			if (mwifiex_deinit_priv_params(priv))
+				return -1;
+			if (mwifiex_init_new_priv_params(priv, dev, type))
+				return -1;
+			if (mwifiex_sta_init_cmd(priv, false, false))
+				return -1;
 		case NL80211_IFTYPE_ADHOC:
 			if (mwifiex_cfg80211_deinit_p2p(priv))