Message ID | 20190226234853.20441-1-louis@kragniz.eu (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Jiri Kosina |
Headers | show |
Series | HID: quirks: use correct format chars in dbg_hid | expand |
On Tue, Feb 26, 2019 at 3:50 PM Louis Taylor <louis@kragniz.eu> wrote: > > When building with -Wformat, clang warns: > > drivers/hid/hid-quirks.c:1075:27: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > bl_entry->driver_data, bl_entry->vendor, > ^~~~~~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > drivers/hid/hid-quirks.c:1076:4: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > bl_entry->product); > ^~~~~~~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > drivers/hid/hid-quirks.c:1242:12: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > quirks, hdev->vendor, hdev->product); > ^~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > drivers/hid/hid-quirks.c:1242:26: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > quirks, hdev->vendor, hdev->product); > ^~~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > 4 warnings generated. > > This patch fixes the format strings to use the correct format type for unsigned > ints. > > Link: https://github.com/ClangBuiltLinux/linux/issues/378 > Signed-off-by: Louis Taylor <louis@kragniz.eu> > --- > drivers/hid/hid-quirks.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c > index 94088c0ed68a..b4e49e1b6f4a 100644 > --- a/drivers/hid/hid-quirks.c > +++ b/drivers/hid/hid-quirks.c > @@ -1071,7 +1071,7 @@ static struct hid_device_id *hid_exists_dquirk(const struct hid_device *hdev) > } > > if (bl_entry != NULL) > - dbg_hid("Found dynamic quirk 0x%lx for HID device 0x%hx:0x%hx\n", > + dbg_hid("Found dynamic quirk 0x%lx for HID device 0x%x:0x%x\n", %h is for short ints, include/linux/mod_devicetable.h declares struct hid_device_id (bl_entry is an instance of struct hid_device_id) unconditionally as: 147 struct hid_device_id { ... 150 __u32 vendor; 151 __u32 product; ... 153 }; yep; LGTM Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Thank you for the patch! There's 3 more of these in drivers/hid/i2c-hid/i2c-hid-core.c if your looking to clean up some more! > bl_entry->driver_data, bl_entry->vendor, > bl_entry->product); > > @@ -1238,7 +1238,7 @@ static unsigned long hid_gets_squirk(const struct hid_device *hdev) > quirks |= bl_entry->driver_data; > > if (quirks) > - dbg_hid("Found squirk 0x%lx for HID device 0x%hx:0x%hx\n", > + dbg_hid("Found squirk 0x%lx for HID device 0x%x:0x%x\n", > quirks, hdev->vendor, hdev->product); > return quirks; > } > -- > 2.20.1 >
On Wed, Feb 27, 2019 at 12:50 AM Louis Taylor <louis@kragniz.eu> wrote: > > When building with -Wformat, clang warns: > > drivers/hid/hid-quirks.c:1075:27: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > bl_entry->driver_data, bl_entry->vendor, > ^~~~~~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > drivers/hid/hid-quirks.c:1076:4: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > bl_entry->product); > ^~~~~~~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > drivers/hid/hid-quirks.c:1242:12: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > quirks, hdev->vendor, hdev->product); > ^~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > drivers/hid/hid-quirks.c:1242:26: warning: format specifies type > 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') > [-Wformat] > quirks, hdev->vendor, hdev->product); > ^~~~~~~~~~~~~ > ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' > printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ > ~~~~~~ ^~~ > 4 warnings generated. > > This patch fixes the format strings to use the correct format type for unsigned > ints. > > Link: https://github.com/ClangBuiltLinux/linux/issues/378 > Signed-off-by: Louis Taylor <louis@kragniz.eu> > --- > drivers/hid/hid-quirks.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c > index 94088c0ed68a..b4e49e1b6f4a 100644 > --- a/drivers/hid/hid-quirks.c > +++ b/drivers/hid/hid-quirks.c > @@ -1071,7 +1071,7 @@ static struct hid_device_id *hid_exists_dquirk(const struct hid_device *hdev) > } > > if (bl_entry != NULL) > - dbg_hid("Found dynamic quirk 0x%lx for HID device 0x%hx:0x%hx\n", > + dbg_hid("Found dynamic quirk 0x%lx for HID device 0x%x:0x%x\n", Can you make it %04x instead? The VID/PID are usually 4 hex chars, and without the '04' format, you'll end up having a varying length result, which is not that nice. Cheers, Benjamin > bl_entry->driver_data, bl_entry->vendor, > bl_entry->product); > > @@ -1238,7 +1238,7 @@ static unsigned long hid_gets_squirk(const struct hid_device *hdev) > quirks |= bl_entry->driver_data; > > if (quirks) > - dbg_hid("Found squirk 0x%lx for HID device 0x%hx:0x%hx\n", > + dbg_hid("Found squirk 0x%lx for HID device 0x%x:0x%x\n", > quirks, hdev->vendor, hdev->product); > return quirks; > } > -- > 2.20.1 >
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index 94088c0ed68a..b4e49e1b6f4a 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -1071,7 +1071,7 @@ static struct hid_device_id *hid_exists_dquirk(const struct hid_device *hdev) } if (bl_entry != NULL) - dbg_hid("Found dynamic quirk 0x%lx for HID device 0x%hx:0x%hx\n", + dbg_hid("Found dynamic quirk 0x%lx for HID device 0x%x:0x%x\n", bl_entry->driver_data, bl_entry->vendor, bl_entry->product); @@ -1238,7 +1238,7 @@ static unsigned long hid_gets_squirk(const struct hid_device *hdev) quirks |= bl_entry->driver_data; if (quirks) - dbg_hid("Found squirk 0x%lx for HID device 0x%hx:0x%hx\n", + dbg_hid("Found squirk 0x%lx for HID device 0x%x:0x%x\n", quirks, hdev->vendor, hdev->product); return quirks; }
When building with -Wformat, clang warns: drivers/hid/hid-quirks.c:1075:27: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat] bl_entry->driver_data, bl_entry->vendor, ^~~~~~~~~~~~~~~~ ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ ~~~~~~ ^~~ drivers/hid/hid-quirks.c:1076:4: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat] bl_entry->product); ^~~~~~~~~~~~~~~~~ ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ ~~~~~~ ^~~ drivers/hid/hid-quirks.c:1242:12: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat] quirks, hdev->vendor, hdev->product); ^~~~~~~~~~~~ ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ ~~~~~~ ^~~ drivers/hid/hid-quirks.c:1242:26: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat] quirks, hdev->vendor, hdev->product); ^~~~~~~~~~~~~ ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid' printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \ ~~~~~~ ^~~ 4 warnings generated. This patch fixes the format strings to use the correct format type for unsigned ints. Link: https://github.com/ClangBuiltLinux/linux/issues/378 Signed-off-by: Louis Taylor <louis@kragniz.eu> --- drivers/hid/hid-quirks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)