|
@@ -241,10 +241,7 @@ scsi_host_alloc_command(struct Scsi_Host *shost, gfp_t gfp_mask)
|
|
|
*/
|
|
|
struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask)
|
|
|
{
|
|
|
- struct scsi_cmnd *cmd;
|
|
|
- unsigned char *buf;
|
|
|
-
|
|
|
- cmd = scsi_host_alloc_command(shost, gfp_mask);
|
|
|
+ struct scsi_cmnd *cmd = scsi_host_alloc_command(shost, gfp_mask);
|
|
|
|
|
|
if (unlikely(!cmd)) {
|
|
|
unsigned long flags;
|
|
@@ -258,9 +255,15 @@ struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask)
|
|
|
spin_unlock_irqrestore(&shost->free_list_lock, flags);
|
|
|
|
|
|
if (cmd) {
|
|
|
+ void *buf, *prot;
|
|
|
+
|
|
|
buf = cmd->sense_buffer;
|
|
|
+ prot = cmd->prot_sdb;
|
|
|
+
|
|
|
memset(cmd, 0, sizeof(*cmd));
|
|
|
+
|
|
|
cmd->sense_buffer = buf;
|
|
|
+ cmd->prot_sdb = prot;
|
|
|
}
|
|
|
}
|
|
|
|