Details
[Home]
Issue of the Implementation # L0007
Brief
drivers/char/isicom.c: Sleeping function called from invalid context
Detailed Description
Driver drivers/char/isicom.c might sleep in atomic context, because it calls tty_port_xmit_buf under spin_lock. ./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); ...Path to might_sleep macro from isicom_hangup:
- isicom_hangup calls spin_lock_irqsave (drivers/char/isicom.c:1315) and then calls isicom_shutdown_port.
- isiscom_shutdown_port calls tty_port_free_xmit_buf at drivers/char/isicom.c:906
- tty_port_free_xmit_buf calls mutex_lock at srivers/char/tty_port:48
Component
linux-kernel 2.6.31
Accepted
http://lkml.org/lkml/2009/10/7/246
commit
Status
Fixed in kernel 2.6.33-rc1
[Home]
»