On Wed, Dec 28, 2005 at 12:34:57AM +0900, Atsushi Nemoto wrote: > Thanks for your comment. > > >>>>> On Tue, 27 Dec 2005 16:38:54 +0300, Sergei Shtylylov <sshtylyov@xxxxxxxxxxxxx> said: > > >> The problem is not just only spin_lock_init. The parameters of > >> "console=" option (baudrate, etc.) are not passed for PCI UART. > > sshtylyov> They are -- uart_add_one_port() calls console setup > sshtylyov> once more when registering PCI UART with serial code. > > Yes, you are right. I missed the register_console call in > uart_add_one_port(). So your patch will fix the problem. But I > suppose the spinlock should be initialized in serial_core. How about > this? I think you're layering work-around on top of work-around on top of work-around here. I think the first thing you need to resolve is the way you're registering your ports. Firstly, if you're solely PCI-based, there's no need to pre-register all the uart ports at driver initialisation time. Consequently, there's no need to remove them all when you remove the module. Secondly, the upshot of this is that you only call uart_add_one_port() when you initialise a PCI card. This should result in a cleaner implementation, and the console will not be started until you detect the PCI card. Which is the behaviour you desire in any case. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core