Hello all, trying to find out why my microtek scanner would not work with 2.2.x-kernels (it worked with 2.0.38) I found the following kernel problems. 1. Scsi commands returning BUSY are *not* automatically retried by the AHA1542 as the manual tries to tell us. (Did I misunderstand anything?) Instead, scsi_decide_disposition considers retrying the command; default is NO RETRIES, therefore the command fails. 2. In consequence, the error handler is woken up which in turn calls scsi_request_sense (which only makes sense after a CHECK_CONDITION status!) 3. aha1542.c finds the REQUEST_SENSE command and, knowing about auto sense, returns SCpnt->result = 0, marking the previous (!) command as successfully finished. In practise, this means: sane issues TEST_UNIT_READY scanner returns GOOD although it is not willing to accept a START_SCAN sane issues START_SCAN scanner reports BUSY scsi_decide_disposition decides against retry, returning FAILED scsi.c wants REQUEST_SENSE aha1542 returns NO SENSE and marks the previous command (START_SCAN) GOOD sane issues GET_SCAN_STATUS This is acceptable only in scanning mode, therefore it fails. I fixed the problem by having scsi_decide_disposition *always* return NEEDS_RETRY when it finds BUSY (which might lead to an endless loop if an attached device goes bananas). In any case, IMHO it is erroneous 1. to issue a REQUEST_SENSE command unless the target returned CHECK_CONDITION 2. to mark a command as finished successfully because REQUEST_SENSE succeeded. I'm afraid I have too little background knowledge to suggest a clean general solution without your comments. Regards, Klaus Syttkus. BTW, the wd7000 driver does not seem to work as a kernel module (Oops...). Any comments on this problem? - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [EMAIL PROTECTED]

