=== sys/dev/usb/usb_transfer.c ================================================================== --- sys/dev/usb/usb_transfer.c (revision 201787) +++ sys/dev/usb/usb_transfer.c (local) @@ -614,12 +614,14 @@ /* * check if we need to setup * a local buffer: + * XXXKAN aieeeee: CACHE LINE? MIPS weeps boody tears here. */ if (!xfer->flags.ext_buffer) { + uint32_t data_align = MAX(USB_HOST_ALIGN, 32) - 1; /* align data */ - parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); + parm->size[0] += ((-parm->size[0]) & data_align); if (parm->buf) { @@ -635,7 +637,7 @@ parm->size[0] += parm->bufsize; /* align data again */ - parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); + parm->size[0] += ((-parm->size[0]) & data_align); } /* * Compute maximum buffer size