| From: "Stephen M. Cameron" <scameron@beardog.cce.hp.com> |
| Date: Fri, 14 Sep 2012 16:35:10 -0500 |
| Subject: cciss: fix handling of protocol error |
| |
| commit 2453f5f992717251cfadab6184fbb3ec2f2e8b40 upstream. |
| |
| If a command completes with a status of CMD_PROTOCOL_ERR, this |
| information should be conveyed to the SCSI mid layer, not dropped |
| on the floor. Unlike a similar bug in the hpsa driver, this bug |
| only affects tape drives and CD and DVD ROM drives in the cciss |
| driver, and to induce it, you have to disconnect (or damage) a |
| cable, so it is not a very likely scenario (which would explain |
| why the bug has gone undetected for the last 10 years.) |
| |
| Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> |
| Signed-off-by: Jens Axboe <axboe@kernel.dk> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/block/cciss_scsi.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/block/cciss_scsi.c b/drivers/block/cciss_scsi.c |
| index 38aa6dd..da33111 100644 |
| --- a/drivers/block/cciss_scsi.c |
| +++ b/drivers/block/cciss_scsi.c |
| @@ -795,6 +795,7 @@ static void complete_scsi_command(CommandList_struct *c, int timeout, |
| } |
| break; |
| case CMD_PROTOCOL_ERR: |
| + cmd->result = DID_ERROR << 16; |
| dev_warn(&h->pdev->dev, |
| "%p has protocol error\n", c); |
| break; |