[Qemu-devel] [PATCH] usb: ohci: fix error return code in servicing iso td

Li Qiang posted 1 patch 7 years, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/5899ac3e.1033240a.944d5.9a2d@mx.google.com
Test checkpatch passed
Test docker passed
Test s390x passed
hw/usb/hcd-ohci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] usb: ohci: fix error return code in servicing iso td
Posted by Li Qiang 7 years, 2 months ago
From: Li Qiang <liqiang6-s@360.cn>

It should return 1 if an error occurs when reading iso td.
This will avoid an infinite loop issue in ohci_service_ed_list.

Signed-off-by: Li Qiang <liqiang6-s@360.cn>
---
 hw/usb/hcd-ohci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c
index 4a63f3b..21c93e0 100644
--- a/hw/usb/hcd-ohci.c
+++ b/hw/usb/hcd-ohci.c
@@ -727,7 +727,7 @@ static int ohci_service_iso_td(OHCIState *ohci, struct ohci_ed *ed,
     if (ohci_read_iso_td(ohci, addr, &iso_td)) {
         trace_usb_ohci_iso_td_read_failed(addr);
         ohci_die(ohci);
-        return 0;
+        return 1;
     }
 
     starting_frame = OHCI_BM(iso_td.flags, TD_SF);
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] usb: ohci: fix error return code in servicing iso td
Posted by Li Qiang 7 years, 2 months ago
Ping...

2017-02-07 19:15 GMT+08:00 Li Qiang <liq3ea@gmail.com>:

> From: Li Qiang <liqiang6-s@360.cn>
>
> It should return 1 if an error occurs when reading iso td.
> This will avoid an infinite loop issue in ohci_service_ed_list.
>
> Signed-off-by: Li Qiang <liqiang6-s@360.cn>
> ---
>  hw/usb/hcd-ohci.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c
> index 4a63f3b..21c93e0 100644
> --- a/hw/usb/hcd-ohci.c
> +++ b/hw/usb/hcd-ohci.c
> @@ -727,7 +727,7 @@ static int ohci_service_iso_td(OHCIState *ohci, struct
> ohci_ed *ed,
>      if (ohci_read_iso_td(ohci, addr, &iso_td)) {
>          trace_usb_ohci_iso_td_read_failed(addr);
>          ohci_die(ohci);
> -        return 0;
> +        return 1;
>      }
>
>      starting_frame = OHCI_BM(iso_td.flags, TD_SF);
> --
> 1.8.3.1
>
>