[devel] linux/drivers/usb/scanner.c

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_mivlgu=2Emurom=2Eru?=
Чт Мар 28 20:55:45 MSK 2002


On Mon, 25 Mar 2002 20:59:55 +0300
Konstantin Volckov <goldhead на altlinux.ru> wrote:

> On Sun, 24 Mar 2002 20:25:05 +0300
> Sergey Vlasov <vsu на mivlgu.murom.ru> wrote:
> > Итак, в  версии 0.4.7 драйвера USB-сканеров найдена куча багов,
> > которые должен бы исправить прилагаемый патч.
> 
> [skip]
> 
> Здорово! Насколько я разобрался - все изменения к месту. Вы отослали патч
> автору драйвера? Если нет - отошлите - его должны принять. Я же включу его
> в следующую сборку 2.4.18 - alt5.

Докладываю: получил ответ от мантейнера - он согласен принять
этот патч.

> > Есть еще два бага, которые пока оставлены - надо исследовать
> > вопросы совместимости. В read_scanner и write_scanner при
> > прерывании сигналом возвращается -ERESTARTSYS, даже если часть
> > данных была передана - в общем случае это неправильно. Хотя,
> > скорее всего, ни один пользовательский драйвер сигналами не
> > пользуется - иначе эта ошибка всплыла бы; к тому же все равно
> > сигналы обрабатываются с большой задержкой - на время выполнения
> > usb_bulk_msg.
> 
> Не думаю, что это критично - насколько я знаю, sane игнорирует не
> полностью просканированные файлы.

На этом месте может вылезти глюк, если frontend попытается
пользоваться pthreads - там внутри используются сигналы.

Кстати, в старом POSIX возврат EINTR после частичного чтения
допускался. В новой версии IEEE Std 1003.1-2001 это уже
запретили.

Так что придется править. В принципе там вообще надо переписать
этот кусок, чтобы использовались непосредственно URB вместо
usb_bulk_msg - иначе, похоже, для BearPaw 2400TA получаются
слишком большие задержки между блоками. Но это уже позже.

[skip]




Подробная информация о списке рассылки Devel