[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