From c81883dfce7360148c72922b93bfa16b399ee3ee Mon Sep 17 00:00:00 2001
From: "xypron.glpk@gmx.de" <xypron.glpk@gmx.de>
Date: Thu, 17 Aug 2017 18:57:36 +0200
Subject: [PATCH] efi_loader: do not cast return value in EFI_EXIT

UEFI API functions have different return types.
Some return a value of type EFI_STATUS other don't.

We therefore should not cast the return value of EFI_EXIT
to another type than the expression passed to EFI_EXIT.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 include/efi_loader.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/efi_loader.h b/include/efi_loader.h
index 037cc7c543..1179234f68 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -33,9 +33,9 @@ const char *__efi_nesting_dec(void);
  * Exit the u-boot world back to UEFI:
  */
 #define EFI_EXIT(ret) ({ \
-	efi_status_t _r = ret; \
+	typeof(ret) _r = ret; \
 	debug("%sEFI: Exit: %s: %u\n", __efi_nesting_dec(), \
-		__func__, (u32)(_r & ~EFI_ERROR_MASK)); \
+		__func__, (u32)((uintptr_t) _r & ~EFI_ERROR_MASK)); \
 	assert(__efi_exit_check()); \
 	_r; \
 	})
-- 
2.39.5