cvs commit: src/sys/dev/usb usbdi.c
Marius Strobl
marius at FreeBSD.org
Mon Nov 27 11:50:47 PST 2006
marius 2006-11-27 18:39:03 UTC
FreeBSD src repository
Modified files:
sys/dev/usb usbdi.c
Log:
Refine the previous change to only call bus_dmamap_sync() in case of
an URQ_REQUEST when DMA segments are passed to usbd_start_transfer();
when the request doesn't include the optional data buffer the size of
the transfer (xfer->length) is 0, in which case usbd_transfer() won't
create a DMA map but call usbd_start_transfer() with no DMA segments.
With the previous change this could result in the bus_dmamap_sync()
implementation dereferencing the NULL-pointer passed as the DMA map
argument.
While at it fix what appears to be a typo in usbd_start_transfer();
in order to determine wheter usbd_start_transfer() was called with
DMA segments check whether the number of segments is > 0 rather than
the pointer to them being > 0.
OK'ed by: imp
Revision Changes Path
1.99 +19 -12 src/sys/dev/usb/usbdi.c
More information about the cvs-all
mailing list