[U-Boot] [PATCH] [v4] powerpc/85xx: fix compatible property for the L2 cache node
Wolfgang Denk
wd at denx.de
Sat Apr 30 00:21:31 CEST 2011
Dear Timur Tabi,
In message <1304113875-6749-1-git-send-email-timur at freescale.com> you wrote:
> The compatible property for the L2 cache node (on 85xx systems that don't
> have a CPC) was using a value for the property length that did not match
> the actual length of the property.
>
> Signed-off-by: Timur Tabi <timur at freescale.com>
> ---
> arch/powerpc/cpu/mpc85xx/fdt.c | 20 ++++++++++++--------
> 1 files changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/arch/powerpc/cpu/mpc85xx/fdt.c b/arch/powerpc/cpu/mpc85xx/fdt.c
> index 642f6c5..121db5f 100644
> --- a/arch/powerpc/cpu/mpc85xx/fdt.c
> +++ b/arch/powerpc/cpu/mpc85xx/fdt.c
> @@ -165,7 +165,6 @@ static inline void ft_fixup_l2cache(void *blob)
> int len, off;
> u32 *ph;
> struct cpu_type *cpu = identify_cpu(SVR_SOC_VER(get_svr()));
> - char compat_buf[38];
>
> const u32 line_size = 32;
> const u32 num_ways = 8;
> @@ -192,22 +191,27 @@ static inline void ft_fixup_l2cache(void *blob)
> }
>
> if (cpu) {
> + char buf[40];
> +
> if (isdigit(cpu->name[0]))
> - len = sprintf(compat_buf,
> - "fsl,mpc%s-l2-cache-controller", cpu->name);
> + /* MPCxxxx, where xxxx == 4-digit number */
> + len = sprintf(buf, "fsl,mpc%s-l2-cache-controller",
> + cpu->name) + 1;
> else
> - len = sprintf(compat_buf,
> - "fsl,%c%s-l2-cache-controller",
> - tolower(cpu->name[0]), cpu->name + 1);
> + /* Pxxxx or Txxxx, where xxxx == 4-digit number */
> + len = sprintf(buf, "fsl,%c%s-l2-cache-controller",
> + tolower(cpu->name[0]), cpu->name + 1) + 1;
Why do we need this "if" at all? tolower() on a digit is a nop, so you
can omit the first branch.
> + /* append "cache" to the string */
> + len += sprintf(buf + len, "cache") + 1;
This is wrong and misleading. This is not an operation on a C string.
You do not "append" (or concatenate) the string cache. You build a
specifically structured data set, which is not a C string. So please
don't call it a string.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Speculation is always more interesting than facts.
- Terry Pratchett, _Making_Money_
More information about the U-Boot
mailing list