wifi: mt76: mt7915: Fix null-ptr-deref in mt7915_mmio_wed_init()
[ Upstream commit efb95439c1477bbc955cacd0179c35e7861b437c ]
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: 4f831d18d1
("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6c81f1c781
commit
e9f9cef187
@@ -755,6 +755,9 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
|
|||||||
wed->wlan.base = devm_ioremap(dev->mt76.dev,
|
wed->wlan.base = devm_ioremap(dev->mt76.dev,
|
||||||
pci_resource_start(pci_dev, 0),
|
pci_resource_start(pci_dev, 0),
|
||||||
pci_resource_len(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.phy_base = pci_resource_start(pci_dev, 0);
|
||||||
wed->wlan.wpdma_int = pci_resource_start(pci_dev, 0) +
|
wed->wlan.wpdma_int = pci_resource_start(pci_dev, 0) +
|
||||||
MT_INT_WED_SOURCE_CSR;
|
MT_INT_WED_SOURCE_CSR;
|
||||||
@@ -782,6 +785,9 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
|
|||||||
wed->wlan.bus_type = MTK_WED_BUS_AXI;
|
wed->wlan.bus_type = MTK_WED_BUS_AXI;
|
||||||
wed->wlan.base = devm_ioremap(dev->mt76.dev, res->start,
|
wed->wlan.base = devm_ioremap(dev->mt76.dev, res->start,
|
||||||
resource_size(res));
|
resource_size(res));
|
||||||
|
if (!wed->wlan.base)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
wed->wlan.phy_base = res->start;
|
wed->wlan.phy_base = res->start;
|
||||||
wed->wlan.wpdma_int = res->start + MT_INT_SOURCE_CSR;
|
wed->wlan.wpdma_int = res->start + MT_INT_SOURCE_CSR;
|
||||||
wed->wlan.wpdma_mask = res->start + MT_INT_MASK_CSR;
|
wed->wlan.wpdma_mask = res->start + MT_INT_MASK_CSR;
|
||||||
|
Reference in New Issue
Block a user