Re: [PATCH v2] USB: serial: io_edgeport: mark expected switch fall-throughs

From: Johan Hovold
Date: Thu May 02 2019 - 06:26:22 EST


On Wed, May 01, 2019 at 04:33:29PM -0500, Gustavo A. R. Silva wrote:
> In preparation to enabling -Wimplicit-fallthrough, mark switch
> cases where we are expecting to fall through.
>
> This patch fixes the following warnings:
>
> drivers/usb/serial/io_edgeport.c: In function âprocess_rcvd_dataâ:
> drivers/usb/serial/io_edgeport.c:1750:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
> if (bufferLength == 0) {
> ^
> drivers/usb/serial/io_edgeport.c:1755:3: note: here
> case EXPECT_HDR2:
> ^~~~
> drivers/usb/serial/io_edgeport.c:1810:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
> if (bufferLength == 0) {
> ^
> drivers/usb/serial/io_edgeport.c:1816:3: note: here
> case EXPECT_DATA: /* Expect data */
> ^~~~
>
> Warning level 3 was used: -Wimplicit-fallthrough=3
>
> Notice that, in this particular case, the code comments are modified
> in accordance with what GCC is expecting to find.
>
> This patch is part of the ongoing efforts to enable
> -Wimplicit-fallthrough.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
> ---
> Changes in v2:
> - Warning level 3 is now used: -Wimplicit-fallthrough=3
> instead of warning level 2.
> - All warnings in the switch statement are addressed now.
>
> Notice that these are the last remaining fall-through warnings
> in the USB subsystem. :)

> drivers/usb/serial/io_edgeport.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
> index 4ca31c0e4174..7ad10328f4e2 100644
> --- a/drivers/usb/serial/io_edgeport.c
> +++ b/drivers/usb/serial/io_edgeport.c
> @@ -1751,7 +1751,7 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial,
> edge_serial->rxState = EXPECT_HDR2;
> break;
> }
> - /* otherwise, drop on through */
> + /* Fall through - otherwise, drop on through */
> case EXPECT_HDR2:
> edge_serial->rxHeader2 = *buffer;
> ++buffer;
> @@ -1813,6 +1813,7 @@ static void process_rcvd_data(struct edgeport_serial *edge_serial,
> }
> /* Else, drop through */
> }
> + /* Fall through */
> case EXPECT_DATA: /* Expect data */

Looks like you forgot to take the original review feedback you got into
account:

https://lkml.kernel.org/r/87k1zf4k24.fsf@xxxxxxxxxxxxxxxxx

Johan