Currently i do not know how to fix this bug. It is reproducable on:
Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
After module reload, first packet with data size over 64 Byte will brake EP4
buffer. Size register will show bigger value as existing size of buffer.
Last buffer part will be corrupt.
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
// get the size of this transcation
usbfifolen = USB_BYTE_REG_READ(ZM_EP4_BYTE_COUNT_LOW_OFFSET);
+ if (usbfifolen > 0x40) {
+ A_PRINTF("EP4 FIFO Bug? Buffer is too big: %x\n", usbfifolen);
+ goto ERR;
+ }
// check is command is new
if( cmd_is_new ){