summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mediatek/mt76/mt76.h
diff options
context:
space:
mode:
authorFelix Fietkau2018-04-25 11:11:21 +0200
committerKalle Valo2018-04-30 12:21:27 +0200
commitc3d7c82a8bb017e43cafe8eaf7c8309f85ceb781 (patch)
tree08034ee5b1b7e346957224a0a66e169086bf09cc /drivers/net/wireless/mediatek/mt76/mt76.h
parentmt76x2: fix is_mt7612 routine (diff)
downloadkernel-qcow2-linux-c3d7c82a8bb017e43cafe8eaf7c8309f85ceb781.tar.gz
kernel-qcow2-linux-c3d7c82a8bb017e43cafe8eaf7c8309f85ceb781.tar.xz
kernel-qcow2-linux-c3d7c82a8bb017e43cafe8eaf7c8309f85ceb781.zip
mt76: fix concurrent rx calls on A-MPDU release
Add a spinlock in mt76_rx_complete. Without this, multiple stats updates could happen in parallel, which can lead to deadlocks. There are probably more corner cases fixed by this change. Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt76.h')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index 065ff78059c3..a74e6eef51e9 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -241,6 +241,7 @@ struct mt76_dev {
struct device *dev;
struct net_device napi_dev;
+ spinlock_t rx_lock;
struct napi_struct napi[__MT_RXQ_MAX];
struct sk_buff_head rx_skb[__MT_RXQ_MAX];