Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Sergei Shtylyov

On 12/10/2015 05:56 PM, Geyslan G. Bem wrote:


Don't use the 'do {} while (0)' wrapper in a single statement macro.

Caught by checkpatch: "WARNING: Single statement macros should not
use a do {} while (0) loop"

Signed-off-by: Geyslan G. Bem 
---
drivers/usb/host/ehci.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index cfeebd8..945000a 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
controller */
  /* irq statistics */
#ifdef EHCI_STATS
  struct ehci_stats   stats;
-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) ((x)++)
#else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) ((void) 0)




 Why not just empty #define?



Indeed. I'll change it.
Tks Sergei.



Since COUNT is not used to return the empty #define is ok. Another way
is to use #define COUNT(x) (0) to get a 0 when necessary to read
returns.



Just 0, no parens please.



Ok, no parens, since there's no evaluation.


   It's because the literals don't need parens at all.


Then my change is:

-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) (++(x))
  #else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) 0

Pre-increment allowing to return the updated x.


   Why if there was a post-increment before?

   Anyway, this talk is quite pointless since the macro didn't return any 
value anyway.


MBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Peter Senna Tschudin
On Wed, Dec 09, 2015 at 07:32:33PM -0300, Geyslan G. Bem wrote:
> Don't use the 'do {} while (0)' wrapper in a single statement macro.
> 
> Caught by checkpatch: "WARNING: Single statement macros should not
> use a do {} while (0) loop"
> 
> Signed-off-by: Geyslan G. Bem 
As with previous, missing the changelog, but other than that the patch
looks good to me.

Acked-by: Peter Senna Tschudin 
> ---
>  drivers/usb/host/ehci.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
> index cfeebd8..945000a 100644
> --- a/drivers/usb/host/ehci.h
> +++ b/drivers/usb/host/ehci.h
> @@ -244,9 +244,9 @@ struct ehci_hcd { /* one per controller */
>   /* irq statistics */
>  #ifdef EHCI_STATS
>   struct ehci_stats   stats;
> -#define COUNT(x) do { (x)++; } while (0)
> +#define COUNT(x) ((x)++)
>  #else
> -#define COUNT(x) do {} while (0)
> +#define COUNT(x) ((void) 0)
>  #endif
>  
>   /* debug files */
> -- 
> 2.6.3
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Sergei Shtylyov

Hello.

On 12/10/2015 1:32 AM, Geyslan G. Bem wrote:


Don't use the 'do {} while (0)' wrapper in a single statement macro.

Caught by checkpatch: "WARNING: Single statement macros should not
use a do {} while (0) loop"

Signed-off-by: Geyslan G. Bem 
---
  drivers/usb/host/ehci.h | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index cfeebd8..945000a 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per controller */
/* irq statistics */
  #ifdef EHCI_STATS
struct ehci_stats   stats;
-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) ((x)++)
  #else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) ((void) 0)


   Why not just empty #define?

[...]

MBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Geyslan G. Bem
2015-12-10 8:54 GMT-03:00 Sergei Shtylyov :
> Hello.
>
> On 12/10/2015 1:32 AM, Geyslan G. Bem wrote:
>
>> Don't use the 'do {} while (0)' wrapper in a single statement macro.
>>
>> Caught by checkpatch: "WARNING: Single statement macros should not
>> use a do {} while (0) loop"
>>
>> Signed-off-by: Geyslan G. Bem 
>> ---
>>   drivers/usb/host/ehci.h | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
>> index cfeebd8..945000a 100644
>> --- a/drivers/usb/host/ehci.h
>> +++ b/drivers/usb/host/ehci.h
>> @@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
>> controller */
>> /* irq statistics */
>>   #ifdef EHCI_STATS
>> struct ehci_stats   stats;
>> -#  define COUNT(x) do { (x)++; } while (0)
>> +#  define COUNT(x) ((x)++)
>>   #else
>> -#  define COUNT(x) do {} while (0)
>> +#  define COUNT(x) ((void) 0)
>
>
>Why not just empty #define?

Indeed. I'll change it.
Tks Sergei.


>
> [...]
>
> MBR, Sergei
>



-- 
Regards,

Geyslan G. Bem
hackingbits.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Geyslan G. Bem
2015-12-10 14:26 GMT-03:00 Sergei Shtylyov :
> On 12/10/2015 05:56 PM, Geyslan G. Bem wrote:
>
>>> Don't use the 'do {} while (0)' wrapper in a single statement macro.
>>>
>>> Caught by checkpatch: "WARNING: Single statement macros should not
>>> use a do {} while (0) loop"
>>>
>>> Signed-off-by: Geyslan G. Bem 
>>> ---
>>> drivers/usb/host/ehci.h | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
>>> index cfeebd8..945000a 100644
>>> --- a/drivers/usb/host/ehci.h
>>> +++ b/drivers/usb/host/ehci.h
>>> @@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
>>> controller */
>>>   /* irq statistics */
>>> #ifdef EHCI_STATS
>>>   struct ehci_stats   stats;
>>> -#  define COUNT(x) do { (x)++; } while (0)
>>> +#  define COUNT(x) ((x)++)
>>> #else
>>> -#  define COUNT(x) do {} while (0)
>>> +#  define COUNT(x) ((void) 0)
>>
>>
>>
>>
>>  Why not just empty #define?
>
>
>
> Indeed. I'll change it.
> Tks Sergei.



 Since COUNT is not used to return the empty #define is ok. Another way
 is to use #define COUNT(x) (0) to get a 0 when necessary to read
 returns.
