Re: [PATCH] staging: greybus: put macro in a do - while loop

From: Greg KH
Date: Sun Feb 25 2024 - 03:56:10 EST


On Sun, Feb 25, 2024 at 02:10:17PM +0530, Dileep Sankhla wrote:
> Enclose the macro gb_loopback_stats_attrs defined with multiple
> replacement statements in a do - while loop. This avoids possible
> if/else logic defects and clears a checkpatch error.
>
> ERROR: Macros with multiple statements should be enclosed in a do -
> while loop
>
> Signed-off-by: Dileep Sankhla <dileepsankhla.ds@xxxxxxxxx>
> ---
> drivers/staging/greybus/loopback.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c
> index bb33379b5297..eb5a7a20f5a3 100644
> --- a/drivers/staging/greybus/loopback.c
> +++ b/drivers/staging/greybus/loopback.c
> @@ -162,9 +162,11 @@ 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)
> + 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)

Did you test build this?

> #define gb_loopback_attr(field, type) \
> static ssize_t field##_show(struct device *dev, \

Why did you only change one if you thought this was a valid change?

thanks,

greg k-h