Patchwork [U-Boot] sh_eth.c: EDMAC descriptor leak

login
register
mail settings
Submitter Yoshinori Sato
Date May 16, 2011, 5:24 a.m.
Message ID <87vcxbp69w.wl%ysato@users.sourceforge.jp>
Download mbox | patch
Permalink /patch/95675/
State Changes Requested
Delegated to: Wolfgang Denk
Headers show

Comments

Yoshinori Sato - May 16, 2011, 5:24 a.m.
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.
Wolfgang Denk - July 27, 2011, 9:19 p.m.
Dear Yoshinori Sato,

In message <87vcxbp69w.wl%ysato@users.sourceforge.jp> you wrote:
> 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

Can you please resubmit this with your Signed-off-by: line added?
Please see http://www.denx.de/wiki/U-Boot/Patches for additional help
how to create and submit patches.

Thanks.

Best regards,

Wolfgang Denk

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 = &eth->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
 	 */