[U-Boot] [PATCH 1/4] efi_loader: only evaluate EFI_EXIT()'s ret once

Rob Clark
2017-07-27T12:04:16Z

There are a couple spots doing things like:

return EFI_EXIT(some_fxn(...));

which I handn't noticed before. With addition of printing return value
in the EFI_EXIT() macro, now the fxn call was getting evaluated twice.
Which we didn't really want.

Signed-off-by: Rob Clark <robdclark@gmail.com>
---
include/efi_loader.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/efi_loader.h b/include/efi_loader.h
index f384cbbe77..9700a88d69 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -21,8 +21,9 @@
} while(0)

#define EFI_EXIT(ret) ({ \
- debug("EFI: Exit: %s: %u\n", __func__, (u32)((ret) & ~EFI_ERROR_MASK)); \
- efi_exit_func(ret); \
+ efi_status_t _r = ret; \
+ debug("EFI: Exit: %s: %u\n", __func__, (u32)(_r & ~EFI_ERROR_MASK)); \
+ efi_exit_func(_r); \
})

extern struct efi_runtime_services efi_runtime_services;
--
2.13.0