summaryrefslogtreecommitdiffstats
path: root/iwlegacy-add-flush-callback.patch
diff options
context:
space:
mode:
Diffstat (limited to 'iwlegacy-add-flush-callback.patch')
-rw-r--r--iwlegacy-add-flush-callback.patch103
1 files changed, 0 insertions, 103 deletions
diff --git a/iwlegacy-add-flush-callback.patch b/iwlegacy-add-flush-callback.patch
deleted file mode 100644
index b8b656795..000000000
--- a/iwlegacy-add-flush-callback.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 70277f47b58b174a6b0b891dcd06ae5125afb73b Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-Date: Thu, 20 Dec 2012 14:31:51 +0100
-Subject: [PATCH] iwlegacy: add flush callback
-
-Dump implementation of flush, which just wait until all TX queues
-become empty.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
-Signed-off-by: John W. Linville <linville@tuxdriver.com>
----
- drivers/net/wireless/iwlegacy/3945-mac.c | 1 +
- drivers/net/wireless/iwlegacy/4965-mac.c | 1 +
- drivers/net/wireless/iwlegacy/common.c | 36 ++++++++++++++++++++++++++++++
- drivers/net/wireless/iwlegacy/common.h | 1 +
- 4 files changed, 39 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
-index d604b40..962400a 100644
---- a/drivers/net/wireless/iwlegacy/3945-mac.c
-+++ b/drivers/net/wireless/iwlegacy/3945-mac.c
-@@ -3474,6 +3474,7 @@ struct ieee80211_ops il3945_mac_ops = {
- .sta_add = il3945_mac_sta_add,
- .sta_remove = il_mac_sta_remove,
- .tx_last_beacon = il_mac_tx_last_beacon,
-+ .flush = il_mac_flush,
- };
-
- static int
-diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
-index 6a86ed4..c40020c 100644
---- a/drivers/net/wireless/iwlegacy/4965-mac.c
-+++ b/drivers/net/wireless/iwlegacy/4965-mac.c
-@@ -6308,6 +6308,7 @@ const struct ieee80211_ops il4965_mac_ops = {
- .sta_remove = il_mac_sta_remove,
- .channel_switch = il4965_mac_channel_switch,
- .tx_last_beacon = il_mac_tx_last_beacon,
-+ .flush = il_mac_flush,
- };
-
- static int
-diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c
-index 7e16d10..56b8021 100644
---- a/drivers/net/wireless/iwlegacy/common.c
-+++ b/drivers/net/wireless/iwlegacy/common.c
-@@ -4707,6 +4707,42 @@ out:
- }
- EXPORT_SYMBOL(il_mac_change_interface);
-
-+void
-+il_mac_flush(struct ieee80211_hw *hw, bool drop)
-+{
-+ struct il_priv *il = hw->priv;
-+ unsigned long timeout = jiffies + msecs_to_jiffies(500);
-+ int i;
-+
-+ mutex_lock(&il->mutex);
-+ D_MAC80211("enter\n");
-+
-+ if (il->txq == NULL)
-+ goto out;
-+
-+ for (i = 0; i < il->hw_params.max_txq_num; i++) {
-+ struct il_queue *q;
-+
-+ if (i == il->cmd_queue)
-+ continue;
-+
-+ q = &il->txq[i].q;
-+ if (q->read_ptr == q->write_ptr)
-+ continue;
-+
-+ if (time_after(jiffies, timeout)) {
-+ IL_ERR("Failed to flush queue %d\n", q->id);
-+ break;
-+ }
-+
-+ msleep(20);
-+ }
-+out:
-+ D_MAC80211("leave\n");
-+ mutex_unlock(&il->mutex);
-+}
-+EXPORT_SYMBOL(il_mac_flush);
-+
- /*
- * On every watchdog tick we check (latest) time stamp. If it does not
- * change during timeout period and queue is not empty we reset firmware.
-diff --git a/drivers/net/wireless/iwlegacy/common.h b/drivers/net/wireless/iwlegacy/common.h
-index a9a569f..37fe553 100644
---- a/drivers/net/wireless/iwlegacy/common.h
-+++ b/drivers/net/wireless/iwlegacy/common.h
-@@ -1723,6 +1723,7 @@ void il_mac_remove_interface(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif);
- int il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- enum nl80211_iftype newtype, bool newp2p);
-+void il_mac_flush(struct ieee80211_hw *hw, bool drop);
- int il_alloc_txq_mem(struct il_priv *il);
- void il_free_txq_mem(struct il_priv *il);
-
---
-1.7.7.6
-