zynq_gem_remove() never frees priv->tx_bd (the buffer descriptor space)
or priv->rxbuffers, both allocated in zynq_gem_probe(), so each
remove/probe cycle leaks them. Free them.

Signed-off-by: Graeme Smecher <[email protected]>
---
 drivers/net/zynq_gem.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index 
0224b4ba245267d0514b80b6947f8010c3e5f09e..ddc83de1c1beab31d52a17f2d41f608fd92ed8e0
 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -1074,6 +1074,8 @@ static int zynq_gem_remove(struct udevice *dev)
                mdio_unregister(priv->bus);
                mdio_free(priv->bus);
        }
+       free(priv->tx_bd);
+       free(priv->rxbuffers);
 
        return 0;
 }

-- 
2.47.3

Reply via email to