>
>
>>> Just 0, no parens please.
>
>
>> Ok, no parens, since there's no evaluation.
>
>
>It's because the literals don't need parens at all.
>
>> Then my change is:
>>
>> -#  define COUNT(x) do { (x)++; } while (0)
>> +#  define COUNT(x) (++(x))
>>   #else
>> -#  define COUNT(x) do {} while (0)
>> +#  define COUNT(x) 0
>>
>> Pre-increment allowing to return the updated x.
>
>
>Why if there was a post-increment before?
There's nothing wrong with post-increment. The pre one would be
necessary if using return.

>
>Anyway, this talk is quite pointless since the macro didn't return any
> value anyway.
You're sure, there's no use anywhere of the return of that macro indeed.

Sending v2 soon.

>
> MBR, Sergei
>



-- 
Regards,

Geyslan G. Bem
hackingbits.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Sergei Shtylyov

On 12/10/2015 08:40 PM, Geyslan G. Bem wrote:


Don't use the 'do {} while (0)' wrapper in a single statement macro.

Caught by checkpatch: "WARNING: Single statement macros should not
use a do {} while (0) loop"

Signed-off-by: Geyslan G. Bem 
---
 drivers/usb/host/ehci.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index cfeebd8..945000a 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
controller */
   /* irq statistics */
 #ifdef EHCI_STATS
   struct ehci_stats   stats;
-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) ((x)++)
 #else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) ((void) 0)


  Why not just empty #define?


Indeed. I'll change it.
Tks Sergei.


Since COUNT is not used to return the empty #define is ok. Another way
is to use #define COUNT(x) (0) to get a 0 when necessary to read
returns.



 Just 0, no parens please.



Ok, no parens, since there's no evaluation.


It's because the literals don't need parens at all.


Then my change is:

-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) (++(x))
   #else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) 0

Pre-increment allowing to return the updated x.



Why if there was a post-increment before?



There's nothing wrong with post-increment. The pre one would be
necessary if using return.


   Maybe it was intended to return the old value? :-)



Anyway, this talk is quite pointless since the macro didn't return any
value anyway.

You're sure, there's no use anywhere of the return of that macro indeed.


   *do* {} *while* (0) just couldn't return any value, it's not just a 
compound statement which gcc indeed allows to be evaluated.



Sending v2 soon.


MBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Geyslan G. Bem
2015-12-10 14:47 GMT-03:00 Sergei Shtylyov :
> On 12/10/2015 08:40 PM, Geyslan G. Bem wrote:
>
> Don't use the 'do {} while (0)' wrapper in a single statement
> macro.
>
> Caught by checkpatch: "WARNING: Single statement macros should not
> use a do {} while (0) loop"
>
> Signed-off-by: Geyslan G. Bem 
> ---
>  drivers/usb/host/ehci.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
> index cfeebd8..945000a 100644
> --- a/drivers/usb/host/ehci.h
> +++ b/drivers/usb/host/ehci.h
> @@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
> controller */
>/* irq statistics */
>  #ifdef EHCI_STATS
>struct ehci_stats   stats;
> -#  define COUNT(x) do { (x)++; } while (0)
> +#  define COUNT(x) ((x)++)
>  #else
> -#  define COUNT(x) do {} while (0)
> +#  define COUNT(x) ((void) 0)


   Why not just empty #define?
>>>
>>>
>>> Indeed. I'll change it.
>>> Tks Sergei.
>>
>>
>> Since COUNT is not used to return the empty #define is ok. Another way
>> is to use #define COUNT(x) (0) to get a 0 when necessary to read
>> returns.
>>>
>>>
>  Just 0, no parens please.
>>>
>>>
 Ok, no parens, since there's no evaluation.
>>>
>>>
>>> It's because the literals don't need parens at all.
>>>
 Then my change is:

 -#  define COUNT(x) do { (x)++; } while (0)
 +#  define COUNT(x) (++(x))
#else
 -#  define COUNT(x) do {} while (0)
 +#  define COUNT(x) 0

 Pre-increment allowing to return the updated x.
>>>
>>>
>>>
>>> Why if there was a post-increment before?
>
>
>> There's nothing wrong with post-increment. The pre one would be
>> necessary if using return.
>
>
>Maybe it was intended to return the old value? :-)
>
>>>
>>> Anyway, this talk is quite pointless since the macro didn't return
>>> any
>>> value anyway.
>>
>> You're sure, there's no use anywhere of the return of that macro indeed.
>
>
>*do* {} *while* (0) just couldn't return any value, it's not just a
> compound statement which gcc indeed allows to be evaluated.
Indeed. :-)

v2 in the oven.
>
>
>> Sending v2 soon.
>
>
> MBR, Sergei
>



