[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a3499a19-d9ed-b8e5-341e-0aa02774b645@kernel.org>
Date: Tue, 17 Aug 2021 18:12:49 -0700
From: Nathan Chancellor <nathan@...nel.org>
To: Finn Thain <fthain@...ux-m68k.org>
Cc: Kai Mäkisara <Kai.Makisara@...umbus.fi>,
"James E.J. Bottomley" <jejb@...ux.ibm.com>,
"Martin K. Petersen" <martin.petersen@...cle.com>,
"Gustavo A. R. Silva" <gustavoars@...nel.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org,
clang-built-linux@...glegroups.com
Subject: Re: [PATCH] scsi: st: Add missing break in switch statement in
st_ioctl()
On 8/17/2021 5:54 PM, Finn Thain wrote:
> 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@...nel.org>
>> ---
>> 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;
> }
>
I cannot speak for other static checkers but clang does not complain in
this instance. cmd_in is the switch value, which is unsigned int; as far
as I am aware, clang will only complain about a switch not handling all
values when switching on an enumerated type.
Gustavo, if you are already handling all of the other warnings in -next,
do you want to take this one too?
Cheers,
Nathan
Powered by blists - more mailing lists