wifi: mt76: mt7915: Fix null-ptr-deref in mt7915_mmio_wed_init()
authorHenry Martin <bsdhenrymartin@gmail.com>
Mon, 7 Apr 2025 06:19:00 +0000 (14:19 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 22 May 2025 10:57:36 +0000 (12:57 +0200)
devm_ioremap() returns NULL on error. Currently, mt7915_mmio_wed_init()
does not check for this case, which results in a NULL pointer
dereference.

Prevent null pointer dereference in mt7915_mmio_wed_init().

Fixes: 4f831d18d12d ("wifi: mt76: mt7915: enable WED RX support")
Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com>
Link: https://patch.msgid.link/20250407061900.85317-1-bsdhenrymartin@gmail.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/mmio.c

index 876f0692850a2e20a64e786e7820adfaca440ee9..9c4d5cea0c42e9127eba3939139cdaf54a54d655 100644 (file)
@@ -651,6 +651,9 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
                wed->wlan.base = devm_ioremap(dev->mt76.dev,
                                              pci_resource_start(pci_dev, 0),
                                              pci_resource_len(pci_dev, 0));
+               if (!wed->wlan.base)
+                       return -ENOMEM;
+
                wed->wlan.phy_base = pci_resource_start(pci_dev, 0);
                wed->wlan.wpdma_int = pci_resource_start(pci_dev, 0) +
                                      MT_INT_WED_SOURCE_CSR;
@@ -678,6 +681,9 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
                wed->wlan.bus_type = MTK_WED_BUS_AXI;
                wed->wlan.base = devm_ioremap(dev->mt76.dev, res->start,
                                              resource_size(res));
+               if (!wed->wlan.base)
+                       return -ENOMEM;
+
                wed->wlan.phy_base = res->start;
                wed->wlan.wpdma_int = res->start + MT_INT_SOURCE_CSR;
                wed->wlan.wpdma_mask = res->start + MT_INT_MASK_CSR;