-- 
Regards,

Geyslan G. Bem
hackingbits.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Geyslan G. Bem
2015-12-10 9:20 GMT-03:00 Geyslan G. Bem :
> 2015-12-10 8:54 GMT-03:00 Sergei Shtylyov 
> :
>> Hello.
>>
>> On 12/10/2015 1:32 AM, Geyslan G. Bem wrote:
>>
>>> Don't use the 'do {} while (0)' wrapper in a single statement macro.
>>>
>>> Caught by checkpatch: "WARNING: Single statement macros should not
>>> use a do {} while (0) loop"
>>>
>>> Signed-off-by: Geyslan G. Bem 
>>> ---
>>>   drivers/usb/host/ehci.h | 4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
>>> index cfeebd8..945000a 100644
>>> --- a/drivers/usb/host/ehci.h
>>> +++ b/drivers/usb/host/ehci.h
>>> @@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
>>> controller */
>>> /* irq statistics */
>>>   #ifdef EHCI_STATS
>>> struct ehci_stats   stats;
>>> -#  define COUNT(x) do { (x)++; } while (0)
>>> +#  define COUNT(x) ((x)++)
>>>   #else
>>> -#  define COUNT(x) do {} while (0)
>>> +#  define COUNT(x) ((void) 0)
>>
>>
>>Why not just empty #define?
>
> Indeed. I'll change it.
> Tks Sergei.

Since COUNT is not used to return the empty #define is ok. Another way
is to use #define COUNT(x) (0) to get a 0 when necessary to read
returns.

>
>
>>
>> [...]
>>
>> MBR, Sergei
>>
>
>
>
> --
> Regards,
>
> Geyslan G. Bem
> hackingbits.com



-- 
Regards,

Geyslan G. Bem
hackingbits.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Sergei Shtylyov

On 12/10/2015 04:05 PM, Geyslan G. Bem wrote:


Don't use the 'do {} while (0)' wrapper in a single statement macro.

Caught by checkpatch: "WARNING: Single statement macros should not
use a do {} while (0) loop"

Signed-off-by: Geyslan G. Bem 
---
   drivers/usb/host/ehci.h | 4 ++--
   1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index cfeebd8..945000a 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
controller */
 /* irq statistics */
   #ifdef EHCI_STATS
 struct ehci_stats   stats;
-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) ((x)++)
   #else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) ((void) 0)



Why not just empty #define?


Indeed. I'll change it.
Tks Sergei.


Since COUNT is not used to return the empty #define is ok. Another way
is to use #define COUNT(x) (0) to get a 0 when necessary to read
returns.


   Just 0, no parens please.

MBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-10 Thread Geyslan G. Bem
2015-12-10 11:44 GMT-03:00 Sergei Shtylyov :
> On 12/10/2015 04:05 PM, Geyslan G. Bem wrote:
>
> Don't use the 'do {} while (0)' wrapper in a single statement macro.
>
> Caught by checkpatch: "WARNING: Single statement macros should not
> use a do {} while (0) loop"
>
> Signed-off-by: Geyslan G. Bem 
> ---
>drivers/usb/host/ehci.h | 4 ++--
>1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
> index cfeebd8..945000a 100644
> --- a/drivers/usb/host/ehci.h
> +++ b/drivers/usb/host/ehci.h
> @@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per
> controller */
>  /* irq statistics */
>#ifdef EHCI_STATS
>  struct ehci_stats   stats;
> -#  define COUNT(x) do { (x)++; } while (0)
> +#  define COUNT(x) ((x)++)
>#else
> -#  define COUNT(x) do {} while (0)
> +#  define COUNT(x) ((void) 0)



 Why not just empty #define?
>>>
>>>
>>> Indeed. I'll change it.
>>> Tks Sergei.
>>
>>
>> Since COUNT is not used to return the empty #define is ok. Another way
>> is to use #define COUNT(x) (0) to get a 0 when necessary to read
>> returns.
>
>
>Just 0, no parens please.
Ok, no parens, since there's no evaluation.

Then my change is:

-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) (++(x))
 #else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) 0

Pre-increment allowing to return the updated x.

>
> MBR, Sergei
>



-- 
Regards,

Geyslan G. Bem
hackingbits.com
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/9v2] usb: host: ehci.h: fix single statement macros

2015-12-09 Thread Geyslan G. Bem
Don't use the 'do {} while (0)' wrapper in a single statement macro.

Caught by checkpatch: "WARNING: Single statement macros should not
use a do {} while (0) loop"

Signed-off-by: Geyslan G. Bem 
---
 drivers/usb/host/ehci.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index cfeebd8..945000a 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -244,9 +244,9 @@ struct ehci_hcd {   /* one per controller */
/* irq statistics */
 #ifdef EHCI_STATS
struct ehci_stats   stats;
-#  define COUNT(x) do { (x)++; } while (0)
+#  define COUNT(x) ((x)++)
 #else
-#  define COUNT(x) do {} while (0)
+#  define COUNT(x) ((void) 0)
 #endif
 
/* debug files */
-- 
2.6.3

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html