From: Menna Mahmoud <eng.mennamahmoud.mm@gmail.com>
To: Alex Elder <elder@ieee.org>, outreachy@lists.linux.dev
Cc: pure.logic@nexus-software.ie, johan@kernel.org, elder@kernel.org,
gregkh@linuxfoundation.org, greybus-dev@lists.linaro.org,
linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] staging: greybus: eclose macro in a do - while loop
Date: Sun, 12 Mar 2023 15:43:49 +0200 [thread overview]
Message-ID: <f6e87327-856d-7bfe-bbc8-65ac490a2868@gmail.com> (raw)
In-Reply-To: <e34f96c7-eee0-6dd6-7662-ffbf04034e27@ieee.org>
On ١١/٣/٢٠٢٣ ٢١:١٠, Alex Elder wrote:
> On 3/11/23 7:59 AM, Menna Mahmoud wrote:
>> " ERROR: Macros with multiple statements should be enclosed in a do -
>> while loop"
>>
>> Reported by checkpath.
>
> This is also not an issue that should be "fixed."
>
> If you look at where that macro is expanded, you see
> that its purpose is simply to reduce the possibility
> of some errors by enclosing some much-duplicated code
> in this macro. The expansion is at the top level of
> the source file, so a "do...while" loop ends up being
> an error.
>
> When looking at the output of checkpatch, assume it's
> giving you clues about problems that one *might* like to
> fix. Its suggestions are most often reasonable, but in
> some cases (like this one) it's just not smart enough
> to recognize the problem that comes from following its
> advice.
>
> Make sure you understand exactly what happens when
> you make a change. That means understanding the
> code, and then it means ensuring that the fix passes
> at least a compile test, and if possible an actual
> execution test.
>
> -Alex
I see, Thanks Alex for explaining. I will check the code before making
any change.
Menna
>
>>
>> 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@gmail.com>
>> ---
>> 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, \
>
prev parent reply other threads:[~2023-03-12 13:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-11 13:59 [PATCH] staging: greybus: eclose macro in a do - while loop Menna Mahmoud
2023-03-11 14:06 ` Dan Carpenter
2023-03-11 14:51 ` Menna Mahmoud
2023-03-11 15:00 ` Julia Lawall
2023-03-12 13:39 ` Menna Mahmoud
2023-03-11 14:36 ` Julia Lawall
2023-03-11 14:54 ` Menna Mahmoud
2023-03-11 15:55 ` kernel test robot
2023-03-11 19:10 ` Alex Elder
2023-03-12 13:43 ` Menna Mahmoud [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f6e87327-856d-7bfe-bbc8-65ac490a2868@gmail.com \
--to=eng.mennamahmoud.mm@gmail.com \
--cc=elder@ieee.org \
--cc=elder@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=greybus-dev@lists.linaro.org \
--cc=johan@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=outreachy@lists.linux.dev \
--cc=pure.logic@nexus-software.ie \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.