[U-Boot] [PATCH] Add some missing endian conversions in fdt_support.c

Gabe Black gabeblack at chromium.org
Sun Nov 13 03:07:52 CET 2011


Bump.

On Tue, Nov 8, 2011 at 5:47 AM, Mike Frysinger <vapier at gentoo.org> wrote:

> +fdt maintainer
>
> On Tuesday 08 November 2011 04:05:32 Gabe Black wrote:
> > Some functions in fdt_support.c use fdt_getprop to read 32 bit values out
> > of the device tree, but then use them directly without doing any endian
> > conversion. Because they check for a value that doesn't actually appear
> in
> > practice, the functions continued to work even though they're incorrect.
> > This change adds the missing conversions.
> >
> > Signed-off-by: Gabe Black <gabeblack at chromium.org>
> > ---
> >  common/fdt_support.c |    4 ++--
> >  1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/common/fdt_support.c b/common/fdt_support.c
> > index bdda64d..c501604 100644
> > --- a/common/fdt_support.c
> > +++ b/common/fdt_support.c
> > @@ -61,7 +61,7 @@ u32 fdt_getprop_u32_default(void *fdt, const char
> *path,
> > const char *prop,
> >
> >       val = fdt_getprop(fdt, off, prop, NULL);
> >       if (val)
> > -             return *val;
> > +             return fdt32_to_cpu(*val);
> >       else
> >               return dflt;
> >  }
> > @@ -372,7 +372,7 @@ static int get_cells_len(void *blob, char
> > *nr_cells_name) const u32 *cell;
> >
> >       cell = fdt_getprop(blob, 0, nr_cells_name, NULL);
> > -     if (cell && *cell == 2)
> > +     if (cell && fdt32_to_cpu(*cell) == 2)
> >               return 8;
> >
> >       return 4;
>


More information about the U-Boot mailing list