Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c603d04e authored by James Bottomley's avatar James Bottomley Committed by James Bottomley
Browse files

[SCSI] 53c700: brown paper bag fix for auto request sense



In the switch over, I forgot to set the command length, so it sends out
a request sense with whatever length the prior command had (and fails
badly if it wasn't 6).

Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 46ddab7b
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -624,6 +624,8 @@ NCR_700_scsi_done(struct NCR_700_Host_Parameters *hostdata,
			 * successful */
			if (result == 0)
				result = cmnd[7];
			/* restore the original length */
			SCp->cmd_len = cmnd[8];
		} else
			NCR_700_unmap(hostdata, SCp, slot);

@@ -1007,6 +1009,9 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp,
				 * of the command */
				cmnd[6] = NCR_700_INTERNAL_SENSE_MAGIC;
				cmnd[7] = hostdata->status[0];
				cmnd[8] = SCp->cmd_len;
				SCp->cmd_len = 6; /* command length for
						   * REQUEST_SENSE */
				slot->pCmd = dma_map_single(hostdata->dev, cmnd, MAX_COMMAND_SIZE, DMA_TO_DEVICE);
				slot->dma_handle = dma_map_single(hostdata->dev, SCp->sense_buffer, sizeof(SCp->sense_buffer), DMA_FROM_DEVICE);
				slot->SG[0].ins = bS_to_host(SCRIPT_MOVE_DATA_IN | sizeof(SCp->sense_buffer));