mwifiex: fix p2p device doesn't find in scan problem
authorKarthik D A <karthida@marvell.com>
Wed, 28 Sep 2016 12:48:28 +0000 (18:18 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Dec 2018 08:44:24 +0000 (09:44 +0100)
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/marvell/mwifiex/cfg80211.c

index 2054948..4da3541 100644 (file)
@@ -1209,6 +1209,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))