usb: ohci: fix error return code in servicing td
authorLi Qiang <liq3ea@gmail.com>
Wed, 22 Feb 2017 10:56:30 +0000 (02:56 -0800)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 23 Feb 2017 15:18:03 +0000 (16:18 +0100)
It should return 1 if an error occurs when reading td.
This will avoid an infinite loop issue in ohci_service_ed_list.

Signed-off-by: Li Qiang <liqiang6-s@360.cn>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 1487760990-115925-1-git-send-email-liqiang6-s@360.cn
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/hcd-ohci.c

index 21c93e037242f978600ac08625044cbe527f4242..fe8406ac646f760d5a29722e1646b09efeaeee2a 100644 (file)
@@ -1001,7 +1001,7 @@ static int ohci_service_td(OHCIState *ohci, struct ohci_ed *ed)
     if (ohci_read_td(ohci, addr, &td)) {
         trace_usb_ohci_td_read_error(addr);
         ohci_die(ohci);
-        return 0;
+        return 1;
     }
 
     dir = OHCI_BM(ed->flags, ED_D);