[U-Boot] [PATCH 2/8] dm: core: remove meaningless if conditional
Masahiro Yamada
yamada.m at jp.panasonic.com
Mon Nov 17 12:19:34 CET 2014
Hi Simon,
On Mon, 17 Nov 2014 09:14:15 +0000
Simon Glass <sjg at chromium.org> wrote:
> Hi Masahiro,
>
> On 17 November 2014 08:19, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
> > If the variable "ret" is equal to "-ENOENT", it is trapped at [1] and
> > never reaches [2]. At [3], the condition "ret != -ENOENT" is always
> > true.
> >
> > if (ret == -ENOENT) { <------------------ [1]
> > continue;
> > } else if (ret == -ENODEV) {
> > dm_dbg("Device '%s' has no compatible string\n", name);
> > break;
> > } else if (ret) { <------------------ [2]
> > dm_warn("Device tree error at offset %d\n", offset);
> > if (!result || ret != -ENOENT) <------------------ [3]
> > result = ret;
> > break;
> > }
> >
> > Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
> > ---
> >
> > drivers/core/lists.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/core/lists.c b/drivers/core/lists.c
> > index 3a1ea85..0aad56d 100644
> > --- a/drivers/core/lists.c
> > +++ b/drivers/core/lists.c
> > @@ -136,8 +136,7 @@ int lists_bind_fdt(struct udevice *parent, const void *blob, int offset,
> > break;
> > } else if (ret) {
> > dm_warn("Device tree error at offset %d\n", offset);
> > - if (!result || ret != -ENOENT)
> > - result = ret;
> > + result = ret;
>
> Thanks for the clear explanation.
> It looks good, except my intent was to return the first error, hence
> the 'if (!result ...'.
>
> Your code will return the last error. Can we preserve the current bahaviour?
Do you mean, like this?
dm_warn("Device tree error at offset %d\n", offset);
if (!result)
result = ret;
break;
I think there is no difference in the behaviour, because
this "for" loop is escaped out at the first encounter with an error
except -ENOENT.
Here is the only line to set "result" and it is followed by "break" statement,
so the last error is also the first error, I think.
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list