mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7915: fix memory leak in mt7915_mmio_wed_init_rx_buf
Free mt76_txwi_cache pointer in mt7915_mmio_wed_init_rx_buf routine in
case of failure.
Fixes: 4f831d18d12d ("wifi: mt76: mt7915: enable WED RX support")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
822f060b9d
commit
c6794954a7
+9
-2
@@ -635,16 +635,22 @@ static u32 mt7915_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
|
||||
int token;
|
||||
void *ptr;
|
||||
|
||||
page = __dev_alloc_pages(GFP_KERNEL, get_order(length));
|
||||
if (!page)
|
||||
if (!t)
|
||||
goto unmap;
|
||||
|
||||
page = __dev_alloc_pages(GFP_KERNEL, get_order(length));
|
||||
if (!page) {
|
||||
mt76_put_rxwi(&dev->mt76, t);
|
||||
goto unmap;
|
||||
}
|
||||
|
||||
ptr = page_address(page);
|
||||
phy_addr = dma_map_single(dev->mt76.dma_dev, ptr,
|
||||
wed->wlan.rx_size,
|
||||
DMA_TO_DEVICE);
|
||||
if (unlikely(dma_mapping_error(dev->mt76.dev, phy_addr))) {
|
||||
__free_pages(page, get_order(length));
|
||||
mt76_put_rxwi(&dev->mt76, t);
|
||||
goto unmap;
|
||||
}
|
||||
|
||||
@@ -654,6 +660,7 @@ static u32 mt7915_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
|
||||
dma_unmap_single(dev->mt76.dma_dev, phy_addr,
|
||||
wed->wlan.rx_size, DMA_TO_DEVICE);
|
||||
__free_pages(page, get_order(length));
|
||||
mt76_put_rxwi(&dev->mt76, t);
|
||||
goto unmap;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user