diff options
-rw-r--r-- | lib/libusb/usb-ohci.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libusb/usb-ohci.c b/lib/libusb/usb-ohci.c index a346644..b19204f 100644 --- a/lib/libusb/usb-ohci.c +++ b/lib/libusb/usb-ohci.c @@ -458,7 +458,10 @@ static int ohci_process_done_head(struct ohci_hcd *ohcd, ret = false; } prev_td = td; - td = (struct ohci_td *)(uint64_t) le32_to_cpu(td->next_td); + td_phys = (struct ohci_td *)(uint64_t) le32_to_cpu(td->next_td); + td = (struct ohci_td *)(uint64_t) ohci_get_td_virt(td_phys, + td_start_phys, + PTR_U32(td_start), total_count); mb(); prev_td->attr |= cpu_to_le32(TDA_DONE); prev_td->next_td = 0; |