[PATCH v2 1/1] image.h: use uint32_t instead of u32 in android_image_get_dtb*

Eugeniu Rosca roscaeugeniu at gmail.com
Sat Mar 7 13:52:17 CET 2020


Hello Heinrich,

Thank you for your perseverance.
I was just about to reply in https://patchwork.ozlabs.org/patch/1239098.

On Sat, Mar 07, 2020 at 10:53:44AM +0100, Heinrich Schuchardt wrote:
> From: Eugeniu Rosca <erosca at de.adit-jv.com>
> 
> Replace 'u32' by 'uint32_t' in image.h, since the former may lead to
> build failures in U-Boot tooling (see [1]).
> 
> Avoid using 'uint', since it is not a fixed-width type [2], potentially
> leading to a dangerous mismatch between the prototypes and definitions
> of the android_image_get_dtb* functions.
> 
> This should be the quickest way to overcome the tooling build failure,
> with more future-proof solutions being proposed by Yamada-san in [1].
> 
> [1] https://patchwork.ozlabs.org/patch/1238245/
> [2] Excerpt from https://en.cppreference.com/w/cpp/language/types
>  -----------8<------------
>  Type specifier    Width in bits by data model
>                    LP32  ILP32  LLP64  LP64
>  unsigned int      16    32     32     32
>  -----------8<------------
> 
> Cc: Tom Rini <trini at konsulko.com>
> Cc: Sam Protsenko <joe.skb7 at gmail.com>
> Fixes: 7f2531502c74c0 ("image: android: Add routine to get dtbo params")
> Fixes: c3bfad825a71ea ("image: android: Add functions for handling dtb field")
> Suggested-by: Masahiro Yamada <masahiroy at kernel.org>
> Signed-off-by: Eugeniu Rosca <erosca at de.adit-jv.com>
> 
> Change the function parameters in the implementation to match the
> declaration in the header.
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
> v2:
> 	Change the function parameters in the implementation to match the
> 	declaration in the header.
> ---
>  common/image-android.c | 6 +++---
>  include/image.h        | 6 +++---
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/common/image-android.c b/common/image-android.c
> index 6af9baa121..3c3600b6f9 100644
> --- a/common/image-android.c
> +++ b/common/image-android.c
> @@ -216,7 +216,7 @@ int android_image_get_second(const struct andr_img_hdr *hdr,
>   *
>   * Return: true on success or false on error.
>   */
> -bool android_image_get_dtbo(ulong hdr_addr, ulong *addr, u32 *size)
> +bool android_image_get_dtbo(ulong hdr_addr, ulong *addr, uint32_t *size)

I don't think it is a good idea to start making a soup of types in
Android code and, more generically, anywhere in U-Boot.

Starting with v4.2 commit [*], Linux formally prefers the
{u,s}{8,16,32,64} types. Since U-Boot benefits from the Linux alignment
in pretty much all subsystems, why not trying to follow the same policy?

Do you happen to see any alternative approach to this patch in the list
of options provided by Yamada-san in
https://patchwork.ozlabs.org/patch/1238245/#2363340 ?

[*] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e6176fa4728fb6d
("checkpatch: add --strict warning for c99 fixed size typedefs : int<size>_t")

-- 
Best Regards
Eugeniu Rosca


More information about the U-Boot mailing list