From 4b539f02f5b2c5de7d00be6766d87a02532d69d7 Mon Sep 17 00:00:00 2001 From: Sam Leffler Date: Thu, 20 Mar 2008 16:04:13 +0000 Subject: [PATCH] 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 --- sys/dev/usb/usbdi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c index 684d604cf53..d2999663f2a 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); }