Подробности
[В начало]
Проблема в реализации № L0023
Краткое описание
Выход из функции без разблокировки мютекса в драйвере drivers/media/video/cx231xx/cx231xx-core.c
Подробное описание
1. В строке 282 в функции cx231xx_read_ctrl_reg мютекс был захвачен. 2. Если usb_control_msg вернет ret<0 то мы выйдем из функции cx231xx_read_ctrl_reg без разблокировки захваченного мютекса. В другом случае (ret>=0) мютекс был разблокирован в строке 295 перед выходом.
282 mutex_lock(&dev->ctrl_urb_lock); 283 ret = usb_control_msg(dev->udev, pipe, req, 284 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 285 val, reg, dev->urb_buf, len, HZ); 286 if (ret < 0) { 287 cx231xx_isocdbg(" failed! "); 288 /* mutex_unlock(&dev->ctrl_urb_lock); */ 289 return ret; 290 } 291 292 if (len) 293 memcpy(buf, dev->urb_buf, len); 294 295 mutex_unlock(&dev->ctrl_urb_lock);
Компонент
linux-kernel 2.6.36.2
Принято
https://lkml.org/lkml/2010/12/13/343
commit
Статус
Исправлено в kernel 2.6.37-rc1
[В начало]
»