Skip to content

Commit def34a2

Browse files
LorenzoBianconinbd168
authored andcommitted
mt76: introduce mt76_free_device routine
Move mt76_tx_free in mt76_free_device routine in order to unmap all txwi descriptors at module unload Signed-off-by: Lorenzo Bianconi <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
1 parent e5fc742 commit def34a2

File tree

5 files changed

+11
-4
lines changed

5 files changed

+11
-4
lines changed

drivers/net/wireless/mediatek/mt76/mac80211.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,10 +369,16 @@ void mt76_unregister_device(struct mt76_dev *dev)
369369

370370
mt76_tx_status_check(dev, NULL, true);
371371
ieee80211_unregister_hw(hw);
372-
mt76_tx_free(dev);
373372
}
374373
EXPORT_SYMBOL_GPL(mt76_unregister_device);
375374

375+
void mt76_free_device(struct mt76_dev *dev)
376+
{
377+
mt76_tx_free(dev);
378+
ieee80211_free_hw(dev->hw);
379+
}
380+
EXPORT_SYMBOL_GPL(mt76_free_device);
381+
376382
void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb)
377383
{
378384
if (!test_bit(MT76_STATE_RUNNING, &dev->state)) {

drivers/net/wireless/mediatek/mt76/mt76.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,7 @@ struct mt76_dev *mt76_alloc_device(struct device *pdev, unsigned int size,
605605
int mt76_register_device(struct mt76_dev *dev, bool vht,
606606
struct ieee80211_rate *rates, int n_rates);
607607
void mt76_unregister_device(struct mt76_dev *dev);
608+
void mt76_free_device(struct mt76_dev *dev);
608609

609610
struct dentry *mt76_register_debugfs(struct mt76_dev *dev);
610611
void mt76_seq_puts_array(struct seq_file *file, const char *str,

drivers/net/wireless/mediatek/mt76/mt7603/init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,5 +576,5 @@ void mt7603_unregister_device(struct mt7603_dev *dev)
576576
mt76_unregister_device(&dev->mt76);
577577
mt7603_mcu_exit(dev);
578578
mt7603_dma_cleanup(dev);
579-
ieee80211_free_hw(mt76_hw(dev));
579+
mt76_free_device(&dev->mt76);
580580
}

drivers/net/wireless/mediatek/mt76/mt76x0/pci.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ mt76x0e_remove(struct pci_dev *pdev)
234234

235235
mt76_unregister_device(mdev);
236236
mt76x0e_cleanup(dev);
237-
ieee80211_free_hw(mdev->hw);
237+
mt76_free_device(mdev);
238238
}
239239

240240
static const struct pci_device_id mt76x0e_device_table[] = {

drivers/net/wireless/mediatek/mt76/mt76x2/pci.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ mt76pci_remove(struct pci_dev *pdev)
107107

108108
mt76_unregister_device(mdev);
109109
mt76x2_cleanup(dev);
110-
ieee80211_free_hw(mdev->hw);
110+
mt76_free_device(mdev);
111111
}
112112

113113
MODULE_DEVICE_TABLE(pci, mt76pci_device_table);

0 commit comments

Comments
 (0)