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
Suspend-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/suspend-devel

Reply via email to