Подробности

[В начало]

Проблема в реализации № L0041

Краткое описание

serqt_usb2: kmalloc(GFP_NOIO) вызывается при захваченном spinlock

Подробное описание

qt_break() вызывает usb_control_msg() с захваченным spinlock, тогда как usb_control_msg() вызывает kmalloc(GFP_NOIO) и usb_alloc_urb(GFP_NOIO). То же верно и для qt_tiocmget() и qt_tiocmset(). Также вызов wait_for_completion_timeout() в usb_control_msg() демонстрирует, что spinlock не самое лучшее решение в данном случае.

Способы устранения

Заменить spinlock на mutex.

Компонент

linux-kernel 3.1

Принято

https://lkml.org/lkml/2011/8/9/23
commit

Статус

Исправлено в kernel 3.2-rc1

[В начало]