[SCSI] hpsa: fix handling of protocol error
If a command status of CMD_PROTOCOL_ERR is received, this information should be conveyed to the SCSI mid layer, not dropped on the floor. CMD_PROTOCOL_ERR may be received from the Smart Array for any commands destined for an external RAID controller such as a P2000, or commands destined for tape drives or CD/DVD-ROM drives, if for instance a cable is disconnected. This mostly affects multipath configurations, as disconnecting a cable on a non-multipath configuration is not going to do anything good regardless of whether CMD_PROTOCOL_ERR is handled correctly or not. Not handling CMD_PROTOCOL_ERR correctly in a multipath configaration involving external RAID controllers may cause data corruption, so this is quite a serious bug. This bug should not normally cause a problem for direct attached disk storage. Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Cc: stable@vger.kernel.org Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
10cce6d8b5
commit
256d0eaac8
|
@ -1315,8 +1315,9 @@ static void complete_scsi_command(struct CommandList *cp)
|
|||
}
|
||||
break;
|
||||
case CMD_PROTOCOL_ERR:
|
||||
cmd->result = DID_ERROR << 16;
|
||||
dev_warn(&h->pdev->dev, "cp %p has "
|
||||
"protocol error \n", cp);
|
||||
"protocol error\n", cp);
|
||||
break;
|
||||
case CMD_HARDWARE_ERR:
|
||||
cmd->result = DID_ERROR << 16;
|
||||
|
|
Loading…
Reference in New Issue