Skip to contentSkip to conversation

DAC960, remove redundant (and uninitialized) PciDevice pointer.

PATCH New Dave Olien 1 participant 1 message Sep 22, 2003 Block layer

lore
Share & tools
lore

Dave Olien

author
#0 lore raw

PATCH 1/1 DAC960, remove redundant (and uninitialized) PciDevice pointer.

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.

-------------------------------------------------------------------------

drivers/block/DAC960.c +3 -3
diff -ur linux-2.6.0-test5-mm4_original/drivers/block/DAC960.c linux-2.6.0-test5-mm4_DAC/drivers/block/DAC960.c
@@ -3300,7 +3300,7 @@
   Command->SegmentCount = blk_rq_map_sg(Controller->RequestQueue,
 		  Command->Request, Command->cmd_sglist);
   /* 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);
 
   DAC960_QueueReadWriteCommand(Command);
@@ -3336,7 +3336,7 @@
   (void)blk_rq_map_sg(Controller->RequestQueue, Command->Request,
                                         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);
   /*
    * Resubmitting the request sector at a time is really tedious.
@@ -3377,7 +3377,7 @@
 	if (SuccessfulIO)
 		UpToDate = 1;
 
-	pci_unmap_sg(Command->PciDevice, Command->cmd_sglist,
+	pci_unmap_sg(Command->Controller->PCIDevice, Command->cmd_sglist,
 		Command->SegmentCount, Command->DmaDirection);
 
 	 if (!end_that_request_first(Request, UpToDate, Command->BlockCount)) {
drivers/block/DAC960.h +0 -1
diff -ur linux-2.6.0-test5-mm4_original/drivers/block/DAC960.h linux-2.6.0-test5-mm4_DAC/drivers/block/DAC960.h
@@ -2248,7 +2248,6 @@
   int	DmaDirection;
   struct scatterlist *cmd_sglist;
   struct request *Request;
-  struct pci_dev *PciDevice;
   union {
     struct {
       DAC960_V1_CommandMailbox_T CommandMailbox;