mt76: dfs: run mt76x02_dfs_set_domain atomically
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Wed, 12 Dec 2018 21:51:53 +0000 (22:51 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 11 Jan 2019 14:10:17 +0000 (15:10 +0100)
Grab mt76_dev mutex in mt76x02_dfs_set_domain since it runs
concurrently with mt76x{0,2}_set_channel routines

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x02_dfs.c

index 054609c..5bd523b 100644 (file)
@@ -881,12 +881,14 @@ mt76x02_dfs_set_domain(struct mt76x02_dev *dev,
 {
        struct mt76x02_dfs_pattern_detector *dfs_pd = &dev->dfs_pd;
 
+       mutex_lock(&dev->mt76.mutex);
        if (dfs_pd->region != region) {
                tasklet_disable(&dfs_pd->dfs_tasklet);
                dfs_pd->region = region;
                mt76x02_dfs_init_params(dev);
                tasklet_enable(&dfs_pd->dfs_tasklet);
        }
+       mutex_unlock(&dev->mt76.mutex);
 }
 
 void mt76x02_regd_notifier(struct wiphy *wiphy,