From: Chenguang Zhao gen_pool_free() expects the virtual address returned by gen_pool_dma_alloc(), not the physical address. Passing phys can miss the chunk and trigger BUG() on remove or probe rollback. Fixes: dc35a10f68d3 ("net: mvneta: bm: add support for hardware buffer management") Signed-off-by: Chenguang Zhao --- drivers/net/ethernet/marvell/mvneta_bm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/marvell/mvneta_bm.c b/drivers/net/ethernet/marvell/mvneta_bm.c index 6bb380494919..2a114a69a0ab 100644 --- a/drivers/net/ethernet/marvell/mvneta_bm.c +++ b/drivers/net/ethernet/marvell/mvneta_bm.c @@ -389,7 +389,7 @@ static int mvneta_bm_get_sram(struct device_node *dn, static void mvneta_bm_put_sram(struct mvneta_bm *priv) { - gen_pool_free(priv->bppi_pool, priv->bppi_phys_addr, + gen_pool_free(priv->bppi_pool, (unsigned long)priv->bppi_virt_addr, MVNETA_BM_BPPI_SIZE); } -- 2.25.1