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

-- 
Yoshinori Sato
<ys...@users.sourceforge.jp>
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to