From b3a29655ae0bb1d75fc7f9cbebb9f37ebe3d341d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 3 Apr 2019 11:12:29 +0200 Subject: [PATCH] mt76x02: fix crash on device reset Tasklets must not be reinitialized after being scheduled Signed-off-by: Felix Fietkau --- mt76x02_mmio.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mt76x02_mmio.c b/mt76x02_mmio.c index 1a8857178..15b47f810 100644 --- a/mt76x02_mmio.c +++ b/mt76x02_mmio.c @@ -92,9 +92,6 @@ void mt76x02e_init_beacon_config(struct mt76x02_dev *dev) }; dev->beacon_ops = &beacon_ops; - tasklet_init(&dev->pre_tbtt_tasklet, mt76x02_pre_tbtt_tasklet, - (unsigned long)dev); - /* Fire a pre-TBTT interrupt 8 ms before TBTT */ mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_PRE_TBTT, 8 << 4); mt76_rmw_field(dev, MT_INT_TIMER_CFG, MT_INT_TIMER_CFG_GP_TIMER, @@ -201,6 +198,8 @@ int mt76x02_dma_init(struct mt76x02_dev *dev) tasklet_init(&dev->mt76.tx_tasklet, mt76x02_tx_tasklet, (unsigned long) dev); + tasklet_init(&dev->pre_tbtt_tasklet, mt76x02_pre_tbtt_tasklet, + (unsigned long)dev); spin_lock_init(&dev->txstatus_fifo_lock); kfifo_init(&dev->txstatus_fifo, status_fifo, fifo_size);