RE: [PATCH v2 3/3] usb: core: hcd: use map_urb_for_dma for single step set feature urb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> Sent: Friday, April 30, 2021 10:49 PM
> To: Jun Li <jun.li@xxxxxxx>
> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; mathias.nyman@xxxxxxxxx;
> peter.chen@xxxxxxxxxx; jackp@xxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx;
> dl-linux-imx <linux-imx@xxxxxxx>
> Subject: Re: [PATCH v2 3/3] usb: core: hcd: use map_urb_for_dma for single
> step set feature urb
> 
> On Fri, Apr 30, 2021 at 02:16:33PM +0800, Li Jun wrote:
> > Use map_urb_for_dma() to improve the dma map code for single step set
> > feature request urb in test mode.
> >
> > Signed-off-by: Li Jun <jun.li@xxxxxxx>
> > ---
> > change for v2:
> > - Add this new patch to use map_urb_for_dma API to
> >   replace both of dma_map_single() calls, suggested by
> >   Jack Pham.
> >
> >  drivers/usb/core/hcd.c | 12 ++----------
> >  1 file changed, 2 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index
> > d7eb9f179ca6..0b89a3dc99a3 100644
> > --- a/drivers/usb/core/hcd.c
> > +++ b/drivers/usb/core/hcd.c
> > @@ -2159,16 +2159,8 @@ static struct urb
> *request_single_step_set_feature_urb(
> >  	usb_get_urb(urb);
> >  	atomic_inc(&urb->use_count);
> >  	atomic_inc(&urb->dev->urbnum);
> > -	urb->setup_dma = dma_map_single(
> > -			hcd->self.sysdev,
> > -			urb->setup_packet,
> > -			sizeof(struct usb_ctrlrequest),
> > -			DMA_TO_DEVICE);
> > -	urb->transfer_dma = dma_map_single(
> > -			hcd->self.sysdev,
> > -			urb->transfer_buffer,
> > -			urb->transfer_buffer_length,
> > -			DMA_FROM_DEVICE);
> > +	if (map_urb_for_dma(hcd, urb, GFP_KERNEL))
> > +		unmap_urb_for_dma(hcd, urb);
> 
> That looks awfully weird.  Are you sure about it?

Oops, will update the "awfully weird" error handling in v3.

Thanks
Li Jun 

> 
> Alan Stern
> 
> >  	urb->context = done;
> >  	return urb;
> >  }
> > --
> > 2.25.1
> >




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux