k2_fw_usb_api: add warning on oversized buffer.
authorOleksij Rempel <linux@rempel-privat.de>
Thu, 18 Jul 2013 13:02:52 +0000 (15:02 +0200)
committerOleksij Rempel <linux@rempel-privat.de>
Thu, 18 Jul 2013 13:02:52 +0000 (15:02 +0200)
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>
target_firmware/magpie_fw_dev/target/hif/k2_fw_usb_api.c

index b549108c145d496be4808beff89b7031fd5a9012..b8adbf43600c018df60ac93c4b48c2a8939a8553 100755 (executable)
@@ -418,6 +418,10 @@ void vUsb_Reg_Out_patch(void)
 
     // 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 ){