Messages in this thread | | | From | Dmitry Torokhov <> | Subject | Re: [2.6 RFC/PATCH] Input: possible deadlock in i8042 | Date | Sun, 30 Nov 2003 04:19:28 -0500 |
| |
On Sunday 30 November 2003 04:00 am, Vojtech Pavlik wrote: > On Sun, Nov 30, 2003 at 03:03:57AM -0500, Dmitry Torokhov wrote: > > If request_irq fails in i8042_open it will call > > serio_unregister_port, which takes serio_sem. i8042_open may be > > called: > > > > serio_register_port - serio_find_dev - dev->connect > > serio_register_device - dev->connect > > > > Both serio_register_port and serio_register_device take serio_sem as > > well. > > > > I think that serio_{register|unregister}_port can be converted into > > submitting requests to kseriod thus removing deadlock on the > > serio_sem. > > > > The patch below is on top of serio* patches in Andrew Morton's -mm > > tree. > > It's nice to avoid the deadlock this way, but I think it's not a good > idea to make the register/unregister asynchronous - it could be a nasty > surprise for an unsuspecting driver writer. >
Serio_register_port is not guaranteed to find a driver for the serio anyway as the driver can be compiled as a module and loaded much much later so it should not be a concern. It is somewhat asynchronous already.
Dmitry - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |