Revision 2c7b15c1 hw/usb/hcd-ehci.c
b/hw/usb/hcd-ehci.c | ||
---|---|---|
1550 | 1550 |
endp = get_field(qh.epchar, QH_EPCHAR_EP); |
1551 | 1551 |
if ((devaddr != get_field(q->qh.epchar, QH_EPCHAR_DEVADDR)) || |
1552 | 1552 |
(endp != get_field(q->qh.epchar, QH_EPCHAR_EP)) || |
1553 |
(memcmp(&qh.current_qtd, &q->qh.current_qtd, |
|
1554 |
9 * sizeof(uint32_t)) != 0) || |
|
1553 |
(qh.current_qtd != q->qh.current_qtd) || |
|
1554 |
(q->async && qh.next_qtd != q->qh.next_qtd) || |
|
1555 |
(memcmp(&qh.altnext_qtd, &q->qh.altnext_qtd, |
|
1556 |
7 * sizeof(uint32_t)) != 0) || |
|
1555 | 1557 |
(q->dev != NULL && q->dev->addr != devaddr)) { |
1556 | 1558 |
if (ehci_reset_queue(q) > 0) { |
1557 | 1559 |
ehci_trace_guest_bug(ehci, "guest updated active QH"); |
... | ... | |
1719 | 1721 |
p = QTAILQ_FIRST(&q->packets); |
1720 | 1722 |
if (p != NULL) { |
1721 | 1723 |
if (p->qtdaddr != q->qtdaddr || |
1722 |
(!NLPTR_TBIT(p->qtd.next) && (p->qtd.next != qtd.next)) || |
|
1724 |
(q->async && !NLPTR_TBIT(p->qtd.next) && |
|
1725 |
(p->qtd.next != qtd.next)) || |
|
1723 | 1726 |
(!NLPTR_TBIT(p->qtd.altnext) && (p->qtd.altnext != qtd.altnext)) || |
1724 | 1727 |
p->qtd.bufptr[0] != qtd.bufptr[0]) { |
1725 | 1728 |
ehci_cancel_queue(q); |
Also available in: Unified diff