Linux: Fix endianness handling of usbfs config descriptors (#27)
authorMartin Koegler <mkoegler@auto.tuwien.ac.at>
Mon, 5 Apr 2010 15:11:32 +0000 (17:11 +0200)
committerDaniel Drake <dan@reactivated.net>
Mon, 5 Apr 2010 16:08:20 +0000 (10:08 -0600)
commit02df59a309e813c50b8230de99e69fb4e1814279
tree4b924cebe161ee8750d413506dea5b28c6e7bf06
parentec303b01a5d4e51c000a283853af65059fa62285
Linux: Fix endianness handling of usbfs config descriptors (#27)

driver/usb/core/devio.c function usbdev_read translate the follwing files
to CPU endianess:

le16_to_cpus(&temp_desc.bcdUSB);
le16_to_cpus(&temp_desc.idVendor);
le16_to_cpus(&temp_desc.idProduct);
le16_to_cpus(&temp_desc.bcdDevice);

All other data is passed without any change.

libusb/os/linux_usbfs.c calls usbi_parse_descriptor with host_endian=1
for config descriptors. According to the kernel code, they must be
processed with host_endian=0, as they are not translated by the kernel.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
AUTHORS
libusb/os/linux_usbfs.c