Hi Stefan, On Fri, Jan 15, 2021 at 3:53 PM Stefan Roese <s...@denx.de> wrote: > > Testing with v2021.01 on MIPS Octeon has shown, that the latest patch > for the "short packet event trb handling" did introduce a bug on > platforms with virtual address != physical address. This patch fixes > this issue by using the correct address types in the compare (both > physical in this case). > > Signed-off-by: Stefan Roese <s...@denx.de> > Cc: Aaron Williams <awilli...@marvell.com> > Cc: Chandrakala Chavva <ccha...@marvell.com> > Cc: Ran Wang <ran.wan...@nxp.com> > Cc: Nicolas Saenz Julienne <nsaenzjulie...@suse.de> > Cc: Marek Vasut <ma...@denx.de> > Cc: Bin Meng <bmeng...@gmail.com> > --- > drivers/usb/host/xhci-ring.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c > index d708fc928b..d6c47d579b 100644 > --- a/drivers/usb/host/xhci-ring.c > +++ b/drivers/usb/host/xhci-ring.c > @@ -723,8 +723,8 @@ again: > return -ETIMEDOUT; > } > > - if ((uintptr_t)(le64_to_cpu(event->trans_event.buffer)) > - != (uintptr_t)last_transfer_trb_addr) { > + if ((uintptr_t)(le64_to_cpu(event->trans_event.buffer)) != > + (uintptr_t)virt_to_phys(last_transfer_trb_addr)) {
Is last_transfer_trb_addr virtual address? I thought queue_trb() returns physical address? > available_length -= > > (int)EVENT_TRB_LEN(le32_to_cpu(event->trans_event.transfer_len)); > xhci_acknowledge_event(ctrl); > -- Regards, Bin