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;

Reply via email to