" ERROR: Macros with multiple statements should be enclosed in a do - while loop" Reported by checkpath. do loop with the conditional expression set to a constant value of zero (0).This creates a loop that will execute exactly one time.This is a coding idiom that allows a multi-line macro to be used anywhere that a single statement can be used. So, enclose `gb_loopback_stats_attrs` macro in do - while (0) to fix checkpath error Signed-off-by: Menna Mahmoud <eng.mennamahmoud.mm@xxxxxxxxx> --- drivers/staging/greybus/loopback.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c index 1a61fce98056..e86d50638cb5 100644 --- a/drivers/staging/greybus/loopback.c +++ b/drivers/staging/greybus/loopback.c @@ -162,10 +162,12 @@ static ssize_t name##_avg_show(struct device *dev, \ } \ static DEVICE_ATTR_RO(name##_avg) -#define gb_loopback_stats_attrs(field) \ - gb_loopback_ro_stats_attr(field, min, u); \ - gb_loopback_ro_stats_attr(field, max, u); \ - gb_loopback_ro_avg_attr(field) +#define gb_loopback_stats_attrs(field) \ + do { \ + gb_loopback_ro_stats_attr(field, min, u); \ + gb_loopback_ro_stats_attr(field, max, u); \ + gb_loopback_ro_avg_attr(field); \ + } while (0) #define gb_loopback_attr(field, type) \ static ssize_t field##_show(struct device *dev, \ -- 2.34.1