From bb4ae07417c9b3be1af500a62514a2d42467cfb0 Mon Sep 17 00:00:00 2001 From: Lee Leahy Date: Tue, 7 Mar 2017 12:01:02 -0800 Subject: [PATCH] src/include: Add do { } while(0) around macros Fix the following error detected by checkpatch.py: ERROR: Macros with multiple statements should be enclosed in a do - while loop False positives are generated when assembly code is used in a macro. An example is: ERROR: Macros with multiple statements should be enclosed in a do - while loop +#define post_code(value) \ + movb $value, %al; \ + outb %al, $CONFIG_POST_IO_PORT False positives are also generated for linker script include files. An example is: ERROR: Macros with multiple statements should be enclosed in a do - while loop +#define SET_COUNTER(name, addr) \ + _ = ASSERT(. <= addr, STR(name overlaps the previous region!)); \ + . = addr; False positives are also generated for attribute macros. An example is: ERROR: Macros with multiple statements should be enclosed in a do - while loop +#define DISABLE_TRACE_ON_FUNCTION __attribute__ ((no_instrument_function)); TEST=Build and run on Galileo Gen2 Change-Id: I88abf96579e906f6962d558a3d09907f07d00b1c Signed-off-by: Lee Leahy Reviewed-on: https://review.coreboot.org/18644 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- src/include/bootstate.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/include/bootstate.h b/src/include/bootstate.h index 481a8bc54a..8f2f8b8f71 100644 --- a/src/include/bootstate.h +++ b/src/include/bootstate.h @@ -124,8 +124,10 @@ struct boot_state_callback { #if IS_ENABLED(CONFIG_DEBUG_BOOT_STATE) #define BOOT_STATE_CALLBACK_LOC __FILE__ ":" STRINGIFY(__LINE__) #define BOOT_STATE_CALLBACK_INIT_DEBUG .location = BOOT_STATE_CALLBACK_LOC, -#define INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \ - bscb_->location = BOOT_STATE_CALLBACK_LOC; +#define INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \ + do { \ + bscb_->location = BOOT_STATE_CALLBACK_LOC; \ + } while (0) #else #define BOOT_STATE_CALLBACK_INIT_DEBUG #define INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) @@ -144,9 +146,11 @@ struct boot_state_callback { /* Initialize an allocated boot_state_callback. */ #define INIT_BOOT_STATE_CALLBACK(bscb_, func_, arg_) \ - INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \ - bscb_->callback = func_; \ - bscb_->arg = arg_ + do { \ + INIT_BOOT_STATE_CALLBACK_DEBUG(bscb_) \ + bscb_->callback = func_; \ + bscb_->arg = arg_ \ + } while(0) /* The following 2 functions schedule a callback to be called on entry/exit * to a given state. Note that there are no ordering guarantees between the