I'm trying to use smatch to find endian issues. drivers/uwb/i1480/dfu/usb.c 120 result = usb_control_msg( 121 i1480_usb->usb_dev, usb_sndctrlpipe(i1480_usb->usb_dev, 0), 122 0xf0, USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 123 cpu_to_le16(memory_address & 0xffff), 124 cpu_to_le16((memory_address >> 16) & 0xffff), 125 i1480->cmd_buf, buffer_size, 100 /* FIXME: arbitrary */); Is it right to use cpu_to_le16() here? I think it should be cpu endian here because we call cpu_to_le16() inside the usb_control_msg() function. Also in the i1480_usb_read() function: drivers/uwb/i1480/dfu/usb.c 166 result = usb_control_msg( 167 i1480_usb->usb_dev, usb_rcvctrlpipe(i1480_usb->usb_dev, 0), 168 0xf0, USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 169 cpu_to_le16(itr_addr & 0xffff), 170 cpu_to_le16((itr_addr >> 16) & 0xffff), 171 i1480->cmd_buf + itr, itr_size, 172 100 /* FIXME: arbitrary */); regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html