From patchwork Sat Mar 7 20:31:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 243358 List-Id: U-Boot discussion From: xypron.glpk at gmx.de (Heinrich Schuchardt) Date: Sat, 7 Mar 2020 21:31:17 +0100 Subject: [PATCH v2 1/1] image.h: use uint32_t instead of u32 in android_image_get_dtb* In-Reply-To: <20200307125217.GA8620@erosca> References: <20200307095344.9016-1-xypron.glpk@gmx.de> <20200307125217.GA8620@erosca> Message-ID: <5cc7c9e5-7d62-1fb0-9c03-f1bd946b5905@gmx.de> On 3/7/20 1:52 PM, Eugeniu Rosca wrote: > 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 >> >> 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 >> Cc: Sam Protsenko >> Fixes: 7f2531502c74c0 ("image: android: Add routine to get dtbo params") >> Fixes: c3bfad825a71ea ("image: android: Add functions for handling dtb field") >> Suggested-by: Masahiro Yamada >> Signed-off-by: Eugeniu Rosca >> >> Change the function parameters in the implementation to match the >> declaration in the header. >> Signed-off-by: Heinrich Schuchardt >> --- >> 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_t") > The change below also avoids build failures related to u32: Whichever way you want to go we should finalize the topic as it stops EFI patches from being merged. Best regards Heinrich diff --git a/include/compiler.h b/include/compiler.h index ed74c272b8..730932ac62 100644 --- a/include/compiler.h +++ b/include/compiler.h @@ -64,6 +64,7 @@ typedef uint8_t __u8; typedef uint16_t __u16; typedef uint32_t __u32; +typedef uint32_t u32; typedef unsigned int uint; typedef unsigned long ulong;