Re: [PATCH] USB: fix invalid memory access in hub_activate()

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

 



On Thu, 4 Aug 2016, Viresh Kumar wrote:

> On 04-08-16, 11:20, Alan Stern wrote:
> > Yes, it could lead to this deadlock.
> > 
> > > Should we rather have device_trylock instead of device_lock
> > 
> > No.
> > 
> > > > @@ -1031,10 +1031,20 @@ static void hub_activate(struct usb_hub
> > > >  	unsigned delay;
> > > > 
> > > >  	/* Continue a partial initialization */
> > > > -	if (type == HUB_INIT2)
> > > > -		goto init2;
> > > > -	if (type == HUB_INIT3)
> > > > +	if (type == HUB_INIT2 || type == HUB_INIT3) {
> > > > +		device_lock(hub->intfdev);
> > > 
> > > device_trylock?? If failed to acquire then treat that as disconnect?
> > 
> > No, that's not the right answer.  I believe the correct solution is to
> > remove the cancel_delayed_work_sync() call in hub_quiesce().
> > 
> > Viresh, do you agree?
> 
> Hmm, so I think we have two different problems here and maybe we should fix them
> separately. But surely, my patch isn't enough and we need to do it the way you
> suggested, i.e. let the work die by itself.
> 
> What about another patch on top of my patch to fix the deadlock?

Or another patch in place of yours to fix both problems.  Has your
patch been merged yet?  I don't see it in any of the branches in
https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git, and it's
not in the current mainline.

Alan Stern

--
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



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

  Powered by Linux