[U-Boot] [PATCH] sh_eth.c: EDMAC descriptor leak
Yoshinori Sato
ysato at users.sourceforge.jp
Mon May 16 07:24:11 CEST 2011
Hi,
I found memory leak in sh_eth.c.
sh_eth_desc_init call for many times in network problem.
And it every time allocate new descriptor. So leak old descriptor.
I will fix this patch.
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index 17dd0d2..f805785 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -313,6 +313,9 @@ static int sh_eth_tx_desc_init(struct sh_eth_dev *eth)
struct sh_eth_info *port_info = ð->port_info[port];
struct tx_desc_s *cur_tx_desc;
+ if (port_info->tx_desc_malloc)
+ /* Already allocated. re-using it */
+ return 0;
/*
* Allocate tx descriptors. They must be TX_DESC_SIZE bytes aligned
*/
@@ -365,6 +368,9 @@ static int sh_eth_rx_desc_init(struct sh_eth_dev *eth)
u32 tmp_addr;
u8 *rx_buf;
+ if (port_info->rx_desc_malloc)
+ /* Already allocated. re-using it */
+ return 0;
/*
* Allocate rx descriptors. They must be RX_DESC_SIZE bytes aligned
*/
--
Yoshinori Sato
<ysato at users.sourceforge.jp>
More information about the U-Boot
mailing list