Hi all,

I have a problem of deadlock at kernel startup,
related to USB keyboard and mouse handling.

I'm working on 2.4.18-rmk6 on a board based on Samsung
S3C2800X, which is an ARM CPU.
My USB controller is a VIA VT6202 (UHCI interface).
The system hangs in most times when I boot my system
with keyboard and/or mouse attached, while it does
never hang when I boot without them and plug them
afterwards.
When the hang occurs, the system blocks before
displaying the login prompt on my serial console.

After a long session of debugging with printk, I found
out that in those cases one of the calls to
schedule_timeout() (issued when waiting for an URB
response in usb.c) never returns.
I can avoid this situation by removing the
schedule_timeout() call in usb.c:

--- original/usb.c      2002-08-14 11:50:10.000000000 +0200
+++ my/usb.c    2003-09-19 15:57:21.000000000 +0200
@@ -1078,7 +1078,7 @@
 
        while (timeout && !awd.done)
        {
-               timeout = schedule_timeout(timeout);
+               //timeout = schedule_timeout(timeout);
                set_current_state(TASK_UNINTERRUPTIBLE);
                rmb();
        }

The system seems to work correctly anyway, with the
URB requests correctly done.

It is not clear to me why this function call can cause
problems in my architecture, and I don't know either
if my modification will result in buggy or unstable
system behaviour.

What do you think about it? 

Thank you in advance
--
Pier Paolo Glave



__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to