> > > --- linux-2.6.orig/drivers/usb/core/hcd.c > > > +++ linux-2.6/drivers/usb/core/hcd.c > > > @@ -1321,7 +1321,9 @@ static int map_urb_for_dma(struct usb_hc > > > */ > > > > > > if (usb_endpoint_xfer_control(&urb->ep->desc)) { > > > - if (hcd->self.uses_dma) { > > > + if (hcd->self.uses_pio_for_control_xfer) > > > + urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP; > > > > You should "or" in the new flag value; don't overwrite other flags. > > > > Will do. > > > > + if (!hcd->self.uses_pio_for_control_xfer) { > > > > This should be > > > > else if (hcd->self.uses_dma) { > > > > I don't get this. The lines below will call dma_map_single() for the > setup part of the control transfer. Right? I see now (never work late at night...). Submitting an updated version in a bit. Thanks! - Anand -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html