[U-Boot-Users] What if eth_init() fails?
Detlev Zundel
dzu at denx.de
Fri Nov 16 17:27:53 CET 2007
Hi,
>> --- u-boot-1.2.0_orig/net/net.c 2007-01-07 04:43:11.000000000 +0530
>> +++ u-boot-1.2.0/net/net.c 2007-11-14 18:03:03.000000000 +0530
>> @@ -305,7 +305,7 @@
>> #ifdef CONFIG_NET_MULTI
>> eth_set_current();
>> #endif
>> - if (eth_init(bd) < 0) {
>> + if (eth_init(bd) > 0) {
>> eth_halt();
>> return(-1);
>> }
>
> Secondly and more important, did you test this? I'd say your test is
> the wrong way round, i.e. eth_init returns true in the C sense (!=0)
> if it was able to initialize an interface. (This also chimes with the
> naming of the function by the way). So I'd propose to go for
> "!eth_init(..)".
Thinking about this somemore, I am now convinced that the problem
should not be fixed at the caller but in eth_init. Testing for <0 is
a pretty idiomatic test for errors, so we should rather adjust
eth_init to fit this idiom than spreading "aberrant" behaviour.
Cheers
Detlev
--
Computers are useless. They can only give you answers.
-- Pablo Picasso
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
More information about the U-Boot
mailing list