Подробности
[В начало]
Проблема в реализации № L0007
Краткое описание
drivers/char/isicom.c: Вызов функции might_sleep из контекста spin_lock_irqsave/spin_unlock_irqrestore
Подробное описание
В драйвере drivers/char/isicom.c содержится вызов функции might_sleep в атомарном контексте. Функция tty_port_xmit_buf вызывается после spin_lock_irqsave. ./drivers/char/isicom.c:
1307 static void isicom_hangup(struct tty_struct *tty) 1308 { ... 1315 spin_lock_irqsave(&port->card->card_lock, flags); 1316 isicom_shutdown_port(port); ...Путь к might_sleep из isicom_hangup:
- isicom_hangup вызывает spin_lock_irqsave (drivers/char/isicom.c:1315) и затем вызывает isicom_shutdown_port.
- isiscom_shutdown_port вызывает tty_port_free_xmit_buf в drivers/char/isicom.c:906
- tty_port_free_xmit_buf вызывает mutex_lock в srivers/char/tty_port:48
Компонент
linux-kernel 2.6.31
Принято
http://lkml.org/lkml/2009/10/7/246
commit
Статус
Исправлено в ядре 2.6.33-rc1
[В начало]
»