summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng <[email protected]>2018-06-22 01:38:27 -0700
committerBin Meng <[email protected]>2018-06-24 08:56:04 +0800
commit5460fd076263a461442e4beb3215466536166026 (patch)
treef425583f067ddc31756da03742ae08b9ae63a692
parent018664464628686d41f3d36e5428bb50d9094977 (diff)
x86: Change __kernel_size_t conditionals to use compiler provided defines
Since commit bb0bb91cf0aa ("efi_stub: Use efi_uintn_t"), EFI x86 64-bit payload does not work anymore. The call to GetMemoryMap() in efi_stub.c fails with return code EFI_INVALID_PARAMETER. Since the payload itself is still 32-bit U-Boot, efi_uintn_t gets wrongly interpreted as int, but it should actually be long in a 64-bit EFI environment. This changes the x86 __kernel_size_t conditionals to use compiler provided defines instead. That way we always adhere to the build environment we're in and the definitions adjust automatically. Fixes: bb0bb91cf0aa ("efi_stub: Use efi_uintn_t") Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Simon Glass <[email protected]>
-rw-r--r--arch/x86/include/asm/posix_types.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/include/asm/posix_types.h b/arch/x86/include/asm/posix_types.h
index 717f6cb8e01..dbcea7f47ff 100644
--- a/arch/x86/include/asm/posix_types.h
+++ b/arch/x86/include/asm/posix_types.h
@@ -16,7 +16,8 @@ typedef int __kernel_pid_t;
typedef unsigned short __kernel_ipc_pid_t;
typedef unsigned short __kernel_uid_t;
typedef unsigned short __kernel_gid_t;
-#if CONFIG_IS_ENABLED(X86_64)
+/* checking against __x86_64__ covers both 64-bit EFI stub and 64-bit U-Boot */
+#if defined(__x86_64__)
typedef unsigned long __kernel_size_t;
typedef long __kernel_ssize_t;
#else