summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2008-03-20 16:04:13 +0000
committersam <sam@FreeBSD.org>2008-03-20 16:04:13 +0000
commitc8f58c14c0a0d193084549ee0a04e3049c6a3463 (patch)
tree0b8e38ea0c2736d0501ec95b3e8d84f6fc4bf841
parent70faf3fbc18f5e02b9e75736aa47e33a83af3bdf (diff)
downloadFreeBSD-src-c8f58c14c0a0d193084549ee0a04e3049c6a3463.zip
FreeBSD-src-c8f58c14c0a0d193084549ee0a04e3049c6a3463.tar.gz
Correct cache handling for xfer requests marked URQ_REQUEST: many (if not
all uses) involve a read but usbd_start_transfer only does a PREWRITE; change this to BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE as I'm not sure if any users do write+read. Reviewed by: cognet, imp MFC after: 1 month
-rw-r--r--sys/dev/usb/usbdi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c
index 684d604..d299966 100644
--- a/sys/dev/usb/usbdi.c
+++ b/sys/dev/usb/usbdi.c
@@ -384,7 +384,8 @@ usbd_start_transfer(void *arg, bus_dma_segment_t *segs, int nseg, int error)
* sync the dmamap for the request data in the SETUP
* packet.
*/
- bus_dmamap_sync(tag, dmap->map, BUS_DMASYNC_PREWRITE);
+ bus_dmamap_sync(tag, dmap->map,
+ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
} else
bus_dmamap_sync(tag, dmap->map, BUS_DMASYNC_PREREAD);
}
OpenPOWER on IntegriCloud