All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
@ 2018-10-08 17:23 Gustavo A. R. Silva
  2018-10-08 20:30 ` Jonathan Cameron
  2019-02-20 18:20 ` Kees Cook
  0 siblings, 2 replies; 8+ messages in thread
From: Gustavo A. R. Silva @ 2018-10-08 17:23 UTC (permalink / raw)
  To: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler
  Cc: linux-iio, linux-kernel, Gustavo A. R. Silva

In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Addresses-Coverity-ID: 1397962 ("Missing break in switch")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
 drivers/iio/accel/cros_ec_accel_legacy.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/iio/accel/cros_ec_accel_legacy.c b/drivers/iio/accel/cros_ec_accel_legacy.c
index 063e89e..d609654 100644
--- a/drivers/iio/accel/cros_ec_accel_legacy.c
+++ b/drivers/iio/accel/cros_ec_accel_legacy.c
@@ -385,8 +385,10 @@ static int cros_ec_accel_legacy_probe(struct platform_device *pdev)
 		switch (i) {
 		case X:
 			ec_accel_channels[X].scan_index = Y;
+			/* fall through */
 		case Y:
 			ec_accel_channels[Y].scan_index = X;
+			/* fall through */
 		case Z:
 			ec_accel_channels[Z].scan_index = Z;
 		}
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
  2018-10-08 17:23 [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs Gustavo A. R. Silva
@ 2018-10-08 20:30 ` Jonathan Cameron
  2019-02-12 21:50   ` Gustavo A. R. Silva
  2019-02-20 18:20 ` Kees Cook
  1 sibling, 1 reply; 8+ messages in thread
From: Jonathan Cameron @ 2018-10-08 20:30 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
	linux-iio, linux-kernel, Gwendal Grignou, Thierry Escande

On Mon, 8 Oct 2018 19:23:32 +0200
"Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote:

> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> where we are expecting to fall through.
> 
> Addresses-Coverity-ID: 1397962 ("Missing break in switch")
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Hi,

I'll be honest I'm lost on what the intent of this code actually is...

Gwendal - why do we have a loop with this odd switch statement
in it.  Superficially I think we might as well drop the switch
and pull those assignments out of the loop.   However, perhaps
I'm missing something!

Thanks,

Jonathan

> ---
>  drivers/iio/accel/cros_ec_accel_legacy.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/iio/accel/cros_ec_accel_legacy.c b/drivers/iio/accel/cros_ec_accel_legacy.c
> index 063e89e..d609654 100644
> --- a/drivers/iio/accel/cros_ec_accel_legacy.c
> +++ b/drivers/iio/accel/cros_ec_accel_legacy.c
> @@ -385,8 +385,10 @@ static int cros_ec_accel_legacy_probe(struct platform_device *pdev)
>  		switch (i) {
>  		case X:
>  			ec_accel_channels[X].scan_index = Y;
> +			/* fall through */
>  		case Y:
>  			ec_accel_channels[Y].scan_index = X;
> +			/* fall through */
>  		case Z:
>  			ec_accel_channels[Z].scan_index = Z;
>  		}

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
  2018-10-08 20:30 ` Jonathan Cameron
@ 2019-02-12 21:50   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 8+ messages in thread
From: Gustavo A. R. Silva @ 2019-02-12 21:50 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
	linux-iio, linux-kernel, Gwendal Grignou, Thierry Escande

Hi guys,

I was about to submit this patch again, then I realized I had
sent it before.

So, this is a friendly ping.

Thanks
--
Gustavo

On 10/8/18 3:30 PM, Jonathan Cameron wrote:
> On Mon, 8 Oct 2018 19:23:32 +0200
> "Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote:
> 
>> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
>> where we are expecting to fall through.
>>
>> Addresses-Coverity-ID: 1397962 ("Missing break in switch")
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> Hi,
> 
> I'll be honest I'm lost on what the intent of this code actually is...
> 
> Gwendal - why do we have a loop with this odd switch statement
> in it.  Superficially I think we might as well drop the switch
> and pull those assignments out of the loop.   However, perhaps
> I'm missing something!
> 
> Thanks,
> 
> Jonathan
> 
>> ---
>>  drivers/iio/accel/cros_ec_accel_legacy.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/iio/accel/cros_ec_accel_legacy.c b/drivers/iio/accel/cros_ec_accel_legacy.c
>> index 063e89e..d609654 100644
>> --- a/drivers/iio/accel/cros_ec_accel_legacy.c
>> +++ b/drivers/iio/accel/cros_ec_accel_legacy.c
>> @@ -385,8 +385,10 @@ static int cros_ec_accel_legacy_probe(struct platform_device *pdev)
>>  		switch (i) {
>>  		case X:
>>  			ec_accel_channels[X].scan_index = Y;
>> +			/* fall through */
>>  		case Y:
>>  			ec_accel_channels[Y].scan_index = X;
>> +			/* fall through */
>>  		case Z:
>>  			ec_accel_channels[Z].scan_index = Z;
>>  		}
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
  2018-10-08 17:23 [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs Gustavo A. R. Silva
  2018-10-08 20:30 ` Jonathan Cameron
@ 2019-02-20 18:20 ` Kees Cook
  2019-02-20 18:34   ` Jonathan Cameron
  1 sibling, 1 reply; 8+ messages in thread
From: Kees Cook @ 2019-02-20 18:20 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, linux-iio, LKML

On Mon, Oct 8, 2018 at 10:24 AM Gustavo A. R. Silva
<gustavo@embeddedor.com> wrote:
>
> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> where we are expecting to fall through.
>
> Addresses-Coverity-ID: 1397962 ("Missing break in switch")
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
>  drivers/iio/accel/cros_ec_accel_legacy.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/iio/accel/cros_ec_accel_legacy.c b/drivers/iio/accel/cros_ec_accel_legacy.c
> index 063e89e..d609654 100644
> --- a/drivers/iio/accel/cros_ec_accel_legacy.c
> +++ b/drivers/iio/accel/cros_ec_accel_legacy.c
> @@ -385,8 +385,10 @@ static int cros_ec_accel_legacy_probe(struct platform_device *pdev)
>                 switch (i) {
>                 case X:
>                         ec_accel_channels[X].scan_index = Y;
> +                       /* fall through */
>                 case Y:
>                         ec_accel_channels[Y].scan_index = X;
> +                       /* fall through */
>                 case Z:
>                         ec_accel_channels[Z].scan_index = Z;
>                 }

Shouldn't these actually be "break;"s ? It seems like the loop is
stepping through X, Y, and Z. The _result_ is accidentally the same:

X: set X, Y, and Z
Y: set Y and Z
Z: set Z

result: X, Y, and Z are set correctly. But the code is technically wrong.


-- 
Kees Cook

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
  2019-02-20 18:20 ` Kees Cook
@ 2019-02-20 18:34   ` Jonathan Cameron
  2019-02-20 18:47     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 8+ messages in thread
From: Jonathan Cameron @ 2019-02-20 18:34 UTC (permalink / raw)
  To: Kees Cook
  Cc: Gustavo A. R. Silva, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, linux-iio, LKML, Gwendal Grignou

On Wed, 20 Feb 2019 10:20:39 -0800
Kees Cook <keescook@chromium.org> wrote:

> On Mon, Oct 8, 2018 at 10:24 AM Gustavo A. R. Silva
> <gustavo@embeddedor.com> wrote:
> >
> > In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> > where we are expecting to fall through.
> >
> > Addresses-Coverity-ID: 1397962 ("Missing break in switch")
> > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> > ---
> >  drivers/iio/accel/cros_ec_accel_legacy.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/iio/accel/cros_ec_accel_legacy.c b/drivers/iio/accel/cros_ec_accel_legacy.c
> > index 063e89e..d609654 100644
> > --- a/drivers/iio/accel/cros_ec_accel_legacy.c
> > +++ b/drivers/iio/accel/cros_ec_accel_legacy.c
> > @@ -385,8 +385,10 @@ static int cros_ec_accel_legacy_probe(struct platform_device *pdev)
> >                 switch (i) {
> >                 case X:
> >                         ec_accel_channels[X].scan_index = Y;
> > +                       /* fall through */
> >                 case Y:
> >                         ec_accel_channels[Y].scan_index = X;
> > +                       /* fall through */
> >                 case Z:
> >                         ec_accel_channels[Z].scan_index = Z;
> >                 }  
> 
> Shouldn't these actually be "break;"s ? It seems like the loop is
> stepping through X, Y, and Z. The _result_ is accidentally the same:
> 
> X: set X, Y, and Z
> Y: set Y and Z
> Z: set Z
> 
> result: X, Y, and Z are set correctly. But the code is technically wrong.
> 

Agreed, it's 'novel'.  Waiting for Gwendal or someone else to come
back and check it wasn't meant to be doing something else.

Jonathan

> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
  2019-02-20 18:34   ` Jonathan Cameron
@ 2019-02-20 18:47     ` Gustavo A. R. Silva
  2019-02-21  1:23       ` Kees Cook
  0 siblings, 1 reply; 8+ messages in thread
From: Gustavo A. R. Silva @ 2019-02-20 18:47 UTC (permalink / raw)
  To: Jonathan Cameron, Kees Cook
  Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
	linux-iio, LKML, Gwendal Grignou



On 2/20/19 12:34 PM, Jonathan Cameron wrote:
> On Wed, 20 Feb 2019 10:20:39 -0800
> Kees Cook <keescook@chromium.org> wrote:
> 
>> On Mon, Oct 8, 2018 at 10:24 AM Gustavo A. R. Silva
>> <gustavo@embeddedor.com> wrote:
>>>
>>> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
>>> where we are expecting to fall through.
>>>
>>> Addresses-Coverity-ID: 1397962 ("Missing break in switch")
>>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>>> ---
>>>  drivers/iio/accel/cros_ec_accel_legacy.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/iio/accel/cros_ec_accel_legacy.c b/drivers/iio/accel/cros_ec_accel_legacy.c
>>> index 063e89e..d609654 100644
>>> --- a/drivers/iio/accel/cros_ec_accel_legacy.c
>>> +++ b/drivers/iio/accel/cros_ec_accel_legacy.c
>>> @@ -385,8 +385,10 @@ static int cros_ec_accel_legacy_probe(struct platform_device *pdev)
>>>                 switch (i) {
>>>                 case X:
>>>                         ec_accel_channels[X].scan_index = Y;
>>> +                       /* fall through */
>>>                 case Y:
>>>                         ec_accel_channels[Y].scan_index = X;
>>> +                       /* fall through */
>>>                 case Z:
>>>                         ec_accel_channels[Z].scan_index = Z;
>>>                 }  
>>
>> Shouldn't these actually be "break;"s ? It seems like the loop is
>> stepping through X, Y, and Z. The _result_ is accidentally the same:
>>
>> X: set X, Y, and Z
>> Y: set Y and Z
>> Z: set Z
>>
>> result: X, Y, and Z are set correctly. But the code is technically wrong.
>>

Yeah. Actually, we can even take the switch and for out of the equation,
and the code can be rewritten as follows:

ec_accel_channels[X].scan_index = Y;
ec_accel_channels[Y].scan_index = X;
ec_accel_channels[Z].scan_index = Z;

if (state->sensor_num == MOTIONSENSE_LOC_LID)
	state->sign[X] = state->sign[Z] = -1;
else
	state->sign[X] = state->sign[Y] = state->sign[Z] = 1;

> 
> Agreed, it's 'novel'.  Waiting for Gwendal or someone else to come
> back and check it wasn't meant to be doing something else.
> 

We've been waiting 5 months for Gwendal. :/

Thanks
--
Gustavo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
  2019-02-20 18:47     ` Gustavo A. R. Silva
@ 2019-02-21  1:23       ` Kees Cook
  2019-02-21  1:48         ` Gustavo A. R. Silva
  0 siblings, 1 reply; 8+ messages in thread
From: Kees Cook @ 2019-02-21  1:23 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, linux-iio, LKML, Gwendal Grignou

On Wed, Feb 20, 2019 at 10:47 AM Gustavo A. R. Silva
<gustavo@embeddedor.com> wrote:
> Yeah. Actually, we can even take the switch and for out of the equation,
> and the code can be rewritten as follows:
>
> ec_accel_channels[X].scan_index = Y;
> ec_accel_channels[Y].scan_index = X;
> ec_accel_channels[Z].scan_index = Z;
>
> if (state->sensor_num == MOTIONSENSE_LOC_LID)
>         state->sign[X] = state->sign[Z] = -1;
> else
>         state->sign[X] = state->sign[Y] = state->sign[Z] = 1;

Actually, should be an unconditional "state->sign[Y] = 1", but
otherwise, yes. Can you send that patch?


> > Agreed, it's 'novel'.  Waiting for Gwendal or someone else to come
> > back and check it wasn't meant to be doing something else.
>
> We've been waiting 5 months for Gwendal. :/

I've looked at this enough. I'm happy to Ack it, if that helps. :)

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs
  2019-02-21  1:23       ` Kees Cook
@ 2019-02-21  1:48         ` Gustavo A. R. Silva
  0 siblings, 0 replies; 8+ messages in thread
From: Gustavo A. R. Silva @ 2019-02-21  1:48 UTC (permalink / raw)
  To: Kees Cook
  Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, linux-iio, LKML, Gwendal Grignou



On 2/20/19 7:23 PM, Kees Cook wrote:
> On Wed, Feb 20, 2019 at 10:47 AM Gustavo A. R. Silva
> <gustavo@embeddedor.com> wrote:
>> Yeah. Actually, we can even take the switch and for out of the equation,
>> and the code can be rewritten as follows:
>>
>> ec_accel_channels[X].scan_index = Y;
>> ec_accel_channels[Y].scan_index = X;
>> ec_accel_channels[Z].scan_index = Z;
>>
>> if (state->sensor_num == MOTIONSENSE_LOC_LID)
>>         state->sign[X] = state->sign[Z] = -1;
>> else
>>         state->sign[X] = state->sign[Y] = state->sign[Z] = 1;
> 
> Actually, should be an unconditional "state->sign[Y] = 1", but

You're right. Team work!

> otherwise, yes. Can you send that patch?
> 

Sure thing.

> 
>>> Agreed, it's 'novel'.  Waiting for Gwendal or someone else to come
>>> back and check it wasn't meant to be doing something else.
>>
>> We've been waiting 5 months for Gwendal. :/
> 
> I've looked at this enough. I'm happy to Ack it, if that helps. :)
> 

Awesome. :)

Thanks
--
Gustavo

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-02-21  1:48 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-08 17:23 [PATCH] iio: cros_ec_accel_legacy: Mark expected switch fall-throughs Gustavo A. R. Silva
2018-10-08 20:30 ` Jonathan Cameron
2019-02-12 21:50   ` Gustavo A. R. Silva
2019-02-20 18:20 ` Kees Cook
2019-02-20 18:34   ` Jonathan Cameron
2019-02-20 18:47     ` Gustavo A. R. Silva
2019-02-21  1:23       ` Kees Cook
2019-02-21  1:48         ` Gustavo A. R. Silva

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.