From: Karthik D A <[email protected]>

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 <[email protected]>
Signed-off-by: Amitkumar Karwar <[email protected]>
---
 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 e83861f..d9f5445 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -1203,6 +1203,12 @@ mwifiex_cfg80211_change_virtual_intf(struct wiphy *wiphy,
                        priv->adapter->curr_iface_comb.p2p_intf--;
                        priv->adapter->curr_iface_comb.sta_intf++;
                        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;
                        break;
                case NL80211_IFTYPE_ADHOC:
                        if (mwifiex_cfg80211_deinit_p2p(priv))
-- 
1.9.1

Reply via email to