Re: [BUG] usb_set_device_state

From: Rafael J. Wysocki
Date: Sun Feb 06 2011 - 07:02:21 EST


On Sunday, February 06, 2011, Alan Stern wrote:
> On Sun, 6 Feb 2011, Rafael J. Wysocki wrote:
>
> > On Saturday, February 05, 2011, Alan Stern wrote:
> > > On Sun, 6 Feb 2011, Minchan Kim wrote:
> > >
> > > > I got following message during booting mmotm-02-04.
> ...
> > > > It seems usb_set_device_state disable irq by spin_lock_irqsave.
> > > > But it calls device_set_wakeup_capable which ends up calling sysfs_merge_group.
> > > > It calls mutex_lock. :(
> > > >
> > > > Is it already known BUG?
> > >
> > > No, it was newly introduced by changes to the
> > > device_set_wakeup_capable() routine. Rafael, this sort of problem may
> > > occur in other places too, since previously there was no requirement
> > > that device_set_wakeup_capable() be called in process context.
> >
> > I'm aware of that, but it's only happend in a handful of network drivers so far.
> >
> > I think this is a new case in -mm, though, isn't it?
>
> I'm not sure. The USB core does call device_set_wakeup_capable()
> while holding one or more spinlocks in usb_set_device_state(), and that
> routine is called in several places. You ought to be able to duplicate
> the error on your own system simply by plugging in a USB hub.

No, I'm not. At least not with 2.6.37.

Also, I think the problem would have been reported before if it had been that
easy to reproduce with the mainline kernel.

Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/