[U-Boot-Users] [PATCH] NET: Proper return code handling in eth_init() function in file eth.c

Ben Warren biggerbadderben at gmail.com
Tue Jan 8 22:10:20 CET 2008


Stefan Roese wrote:
> On Tuesday 08 January 2008, Ben Warren wrote:
>   
>>> Probably i got the reason why this is happening. As a convention that
>>> is usually followed, the code in eth_init() function in the file eth.c
>>> was reworked to handle 0 in case of Success and any non zero value in
>>> case of an error.
>>>
>>> Most of the Ethernet driver's init routines adhere to the same
>>> convention of returning a 0 on Success and a non zero value in case of
>>> error. However, the driver you might be using, may be returning a non
>>> zero value on Successful initialization, that is why the problem is
>>> arising. The solution could be to return 0 in case of Success, from
>>> the Ethernet driver's init() routine.
>>>
>>> Thanks!!
>>>
>>> --
>>> Regards,
>>> Upakul Barkakaty
>>>       
>> Yeah, looks like ppc_4xx_eth_init() (cpu/ppc4xx/4xx_enet.c) returns 1 on
>> success and -1 on failure.  I don't have hardware to test this.  Can you
>> check it out Stefan?  Let's look through the other drivers to see if
>> this is an isolated case.
>>     
>
> I'm back now and will give it a try this evening. Thanks for pointing this 
> out.
>
> Note: This patch may trigger other platform ethernet driver problems as well. 
> So I strongly encourage all platform maintainers/custodians to check if a 
> change in the return code of the ethernet driver is needed.
>
> Best regards,
> Stefan
>   
Don't waste too  much time on this - every driver returns 1 on success.  
I'm putting together a patch to clean things up and should have it 
within an hour or so.

regards,
Ben




More information about the U-Boot mailing list