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()?