James, thank you for the corrections.  I think I can fix all of these as
suggested and resubmit a new patch shortly.

>Another thing that strikes me is on the ARM side, it looks like this is
>effectively vectoring up to a user space target ... is that true?  And
>if so, would the existing in-kernel target infrastructure be a better
>way of doing this?

No, there's no user space target.  The target is special hardware.  Or
more precisely, special communication hardware to send messages to
off-core hardware.

>> +static int imu_queuecommand(struct scsi_cmnd *scp,
>[...]
>> +    if (!imu_scsi->connection_handle) {
>> +            scp->result = (DID_RESET << 16) | (SUGGEST_RETRY << 24);
>> +            done(scp);
>> +            return SCSI_MLQUEUE_HOST_BUSY;
>> +    }
>
>Absolutely wrong.  Either you execute done() on the command and return
>zero, or you *don't* execute done on the command and return a queueing
>condition.  Doing both will lead to double completions and really
>horrible things.

I'll return zero like the previous error condition, thanks.

> ...wrong...

Other corrections greatly appreciated and I'll roll into next patch.

--Greg
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to