We must check against the current running command not the list address. Signed-off-by: Vincent Palatin <vincent.palatin_q...@m4x.org> --- hw/usb-ehci.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/usb-ehci.c b/hw/usb-ehci.c index 8be0780..e724653 100644 --- a/hw/usb-ehci.c +++ b/hw/usb-ehci.c @@ -774,7 +774,7 @@ static void ehci_mem_writel(void *ptr, target_phys_addr_t addr, uint32_t val) break; case PERIODICLISTBASE: - if (val & USBCMD_PSE) { + if (s->usbcmd & USBCMD_PSE) { fprintf(stderr, "Guest OS should not be setting the periodic" " list base register while periodic schedule is enabled\n"); return; @@ -783,7 +783,7 @@ static void ehci_mem_writel(void *ptr, target_phys_addr_t addr, uint32_t val) break; case ASYNCLISTADDR: - if (val & USBCMD_ASE) { + if (s->usbcmd & USBCMD_ASE) { fprintf(stderr, "Guest OS should not be setting the async list" " address register while async schedule is enabled\n"); return; -- 1.5.6.5