Re: [PATCH] scsi: st: Add missing break in switch statement in st_ioctl()

From: Finn Thain
Date: Tue Aug 17 2021 - 20:54:15 EST


On Tue, 17 Aug 2021, Nathan Chancellor wrote:

> Clang + -Wimplicit-fallthrough warns:
>
> drivers/scsi/st.c:3831:2: warning: unannotated fall-through between
> switch labels [-Wimplicit-fallthrough]
> default:
> ^
> drivers/scsi/st.c:3831:2: note: insert 'break;' to avoid fall-through
> default:
> ^
> break;
> 1 warning generated.
>
> Clang's -Wimplicit-fallthrough is a little bit more pedantic than GCC's,
> requiring every case block to end in break, return, or fallthrough,
> rather than allowing implicit fallthroughs to cases that just contain
> break or return. Add a break so that there is no more warning, as has
> been done all over the tree already.
>
> Fixes: 2e27f576abc6 ("scsi: scsi_ioctl: Call scsi_cmd_ioctl() from scsi_ioctl()")
> Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> ---
> drivers/scsi/st.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
> index 2d1b0594af69..0e36a36ed24d 100644
> --- a/drivers/scsi/st.c
> +++ b/drivers/scsi/st.c
> @@ -3828,6 +3828,7 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg)
> case CDROM_SEND_PACKET:
> if (!capable(CAP_SYS_RAWIO))
> return -EPERM;
> + break;
> default:
> break;
> }
>
> base-commit: 58dd8f6e1cf8c47e81fbec9f47099772ab75278b
>

Well, that sure is ugly.

Do you think the following change would cause any static checkers to spit
their dummys and throw their toys out of the pram?

@@ -3828,6 +3828,7 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg)
case CDROM_SEND_PACKET:
if (!capable(CAP_SYS_RAWIO))
return -EPERM;
+ break;
- default:
- break;
}