Kai Makisara wrote:
init_command() is _not_ called. I added a printk to it and it did not
print anything. If you look at scsi_prep_fn(), init_command() is called
only if req->rq_disk is set. scsi_execute_async() does not set it.
oh yeah, sorry. I meant to add that back but would have had to add
another argument to the scsi_execute* functions since I could not figure
out how to go from scsi_device or request_queue to disk.
Setting command parameters through the separate init_command() function
seems like a horrible idea. You have to do hacks to pass the information.
This is how sd works :(
The command triggering these problems is a 6-byte read of 10240 bytes. It
should not a this point return anything but finish with some sense data.
I am debugging the problem but it is going slowly because the system disk
is a SCSI disk. I have to be careful with the debugging output and changes
outside st.c require a reboot ;-) So far I have found out that
scsi_check_sense() is called correctly and returns SUCCESS as it should.
What happens after that is a mystery.
ok
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html