Commit 237d29f6 authored by Igor Mitsyanko's avatar Igor Mitsyanko Committed by Kalle Valo

qtnfmac: do not use bus mutex for events processing

Events processing requires locking of bus mutex, which is also used by
cfg80211 layer before calling several of cfg80211 callbacks. Since all
cfg80211 callbacks in qtnfmac driver also lock bus mutex, this
potentially may lead to a deadlock.

Do not use bus lock for event processing. Use RTNL lock instead to
serialize events and commands processing threads.
Signed-off-by: default avatarIgor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent f2cddd54
...@@ -541,9 +541,9 @@ static int qtnf_event_process_skb(struct qtnf_bus *bus, ...@@ -541,9 +541,9 @@ static int qtnf_event_process_skb(struct qtnf_bus *bus,
if (unlikely(!mac)) if (unlikely(!mac))
return -ENXIO; return -ENXIO;
qtnf_bus_lock(bus); rtnl_lock();
res = qtnf_event_parse(mac, skb); res = qtnf_event_parse(mac, skb);
qtnf_bus_unlock(bus); rtnl_unlock();
return res; return res;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment