Re: [PATCH v3 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]

 



On Fri, May 07, 2021 at 11:42:29AM -0400, Alan Stern wrote:
> On Fri, May 07, 2021 at 02:58:02PM +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 v3:
> > - Correct the error handling if map_urb_for_dma() fails.
> > 
> > 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 | 15 +++++----------
> >  1 file changed, 5 insertions(+), 10 deletions(-)
> > 
> > diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
> > index d7eb9f179ca6..fa72697f4829 100644
> > --- a/drivers/usb/core/hcd.c
> > +++ b/drivers/usb/core/hcd.c
> > @@ -2159,16 +2159,11 @@ 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)) {
> > +		usb_put_urb(urb);
> 
> You need to call usb_free_urb() here.

Hi Alan,

Aren't usb_put_urb() and usb_free_urb() identical? The former appears
to just be a macro subsitution of the latter.

Jack

> > +		return NULL;
> > +	}
> > +
> >  	urb->context = done;
> >  	return urb;
> >  }
> > -- 
> > 2.25.1
> > 

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project



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

  Powered by Linux