Re: [PATCH 1/1] usb: gadget: dummy_hcd: clear usb_gadget region before registration

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

 



On Wed, 1 Mar 2017, Peter Chen wrote:

> On Tue, Feb 28, 2017 at 11:07:08AM -0500, Alan Stern wrote:
> > On Tue, 28 Feb 2017, Peter Chen wrote:
> > 
> > > When the user does device unbind and rebind test, the kernel will
> > > show below dump due to usb_gadget memory region is dirty after unbind.
> > > Clear usb_gadget region for every new probe.

> > > diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
> > > index c60abe3..8cabc59 100644
> > > --- a/drivers/usb/gadget/udc/dummy_hcd.c
> > > +++ b/drivers/usb/gadget/udc/dummy_hcd.c
> > > @@ -1031,6 +1031,8 @@ static int dummy_udc_probe(struct platform_device *pdev)
> > >  	int		rc;
> > >  
> > >  	dum = *((void **)dev_get_platdata(&pdev->dev));
> > > +	/* Clear usb_gadget region for new registration to udc-core */
> > > +	memzero_explicit(&dum->gadget, sizeof(struct usb_gadget));
> > >  	dum->gadget.name = gadget_name;
> > >  	dum->gadget.ops = &dummy_ops;
> > >  	dum->gadget.max_speed = USB_SPEED_SUPER;
> > 
> > Wouldn't it be better to clear the entire structure, not just
> > dum->gadget?  Then you could also change
> > 
> > 		dum[i] = kzalloc(sizeof(struct dummy), GFP_KERNEL);
> > 
> > to use kmalloc, since the structure will be initialized by the probe 
> > routine.
> > 
> 
> The memory region of dum is shared between dummy_hcd and dummy_udc.
> If clear entire dum, the entries for dummy_hcd will be cleared.

Ooh, yes, that's true.  Okay, you have my

Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

for this patch.

Alan Stern




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]