On Saturday, 2 December 2006 16:39, Alan Stern wrote:
> On Sat, 2 Dec 2006, Pavel Machek wrote:
>
> > Hi!
> >
> > > > We send fake signals to them, so they enter get_signal_to_deliver() and
> > > > they
> > > > call try_to_freeze() from there.
> > >
> > > Well then, see, you're doing exactly what you said should never happen --
> > > you are freezing a user thread while it might be holding a lock that the
> > > unfreezable usb-storage thread needs.
> >
> >
> > I do not think it is okay to call get_signal_to_deliver with *any*
> > lock held... Or do you have example when that is broken?
>
> Is get_signal_to_deliver() ever called at any time other than when the CPU
> is about to switch back into user mode?
No, I don't think so. There's a check in do_signal() that only allows it to
call get_signal_to_deliver() in user mode.
> If not then there shouldn't be any problem. The routines I was talking
> about earlier hold the USB device locks while running in kernel mode, but
> they release them before returning to user mode.
Then everything is correct, I think.
Greetings,
Rafael
--
You never change things by fighting the existing reality.
R. Buckminster Fuller
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Suspend-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/suspend-devel