[sane-devel] umax: cancel is broken on SCSI scanners

Ondrej Zary 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 
was cancelled).

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?

Ondrej Zary

More information about the sane-devel mailing list