Matthias Kaehlcke wrote: > The value passed by the two callers of the function is unsigned anyway.
Indeed; and those are just simple wrappers. > Making the parameter unsigned fixes the following warning when building > with clang: > > drivers/char/hpet.c:588:7: error: overflow converting case value to switch > condition type (2149083139 to 18446744071563667459) [-Werror,-Wswitch] > case HPET_INFO: > ^ > include/uapi/linux/hpet.h:18:19: note: expanded from macro 'HPET_INFO' > ^ > include/uapi/asm-generic/ioctl.h:77:28: note: expanded from macro '_IOR' > ^ > include/uapi/asm-generic/ioctl.h:66:2: note: expanded from macro '_IOC' > (((dir) << _IOC_DIRSHIFT) | \ > > Signed-off-by: Matthias Kaehlcke <m...@chromium.org> Acked-by: Clemens Ladisch <clem...@ladisch.de> > --- > drivers/char/hpet.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c > index 20b32bb8c2af..0d633b76c29e 100644 > --- a/drivers/char/hpet.c > +++ b/drivers/char/hpet.c > @@ -574,7 +574,7 @@ static inline unsigned long hpet_time_div(struct hpets > *hpets, > } > > static int > -hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg, > +hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg, > struct hpet_info *info) > { > struct hpet_timer __iomem *timer;