2017-03-13 18:58:20

by Matthias Kaehlcke

[permalink] [raw]
Subject: [PATCH v1] hpet: Make cmd parameter of hpet_ioctl_common() unsigned

The value passed by the two callers of the function is unsigned anyway.

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 <[email protected]>
---
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;
--
2.12.0.246.ga2ecc84866-goog


2017-03-14 08:04:54

by Clemens Ladisch

[permalink] [raw]
Subject: Re: [PATCH v1] hpet: Make cmd parameter of hpet_ioctl_common() unsigned

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 <[email protected]>

Acked-by: Clemens Ladisch <[email protected]>

> ---
> 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;

2017-03-23 21:47:43

by Grant Grundler

[permalink] [raw]
Subject: Re: [PATCH v1] hpet: Make cmd parameter of hpet_ioctl_common() unsigned

On Tue, Mar 14, 2017 at 12:56 AM, Clemens Ladisch <[email protected]> wrote:
> 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 <[email protected]>
>
> Acked-by: Clemens Ladisch <[email protected]>

Any other feedback on this patch?
Or has this already been added to someone's "for-linus" branch?

just looking for update on patch status.

cheers,
grant

>
>> ---
>> 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;

2017-03-24 06:55:04

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v1] hpet: Make cmd parameter of hpet_ioctl_common() unsigned

On Thu, Mar 23, 2017 at 02:47:39PM -0700, Grant Grundler wrote:
> On Tue, Mar 14, 2017 at 12:56 AM, Clemens Ladisch <[email protected]> wrote:
> > 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 <[email protected]>
> >
> > Acked-by: Clemens Ladisch <[email protected]>
>
> Any other feedback on this patch?
> Or has this already been added to someone's "for-linus" branch?
>
> just looking for update on patch status.

This is already in my -next branch, to go into 4.12-rc1. Should it get
into 4.11-final instead?

thanks,

greg k-h

2017-03-24 18:19:13

by Grant Grundler

[permalink] [raw]
Subject: Re: [PATCH v1] hpet: Make cmd parameter of hpet_ioctl_common() unsigned

On Thu, Mar 23, 2017 at 11:54 PM, Greg Kroah-Hartman
<[email protected]> wrote:
> On Thu, Mar 23, 2017 at 02:47:39PM -0700, Grant Grundler wrote:
>> On Tue, Mar 14, 2017 at 12:56 AM, Clemens Ladisch <[email protected]> wrote:
>> > 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 <[email protected]>
>> >
>> > Acked-by: Clemens Ladisch <[email protected]>
>>
>> Any other feedback on this patch?
>> Or has this already been added to someone's "for-linus" branch?
>>
>> just looking for update on patch status.
>
> This is already in my -next branch, to go into 4.12-rc1. Should it get
> into 4.11-final instead?

I would say "no" since 4.12-rc1 is good enough for me. Thanks! :)

cheers,
grant

>
> thanks,
>
> greg k-h