From b242e2b109c501365f288b7867cc85f108f2c01c Mon Sep 17 00:00:00 2001 From: Lorenzo Bianconi Date: Tue, 23 Jan 2018 10:03:24 +0100 Subject: [PATCH] mt76x2: init: disable all pending tasklets during device removal There is a possible race in mt76x2_stop_hardware() since pre_tbtt and dfs tasklets could run during driver cleanup. Fix it disabling all pending tasklets during device removal Signed-off-by: Lorenzo Bianconi --- mt76x2_init.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mt76x2_init.c b/mt76x2_init.c index 1223ba8b..cb546a33 100644 --- a/mt76x2_init.c +++ b/mt76x2_init.c @@ -621,6 +621,8 @@ void mt76x2_stop_hardware(struct mt76x2_dev *dev) void mt76x2_cleanup(struct mt76x2_dev *dev) { + tasklet_disable(&dev->dfs_pd.dfs_tasklet); + tasklet_disable(&dev->pre_tbtt_tasklet); mt76x2_stop_hardware(dev); mt76x2_dma_cleanup(dev); mt76x2_mcu_cleanup(dev);