summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-02-09 03:11:31 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-09 03:11:31 -0800
commit87bd99f17946481ecd6687bbec676646febcf3c7 (patch)
tree6e303253417fffc317b20a0f96c612e35a62020d
parent74755245cdd1607a4f0a1261f570f4ea818416cb (diff)
parent66c8f9ed278d4221be71a23b0f853c0ddd67679f (diff)
Merge "wil6210: protect list of pending wmi events during flush"
-rw-r--r--drivers/net/wireless/ath/wil6210/wmi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c
index 09595349f24b..0bddc9d9c632 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -1721,14 +1721,19 @@ int wmi_abort_scan(struct wil6210_priv *wil)
void wmi_event_flush(struct wil6210_priv *wil)
{
+ ulong flags;
struct pending_wmi_event *evt, *t;
wil_dbg_wmi(wil, "%s()\n", __func__);
+ spin_lock_irqsave(&wil->wmi_ev_lock, flags);
+
list_for_each_entry_safe(evt, t, &wil->pending_wmi_ev, list) {
list_del(&evt->list);
kfree(evt);
}
+
+ spin_unlock_irqrestore(&wil->wmi_ev_lock, flags);
}
static bool wmi_evt_call_handler(struct wil6210_priv *wil, int id,