aboutsummaryrefslogtreecommitdiff
path: root/hw/usb
diff options
context:
space:
mode:
authorLi Qiang <liq3ea@gmail.com>2017-02-22 02:56:30 -0800
committerGerd Hoffmann <kraxel@redhat.com>2017-02-23 16:18:03 +0100
commit6ebc069d67735763954cb04a2d997c83a2ebe103 (patch)
tree57f307544fa71f48d7495593992b69c605c7a3ed /hw/usb
parentc4fe9700e6bb769059608f768d2efd3d80a69630 (diff)
downloadqemu-6ebc069d67735763954cb04a2d997c83a2ebe103.zip
qemu-6ebc069d67735763954cb04a2d997c83a2ebe103.tar.gz
qemu-6ebc069d67735763954cb04a2d997c83a2ebe103.tar.bz2
usb: ohci: fix error return code in servicing td
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>
Diffstat (limited to 'hw/usb')
-rw-r--r--hw/usb/hcd-ohci.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c
index 21c93e0..fe8406a 100644
--- a/hw/usb/hcd-ohci.c
+++ b/hw/usb/hcd-ohci.c
@@ -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);