Messages in this thread | | | Date | Fri, 4 Dec 1998 16:02:21 -0500 | From | "Theodore Y. Ts'o" <> | Subject | Re: patch to drivers/char/serial.c to fix kernel lock-up |
| |
Date: Fri, 4 Dec 1998 01:25:09 -0800 (PST) From: Truxton Fulton <trux@truxton.com>
Please take this patch to drivers/char/serial.c. It fixes a problem I was having where the kernel would lock up solidly (infinite loop in serial.c). The problem is that startup() was being called multiple times, creating a cycle in the IRQ chain. This was happening under vanilla 2.1.130 after booting directly to single user mode. The lock-up would occur when I ran 'kermit -l /dev/ttyS1 -b 38400 -c' as any other user than root. For root, startup() would only be called once.
Umm... can you give me more information about exactly how to reproduce this? I've tried, and I can't reproduce it. Note that startup() checks the flag ASYNC_INITIALIZED, and will exit if the port is already initialized. Therefore, running startup() multiple times doesn't cause a problem. It's also the case that a single open will not call startup() multiple times, so I'm very curious how you can to the conclusion that was actually what was going on.
Given that no one else has reported anything vaguely like this, and the serial driver hasn't change significantly recently, I must conclude that you must be doing something different, or your system must be different in some way from most other people's.
Are you using a SMP machine? Were any other serial ports open when you ran kermit? How are your irq's and ports configured? Etc.
Before I apply your patch, I want to understand why it's necessary, because as near as I can tell, it shouldn't be needed at all.
- Ted
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |