Re: [RFC v2] usb: Realloc xHCI structures after a hub is verified.

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

 



On Tue, 28 Dec 2010, Sarah Sharp wrote:

> > > +		} else if (type == HUB_RESET_RESUME) {
> > > +			/* The internal host controller state for the hub device
> > > +			 * may be gone after a host power loss on system resume.
> > > +			 * Update the device's info so the HW knows it's a hub.
> > > +			 */
> > > +			hcd = bus_to_hcd(hdev->bus);
> > > +			if (hcd->driver->update_hub_device) {
> > > +				ret = hcd->driver->update_hub_device(hcd, hdev,
> > > +						&hub->tt, GFP_KERNEL);
> > 
> > Isn't this supposed to be GFP_NOIO?
> 
> So hub reset resume may happen as part of mass storage error handling?
> I thought GFP_NOIO would only be necessary when
> usb_reset_and_verify_device() was called with a storage device?  I can't
> quite picture the sequence of events that would cause the kernel to try
> to flush pending IO when a hub is being reset, and that would cause a
> deadlock.

I'm far from certain about this; it would be best to check with Oliver.  
My thought was that you might have a suspended mass-storage device 
beneath a suspended hub.  A runtime resume of the storage device would 
cause the hub to resume as well, but I guess it would never be a 
reset-resume.  So it looks like my thought was wrong.

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