В 2.4.20-alt1 драйвер сканера был заменён на новую версию из 2.4.21-pre - в этой версии есть большая часть багов, исправлявшихся ранее патчем scanner-0.4.7-fix.patch. 1. close_scanner: race при проверке p_scn_table[scn_minor] - проверка выполнялась без захвата scn_mutex, что могло привести к oops, если указатель в этот момент обнулялся в disconnect_scanner. 2. probe_scanner: при занятости всех 16 номеров устройств происходило обращение за пределы массива p_scn_table. 3. disconnect_scanner: при уничтожении структуры scn_usb_data не проверялось наличие ссылок на нее в file->private_data; если после этого программа пыталась выполнить read/write/ioctl, происходило обращение к освобожденной памяти. Рецепт для Oops: отключить сканер в процессе сканирования. Можно просто несколько раз запустить cat /proc/usb/scanner0 & , после чего отключить сканер. Обновлённый патч прилагается. --- ---
fixed (2.4.20-alt3, coming soon)