[U-Boot-Users] Possible memory leak in cpu/ppc4xx/4xx_enet.c

Dave Littell littelld at verizon.net
Sat Mar 15 16:12:45 CET 2008


Stefan Roese wrote:
> Dave,
> 
> On Saturday 15 March 2008, Dave Littell wrote:
>> I've seen an issue with my 1.3.1-based port of U-Boot where a relatively
>> large number of pings issued from the command line will ultimately fail
>> with the message:
>>
>> Cannot allocate private hw data for eth_device...
>>
>> I looked around this message and it seems that ppc_4xx_eth_initialize()
>> malloc()’s a EMAC_4XX_HW_PST structure and assigns it to dev->priv.
>> However, nothing ever frees this buffer so standing on a ping will
>> ultimately pull down all the available memory.
> 
> Hmmm. IIRC ppc_4xx_eth_initialize() is only called once upon bootup for 
> ethernet driver initialization. The function called each time before network 
> action is ppc_4xx_eth_init().
> 

It looks like ppc_4xx_eth_initialize() is called from eth_init() and
ppc_4xx_eth_init() is only called if there's an emac0_dev.

Hm?

>> One fix might be to free( dev->priv ) at the end of ppc_4xx_eth_halt().
>>  I tried this today and noted no ill effects.
> 
> So did it work for you?
> 

It seems to be working well.


Thanks,
Dave




More information about the U-Boot mailing list