mt76: mt7615: add missing bh-disable around rx napi schedule
authorFelix Fietkau <nbd@nbd.name>
Thu, 2 Jun 2022 19:44:21 +0000 (21:44 +0200)
committerFelix Fietkau <nbd@nbd.name>
Mon, 11 Jul 2022 11:40:01 +0000 (13:40 +0200)
napi_schedule() can call __raise_softirq_irqoff(), which can perform softirq
handling, so it must not be called in a pure process context with BH enabled.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/mac.c

index bd687f7de628934e380e81e798ae98703e6f28ff..f26213c4e64cf6ef834a285e52ab5a60283fc4ba 100644 (file)
@@ -2094,8 +2094,10 @@ void mt7615_pm_wake_work(struct work_struct *work)
                        mt76_connac_pm_dequeue_skbs(mphy, &dev->pm);
                        mt76_worker_schedule(&mdev->sdio.txrx_worker);
                } else {
+                       local_bh_disable();
                        mt76_for_each_q_rx(mdev, i)
                                napi_schedule(&mdev->napi[i]);
+                       local_bh_enable();
                        mt76_connac_pm_dequeue_skbs(mphy, &dev->pm);
                        mt76_queue_tx_cleanup(dev, mdev->q_mcu[MT_MCUQ_WM],
                                              false);