Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01d7b369 authored by Al Viro's avatar Al Viro Committed by Linus Torvalds
Browse files

usbhid endianness annotations and fixes



usb_control_msg() converts arguments to little-endian itself,
doing that in caller means breakage on big-endian boxen.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d28aa3ac
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -654,7 +654,7 @@ static int usbhid_output_raw_report(struct hid_device *hid, __u8 *buf, size_t co
	ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
		HID_REQ_SET_REPORT,
		USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
		cpu_to_le16(((HID_OUTPUT_REPORT + 1) << 8) | *buf),
		((HID_OUTPUT_REPORT + 1) << 8) | *buf,
		interface->desc.bInterfaceNumber, buf + 1, count - 1,
		USB_CTRL_SET_TIMEOUT);

+2 −2
Original line number Diff line number Diff line
@@ -498,13 +498,13 @@ struct hid_parser {

struct hid_class_descriptor {
	__u8  bDescriptorType;
	__u16 wDescriptorLength;
	__le16 wDescriptorLength;
} __attribute__ ((packed));

struct hid_descriptor {
	__u8  bLength;
	__u8  bDescriptorType;
	__u16 bcdHID;
	__le16 bcdHID;
	__u8  bCountryCode;
	__u8  bNumDescriptors;