Re: [PATCH] memstick: mark expected switch fall-throughs

From: Kees Cook
Date: Tue Apr 23 2019 - 11:16:08 EST


On Tue, Feb 12, 2019 at 6:57 PM Gustavo A. R. Silva
<gustavo@xxxxxxxxxxxxxx> wrote:
>
> In preparation to enabling -Wimplicit-fallthrough, mark switch
> cases where we are expecting to fall through.
>
> This patch fixes the following warnings:
>
> drivers/memstick/host/jmb38x_ms.c: In function âjmb38x_ms_write_dataâ:
> drivers/memstick/host/jmb38x_ms.c:261:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
> host->io_pos++;
> ~~~~~~~~~~~~^~
> drivers/memstick/host/jmb38x_ms.c:262:2: note: here
> case 2:
> ^~~~
> drivers/memstick/host/jmb38x_ms.c:264:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
> host->io_pos++;
> ~~~~~~~~~~~~^~
> drivers/memstick/host/jmb38x_ms.c:265:2: note: here
> case 1:
> ^~~~
> drivers/memstick/host/tifm_ms.c: In function âtifm_ms_write_dataâ:
> drivers/memstick/host/tifm_ms.c:168:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
> host->io_pos++;
> ~~~~~~~~~~~~^~
> drivers/memstick/host/tifm_ms.c:169:2: note: here
> case 2:
> ^~~~
> drivers/memstick/host/tifm_ms.c:171:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
> host->io_pos++;
> ~~~~~~~~~~~~^~
> drivers/memstick/host/tifm_ms.c:172:2: note: here
> case 1:
> ^~~~
>
> Warning level 3 was used: -Wimplicit-fallthrough=3
>
> This patch is part of the ongoing efforts to enable
> -Wimplicit-fallthrough.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>

Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

-Kees

> ---
> drivers/memstick/host/jmb38x_ms.c | 2 ++
> drivers/memstick/host/tifm_ms.c | 2 ++
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
> index bcdca9fbef51..49c71f55489f 100644
> --- a/drivers/memstick/host/jmb38x_ms.c
> +++ b/drivers/memstick/host/jmb38x_ms.c
> @@ -259,9 +259,11 @@ static unsigned int jmb38x_ms_write_data(struct jmb38x_ms_host *host,
> case 3:
> host->io_word[0] |= buf[off + 2] << 16;
> host->io_pos++;
> + /* fall through */
> case 2:
> host->io_word[0] |= buf[off + 1] << 8;
> host->io_pos++;
> + /* fall through */
> case 1:
> host->io_word[0] |= buf[off];
> host->io_pos++;
> diff --git a/drivers/memstick/host/tifm_ms.c b/drivers/memstick/host/tifm_ms.c
> index bed205849d02..1bbb2ead9556 100644
> --- a/drivers/memstick/host/tifm_ms.c
> +++ b/drivers/memstick/host/tifm_ms.c
> @@ -166,9 +166,11 @@ static unsigned int tifm_ms_write_data(struct tifm_ms *host,
> case 3:
> host->io_word |= buf[off + 2] << 16;
> host->io_pos++;
> + /* fall through */
> case 2:
> host->io_word |= buf[off + 1] << 8;
> host->io_pos++;
> + /* fall through */
> case 1:
> host->io_word |= buf[off];
> host->io_pos++;
> --
> 2.20.1
>


--
Kees Cook