mt76: mt7915: fix possible NULL pointer dereference in mt7915_register_ext_phy
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 22 May 2020 07:26:06 +0000 (09:26 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 28 May 2020 15:57:24 +0000 (17:57 +0200)
Fix a NULL pointer dereference in mt7915_register_ext_phy since phy
data structure is allocated by mt76_alloc_phy routine

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/init.c

index 6f200ab..aadf56e 100644 (file)
@@ -592,7 +592,6 @@ int mt7915_register_ext_phy(struct mt7915_dev *dev)
        if (phy)
                return 0;
 
-       INIT_DELAYED_WORK(&phy->mac_work, mt7915_mac_work);
        mt7915_cap_dbdc_enable(dev);
        mphy = mt76_alloc_phy(&dev->mt76, sizeof(*phy), &mt7915_ops);
        if (!mphy)
@@ -605,6 +604,8 @@ int mt7915_register_ext_phy(struct mt7915_dev *dev)
        mphy->antenna_mask = BIT(hweight8(phy->chainmask)) - 1;
        mt7915_init_wiphy(mphy->hw);
 
+       INIT_DELAYED_WORK(&phy->mac_work, mt7915_mac_work);
+
        /*
         * Make the secondary PHY MAC address local without overlapping with
         * the usual MAC address allocation scheme on multiple virtual interfaces