diff --git a/hw/usb-ohci.c b/hw/usb-ohci.c index 9f80e159ad21dccc496330a5fccd5284a9fbb683..c60fd8deef138c2638b195176dfbdfa47cccadb2 100644 --- a/hw/usb-ohci.c +++ b/hw/usb-ohci.c @@ -1415,6 +1415,8 @@ static uint32_t ohci_mem_read(void *ptr, target_phys_addr_t addr) OHCIState *ohci = ptr; uint32_t retval; + addr &= 0xff; + /* Only aligned reads are allowed on OHCI */ if (addr & 3) { fprintf(stderr, "usb-ohci: Mis-aligned read\n"); @@ -1538,6 +1540,8 @@ static void ohci_mem_write(void *ptr, target_phys_addr_t addr, uint32_t val) { OHCIState *ohci = ptr; + addr &= 0xff; + #ifdef TARGET_WORDS_BIGENDIAN val = bswap32(val); #endif