Commit 4d3a2a46 authored by Nathan Chancellor's avatar Nathan Chancellor Committed by Linus Torvalds
Browse files

HID: core: Fix size_t specifier in hid_report_raw_event()



When building for 32-bit platforms, for which 'size_t' is
'unsigned int', there are warnings around using the incorrect format
specifier to print bsize in hid_report_raw_event():

  drivers/hid/hid-core.c:2054:29: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat]
   2053 |                 hid_warn_ratelimited(hid, "Event data for report %d is incorrect (%d vs %ld)\n",
        |                                                                                         ~~~
        |                                                                                         %zu
   2054 |                                      report->id, csize, bsize);
        |                                                         ^~~~~
  drivers/hid/hid-core.c:2076:29: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat]
   2075 |                 hid_warn_ratelimited(hid, "Event data for report %d was too short (%d vs %ld)\n",
        |                                                                                          ~~~
        |                                                                                          %zu
   2076 |                                      report->id, rsize, bsize);
        |                                                         ^~~~~

Use the proper 'size_t' format specifier, '%zu', to clear up the
warnings.

Cc: stable@vger.kernel.org
Fixes: 2c85c61d ("HID: pass the buffer size to hid_report_raw_event")
Reported-by: default avatarMiguel Ojeda <ojeda@kernel.org>
Closes: https://lore.kernel.org/20260516020430.110135-1-ojeda@kernel.org/


Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4bf5d3da
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2050,7 +2050,7 @@ int hid_report_raw_event(struct hid_device *hid, enum hid_report_type type, u8 *
		return 0;

	if (unlikely(bsize < csize)) {
		hid_warn_ratelimited(hid, "Event data for report %d is incorrect (%d vs %ld)\n",
		hid_warn_ratelimited(hid, "Event data for report %d is incorrect (%d vs %zu)\n",
				     report->id, csize, bsize);
		return -EINVAL;
	}
@@ -2072,7 +2072,7 @@ int hid_report_raw_event(struct hid_device *hid, enum hid_report_type type, u8 *
		rsize = max_buffer_size;

	if (bsize < rsize) {
		hid_warn_ratelimited(hid, "Event data for report %d was too short (%d vs %ld)\n",
		hid_warn_ratelimited(hid, "Event data for report %d was too short (%d vs %zu)\n",
				     report->id, rsize, bsize);
		return -EINVAL;
	}