2019-11-20 12:19:30

by Markus Theil

[permalink] [raw]
Subject: [PATCH] mt76: use rcu_read_lock_bh in mt76u_rx_tasklet

Fixes potential RCU issues and avoids calling ieee80211_rx_napi with softirq
enabled.

Signed-off-by: Markus Theil <[email protected]>
---
drivers/net/wireless/mediatek/mt76/usb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/mediatek/mt76/usb.c b/drivers/net/wireless/mediatek/mt76/usb.c
index 0ad83fb5fd38..1cfbb41f7a36 100644
--- a/drivers/net/wireless/mediatek/mt76/usb.c
+++ b/drivers/net/wireless/mediatek/mt76/usb.c
@@ -549,7 +549,7 @@ static void mt76u_rx_tasklet(unsigned long data)
struct urb *urb;
int err, count;

- rcu_read_lock();
+ rcu_read_lock_bh();

while (true) {
urb = mt76u_get_next_rx_entry(dev);
@@ -566,7 +566,7 @@ static void mt76u_rx_tasklet(unsigned long data)
}
mt76_rx_poll_complete(dev, MT_RXQ_MAIN, NULL);

- rcu_read_unlock();
+ rcu_read_unlock_bh();
}

static int mt76u_submit_rx_buffers(struct mt76_dev *dev)
--
2.24.0