[Xenial SRU][PATCH 1/4] UBUNTU: SAUCE: Redpine: resolve race while resuming from S4

Amitkumar Karwar amitkarwar at gmail.com
Mon Mar 5 12:40:57 UTC 2018


From: Prameela Rani Garnepudi <prameela.garnepudi at redpinesignals.com>

BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1753438
BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1753439

At SDIO restore ieee80211_restart_hw() is getting called to
restart all MAC operations. This step is not required.
eturning 1 from mac80211_resume() will serve this purpose.
Above method adding up some races in calling functions because
of timing issues.

Signed-off-by: Prameela Rani Garnepudi <prameela.garnepudi at redpinesignals.com>
Signed-off-by: Amitkumar Karwar <amit.karwar at redpinesignals.com>
---
 ubuntu/rsi/rsi_91x_mac80211.c | 5 ++++-
 ubuntu/rsi/rsi_91x_sdio.c     | 2 --
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/ubuntu/rsi/rsi_91x_mac80211.c b/ubuntu/rsi/rsi_91x_mac80211.c
index 2b18259..2983c73 100644
--- a/ubuntu/rsi/rsi_91x_mac80211.c
+++ b/ubuntu/rsi/rsi_91x_mac80211.c
@@ -2463,7 +2463,10 @@ static int rsi_mac80211_resume(struct ieee80211_hw *hw)
 	if (common->hibernate_resume) {
 		if (common->reinit_hw)
 			wait_for_completion(&common->wlan_init_completion);
-		return 0;
+		/* Device need a complete restart of all MAC operations.
+		 * returning 1 will serve this purpose.
+		 */
+		return 1;
 	}
 
 #ifdef CONFIG_VEN_RSI_WOW
diff --git a/ubuntu/rsi/rsi_91x_sdio.c b/ubuntu/rsi/rsi_91x_sdio.c
index a2e25d0..49d46af 100644
--- a/ubuntu/rsi/rsi_91x_sdio.c
+++ b/ubuntu/rsi/rsi_91x_sdio.c
@@ -1506,10 +1506,8 @@ int rsi_restore(struct device *dev)
 	adapter->priv->iface_down = true;
 
 	adapter->sc_nvifs = 0;
-	rsi_mac80211_hw_scan_cancel(adapter->hw, adapter->priv->scan_vif);
 	flush_workqueue(adapter->priv->scan_workqueue);
 	ieee80211_stop_queues(adapter->hw);
-	ieee80211_restart_hw(adapter->hw);
 
 	/* Initialize device again */
 	adapter->priv->reinit_hw = true;
-- 
2.7.4





More information about the kernel-team mailing list