Commit b7f6576c authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] DAC960: remove redundant (and uninitialized)

From: Dave Olien <dmo@osdl.org>

this patch fixes a bug that appeared only on Alpha hardware with
DAC960 controllers.  The Command->PciDevice structure member was
never initialized.  This was passed to the pci scatter/gather functions.
This didn't cause a problem for x86 platforms because the scatter/gather
funtions never really used that information.  Alpha platforms do use
that pointer.

The Command->PciDevice field was also redundant with the Controller->PCIDevice
field, which IS initialized properly.  So, eliminating the redundant
structure member and substituting the Controller's member fixes the bug.
parent eb73c88b
...@@ -3300,7 +3300,7 @@ static boolean DAC960_ProcessRequest(DAC960_Controller_T *Controller, ...@@ -3300,7 +3300,7 @@ static boolean DAC960_ProcessRequest(DAC960_Controller_T *Controller,
Command->SegmentCount = blk_rq_map_sg(Controller->RequestQueue, Command->SegmentCount = blk_rq_map_sg(Controller->RequestQueue,
Command->Request, Command->cmd_sglist); Command->Request, Command->cmd_sglist);
/* pci_map_sg MAY change the value of SegCount */ /* pci_map_sg MAY change the value of SegCount */
Command->SegmentCount = pci_map_sg(Command->PciDevice, Command->cmd_sglist, Command->SegmentCount = pci_map_sg(Controller->PCIDevice, Command->cmd_sglist,
Command->SegmentCount, Command->DmaDirection); Command->SegmentCount, Command->DmaDirection);
DAC960_QueueReadWriteCommand(Command); DAC960_QueueReadWriteCommand(Command);
...@@ -3336,7 +3336,7 @@ static void DAC960_queue_partial_rw(DAC960_Command_T *Command) ...@@ -3336,7 +3336,7 @@ static void DAC960_queue_partial_rw(DAC960_Command_T *Command)
(void)blk_rq_map_sg(Controller->RequestQueue, Command->Request, (void)blk_rq_map_sg(Controller->RequestQueue, Command->Request,
Command->cmd_sglist); Command->cmd_sglist);
(void)pci_map_sg(Command->PciDevice, Command->cmd_sglist, 1, (void)pci_map_sg(Controller->PCIDevice, Command->cmd_sglist, 1,
Command->DmaDirection); Command->DmaDirection);
/* /*
* Resubmitting the request sector at a time is really tedious. * Resubmitting the request sector at a time is really tedious.
...@@ -3377,7 +3377,7 @@ static inline boolean DAC960_ProcessCompletedRequest(DAC960_Command_T *Command, ...@@ -3377,7 +3377,7 @@ static inline boolean DAC960_ProcessCompletedRequest(DAC960_Command_T *Command,
if (SuccessfulIO) if (SuccessfulIO)
UpToDate = 1; UpToDate = 1;
pci_unmap_sg(Command->PciDevice, Command->cmd_sglist, pci_unmap_sg(Command->Controller->PCIDevice, Command->cmd_sglist,
Command->SegmentCount, Command->DmaDirection); Command->SegmentCount, Command->DmaDirection);
if (!end_that_request_first(Request, UpToDate, Command->BlockCount)) { if (!end_that_request_first(Request, UpToDate, Command->BlockCount)) {
......
...@@ -2248,7 +2248,6 @@ typedef struct DAC960_Command ...@@ -2248,7 +2248,6 @@ typedef struct DAC960_Command
int DmaDirection; int DmaDirection;
struct scatterlist *cmd_sglist; struct scatterlist *cmd_sglist;
struct request *Request; struct request *Request;
struct pci_dev *PciDevice;
union { union {
struct { struct {
DAC960_V1_CommandMailbox_T CommandMailbox; DAC960_V1_CommandMailbox_T CommandMailbox;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment