| From 1c40b007326d7b30b7373fefc14f5c3037e812b4 Mon Sep 17 00:00:00 2001 |
| From: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Date: Wed, 13 Nov 2019 16:12:02 +0900 |
| Subject: [PATCH] libfdt: define INT32_MAX and UINT32_MAX in libfdt_env.h |
| |
| commit a8de1304b7df30e3a14f2a8b9709bb4ff31a0385 upstream. |
| |
| The DTC v1.5.1 added references to (U)INT32_MAX. |
| |
| This is no problem for user-space programs since <stdint.h> defines |
| (U)INT32_MAX along with (u)int32_t. |
| |
| For the kernel space, libfdt_env.h needs to be adjusted before we |
| pull in the changes. |
| |
| In the kernel, we usually use s/u32 instead of (u)int32_t for the |
| fixed-width types. |
| |
| Accordingly, we already have S/U32_MAX for their max values. |
| So, we should not add (U)INT32_MAX to <linux/limits.h> any more. |
| |
| Instead, add them to the in-kernel libfdt_env.h to compile the |
| latest libfdt. |
| |
| Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Signed-off-by: Rob Herring <robh@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/arm/boot/compressed/libfdt_env.h b/arch/arm/boot/compressed/libfdt_env.h |
| index b36c0289a308..6a0f1f524466 100644 |
| --- a/arch/arm/boot/compressed/libfdt_env.h |
| +++ b/arch/arm/boot/compressed/libfdt_env.h |
| @@ -2,11 +2,13 @@ |
| #ifndef _ARM_LIBFDT_ENV_H |
| #define _ARM_LIBFDT_ENV_H |
| |
| +#include <linux/limits.h> |
| #include <linux/types.h> |
| #include <linux/string.h> |
| #include <asm/byteorder.h> |
| |
| -#define INT_MAX ((int)(~0U>>1)) |
| +#define INT32_MAX S32_MAX |
| +#define UINT32_MAX U32_MAX |
| |
| typedef __be16 fdt16_t; |
| typedef __be32 fdt32_t; |
| diff --git a/arch/powerpc/boot/libfdt_env.h b/arch/powerpc/boot/libfdt_env.h |
| index 2abc8e83b95e..9757d4f6331e 100644 |
| --- a/arch/powerpc/boot/libfdt_env.h |
| +++ b/arch/powerpc/boot/libfdt_env.h |
| @@ -6,6 +6,8 @@ |
| #include <string.h> |
| |
| #define INT_MAX ((int)(~0U>>1)) |
| +#define UINT32_MAX ((u32)~0U) |
| +#define INT32_MAX ((s32)(UINT32_MAX >> 1)) |
| |
| #include "of.h" |
| |
| diff --git a/include/linux/libfdt_env.h b/include/linux/libfdt_env.h |
| index edb0f0c30904..1adf54aad2df 100644 |
| --- a/include/linux/libfdt_env.h |
| +++ b/include/linux/libfdt_env.h |
| @@ -7,6 +7,9 @@ |
| |
| #include <asm/byteorder.h> |
| |
| +#define INT32_MAX S32_MAX |
| +#define UINT32_MAX U32_MAX |
| + |
| typedef __be16 fdt16_t; |
| typedef __be32 fdt32_t; |
| typedef __be64 fdt64_t; |
| -- |
| 2.7.4 |
| |