On Thu, Jun 17, 2021 at 07:44:21PM -0400, Alan Stern wrote: > On Thu, Jun 17, 2021 at 06:52:54PM +0200, Greg Kroah-Hartman wrote: > > On Thu, Jun 17, 2021 at 07:27:55PM +0300, Ruslan Bilovol wrote: > > > Running sparse checker it shows warning message about > > > incorrect endianness used for descriptor initialization: > > > > > > | f_hid.c:91:43: warning: incorrect type in initializer (different base types) > > > | f_hid.c:91:43: expected restricted __le16 [usertype] bcdHID > > > | f_hid.c:91:43: got int > > > > > > Fixing issue with cpu_to_le16() macro > > > > > > Fixes: 71adf1189469 ("USB: gadget: add HID gadget driver") > > > Cc: Fabien Chouteau <fabien.chouteau@xxxxxxxxx> > > > Cc: Segiy Stetsyuk <serg_stetsuk@xxxxxxx> > > > Cc: stable@xxxxxxxxxx > > > Signed-off-by: Ruslan Bilovol <ruslan.bilovol@xxxxxxxxx> > > > --- > > > drivers/usb/gadget/function/f_hid.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c > > > index 70774d8cb14e..02683ac0719d 100644 > > > --- a/drivers/usb/gadget/function/f_hid.c > > > +++ b/drivers/usb/gadget/function/f_hid.c > > > @@ -88,7 +88,7 @@ static struct usb_interface_descriptor hidg_interface_desc = { > > > static struct hid_descriptor hidg_desc = { > > > .bLength = sizeof hidg_desc, > > > .bDescriptorType = HID_DT_HID, > > > - .bcdHID = 0x0101, > > > + .bcdHID = cpu_to_le16(0x0101), > > > > This is a BCD value, not a little-endian value, are you sure this > > conversion is correct? > > It's a BCD value, but the storage format is little endian. So yes, the > conversion is correct. > > But even more, the conversion is correct because 0x0101 yields exactly > the same sequence of bytes in little-endian and big-endian orders! > Either way, it is two bytes each containing 0x01. Ah, which is why no one has noticed this yet :) I'll go apply this just to be "correct". thanks, greg k-h