diff options
author | Christoph Hellwig <hch@lst.de> | 2006-06-03 07:21:13 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-06-06 11:07:25 -0400 |
commit | 5d5ff44fe6775ccb922fd1f7d478b2ba9ca95068 (patch) | |
tree | d8569caefe1cb5ecced30929ef98d3e1fe642425 /drivers/scsi/megaraid.c | |
parent | e4a082c7c1f9a7b11fece6918e7ee5519b39ac46 (diff) |
[SCSI] fix up request buffer reference in various scsi drivers
Various scsi drivers use scsi_cmnd.buffer and scsi_cmnd.bufflen in their
queuecommand functions. Those fields are internal storage for the
midlayer only and are used to restore the original payload after
request_buffer and request_bufflen have been overwritten for EH. Using
the buffer and bufflen fields means they do very broken things in error
handling.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/megaraid.c')
-rw-r--r-- | drivers/scsi/megaraid.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 80b68a2481b3..d245717fee65 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
@@ -524,7 +524,7 @@ mega_build_cmd(adapter_t *adapter, Scsi_Cmnd *cmd, int *busy) | |||
524 | * filter the internal and ioctl commands | 524 | * filter the internal and ioctl commands |
525 | */ | 525 | */ |
526 | if((cmd->cmnd[0] == MEGA_INTERNAL_CMD)) { | 526 | if((cmd->cmnd[0] == MEGA_INTERNAL_CMD)) { |
527 | return cmd->buffer; | 527 | return cmd->request_buffer; |
528 | } | 528 | } |
529 | 529 | ||
530 | 530 | ||
@@ -4493,7 +4493,7 @@ mega_internal_command(adapter_t *adapter, megacmd_t *mc, mega_passthru *pthru) | |||
4493 | scmd->device = sdev; | 4493 | scmd->device = sdev; |
4494 | 4494 | ||
4495 | scmd->device->host = adapter->host; | 4495 | scmd->device->host = adapter->host; |
4496 | scmd->buffer = (void *)scb; | 4496 | scmd->request_buffer = (void *)scb; |
4497 | scmd->cmnd[0] = MEGA_INTERNAL_CMD; | 4497 | scmd->cmnd[0] = MEGA_INTERNAL_CMD; |
4498 | 4498 | ||
4499 | scb->state |= SCB_ACTIVE; | 4499 | scb->state |= SCB_ACTIVE; |