[sane-devel] umax: cancel is broken on SCSI scanners
linux at rainbow-software.org
Mon Jan 6 22:40:41 UTC 2014
When I cancel a scan on a SCSI scanner using UMAX backend, the scanner keeps
scanning for a couple of seconds. Then the scanner stops and XSane freezes
for a couple of minutes (4 or so). Then suddenly everything comes alive and
finishes (scanner goes to home position and XSane reports that the operation
This happens with UC630 and PowerLook II scanners on two different systems.
Seems that the problem is caused by SCSI command queueing - the stall occurs
on sanei_scsi_req_flush_all() called by do_cancel() function. Not sure about
how umax_reader_process() works - it seems to queue as many read commands as
possible. But that shouldn't be a problem since they should complete quickly
if they get to the scanner.
I don't know what sanei_scsi_req_flush_all() does - just waits until the queue
gets empty or tries to delete waiting commands from the queue?
Did cancel ever work correctly with umax backend?
More information about the sane-devel