Messages in this thread | | | Date | Mon, 22 Oct 2018 19:30:49 -0700 (PDT) | Subject | Re: [PATCH] mISDN: Fix type of switch control variable in ctrl_teimanager | From | David Miller <> |
| |
From: Nathan Chancellor <natechancellor@gmail.com> Date: Fri, 19 Oct 2018 11:00:30 -0700
> Clang warns (trimmed for brevity): > > drivers/isdn/mISDN/tei.c:1193:7: warning: overflow converting case value > to switch condition type (2147764552 to 18446744071562348872) [-Wswitch] > case IMHOLD_L1: > ^ > drivers/isdn/mISDN/tei.c:1187:7: warning: overflow converting case value > to switch condition type (2147764550 to 18446744071562348870) [-Wswitch] > case IMCLEAR_L2: > ^ > 2 warnings generated. > > The root cause is that the _IOC macro can generate really large numbers, > which don't find into type int. My research into how GCC and Clang are > handling this at a low level didn't prove fruitful and surveying the > kernel tree shows that aside from here and a few places in the scsi > subsystem, everything that uses _IOC is at least of type 'unsigned int'. > Make that change here because as nothing in this function cares about > the signedness of the variable and it removes ambiguity, which is never > good when dealing with compilers. > > While we're here, remove the unnecessary local variable ret (just return > -EINVAL and 0 directly). > > Link: https://github.com/ClangBuiltLinux/linux/issues/67 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Applied.
| |