Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1690098 > unrolled thread

[PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop

Started bykarthik@techveda.org
First post2017-07-18 13:00 +0200
Last post2017-07-18 13:10 +0200
Articles 4 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop karthik@techveda.org - 2017-07-18 13:00 +0200
    Re: [PATCH] staging: greybus: loopback: Enclose multiple macro  statements in do-while loop Bryan O'Donoghue <pure.logic@nexus-software.ie> - 2017-07-18 13:10 +0200
      Re: [PATCH] staging: greybus: loopback: Enclose multiple macro  statements in do-while loop karthik <karthik@techveda.org> - 2017-07-19 08:50 +0200
    Re: [PATCH] staging: greybus: loopback: Enclose multiple macro  statements in do-while loop Johan Hovold <johan@kernel.org> - 2017-07-18 13:10 +0200

#1690098 — [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop

Fromkarthik@techveda.org
Date2017-07-18 13:00 +0200
Subject[PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop
Message-ID<u4yoq-1lh-3@gated-at.bofh.it>
From: Karthik Tummala <karthik@techveda.org>

Enclosed multiple macro statements in a do - while loop as per kernel
coding standard, pointed by checkpatch.

Signed-off-by: Karthik Tummala <karthik@techveda.org>
---
 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 08e2558..c616555 100644
--- a/drivers/staging/greybus/loopback.c
+++ b/drivers/staging/greybus/loopback.c
@@ -176,10 +176,12 @@ static DEVICE_ATTR_RO(name##_##field)
 }									\
 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,				\
-- 
1.9.1

[toc] | [next] | [standalone]


#1690123 — Re: [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop

FromBryan O'Donoghue <pure.logic@nexus-software.ie>
Date2017-07-18 13:10 +0200
SubjectRe: [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop
Message-ID<u4yy5-1Ez-5@gated-at.bofh.it>
In reply to#1690098
On 18/07/17 11:56, karthik@techveda.org wrote:
> From: Karthik Tummala <karthik@techveda.org>
> 
> Enclosed multiple macro statements in a do - while loop as per kernel
> coding standard, pointed by checkpatch.
> 
> Signed-off-by: Karthik Tummala <karthik@techveda.org>
> ---
>   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 08e2558..c616555 100644
> --- a/drivers/staging/greybus/loopback.c
> +++ b/drivers/staging/greybus/loopback.c
> @@ -176,10 +176,12 @@ static DEVICE_ATTR_RO(name##_##field)
>   }									\
>   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,				\
> 
Macros with multiple statements should be enclosed in a do - while block:

.. code-block:: c

         #define macrofun(a, b, c)                       \
                 do {                                    \
                         if (a == 5)                     \
                                 do_this(b, c);          \
                 } while (0)


I don't think it really applies.

We're declaring functions not inlining executable code..

[toc] | [prev] | [next] | [standalone]


#1691032 — Re: [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop

Fromkarthik <karthik@techveda.org>
Date2017-07-19 08:50 +0200
SubjectRe: [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop
Message-ID<u4QY2-4Nj-3@gated-at.bofh.it>
In reply to#1690123
On Tuesday 18 July 2017 04:41 PM, Bryan O'Donoghue wrote:
> On 18/07/17 11:56, karthik@techveda.org wrote:
>> From: Karthik Tummala <karthik@techveda.org>
>>
>> Enclosed multiple macro statements in a do - while loop as per kernel
>> coding standard, pointed by checkpatch.
>>
>> Signed-off-by: Karthik Tummala <karthik@techveda.org>
>> ---
>>   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 08e2558..c616555 100644
>> --- a/drivers/staging/greybus/loopback.c
>> +++ b/drivers/staging/greybus/loopback.c
>> @@ -176,10 +176,12 @@ static DEVICE_ATTR_RO(name##_##field)
>>   }                                    \
>>   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,                \
>>
> Macros with multiple statements should be enclosed in a do - while block:
> 
> .. code-block:: c
> 
>          #define macrofun(a, b, c)                       \
>                  do {                                    \
>                          if (a == 5)                     \
>                                  do_this(b, c);          \
>                  } while (0)
> 
> 
> I don't think it really applies.
> 
> We're declaring functions not inlining executable code.Hi,
It makes sense, thanks for the insight. Please drop this patch

Thanks

[toc] | [prev] | [next] | [standalone]


#1690143 — Re: [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop

FromJohan Hovold <johan@kernel.org>
Date2017-07-18 13:10 +0200
SubjectRe: [PATCH] staging: greybus: loopback: Enclose multiple macro statements in do-while loop
Message-ID<u4yy9-1Ez-115@gated-at.bofh.it>
In reply to#1690098
On Tue, Jul 18, 2017 at 04:26:40PM +0530, karthik@techveda.org wrote:
> From: Karthik Tummala <karthik@techveda.org>
> 
> Enclosed multiple macro statements in a do - while loop as per kernel
> coding standard, pointed by checkpatch.
								\
>  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)

You obviously did not even compile-test this before submitting it, which
needless to say, is not ok.

Johan

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web