Re: [PATCH] scsi: Let scsi_execute_cmd() mark args->sshdr as invalid

From: Juergen Gross
Date: Sun May 21 2023 - 01:24:12 EST


On 21.05.23 03:19, Martin K. Petersen wrote:

John,

@Martin, Do you have any preference for what we do now? This code
which does not check for error and does not pre-zero sshdr is
longstanding, so I am not sure if Juergen's change is required for for
v6.4. I'm thinking to fix callers for v6.5 and also maybe change the
API, as I described.

As I alluded to in the tracing thread, I'd like to see SK/ASC/ASCQ being
generally available in the scsi_cmnd results instead of all this sense
buffer and sense header micromanagement in every caller. That's a pretty
heavy lift, though.

Short term we need all callers to be fixed up. I'm not a particularly
big fan of scsi_execute_cmd() zeroing something being passed in. I
wonder if it would be worth having a DECLARE_SENSE_HEADER()?

sshdr is output only data, so setting it before returning seems to be a
sensible thing to do.

Letting the callers do that is kind of a layering violation IMHO, as this
would spread the knowledge that scsi_execute_cmd() isn't setting its output
data always.

In the end its your decision, of course.


Juergen

Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature