All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] DAC960, remove redundant (and uninitialized) PciDevice pointer.
@ 2003-09-22 17:31 Dave Olien
  0 siblings, 0 replies; only message in thread
From: Dave Olien @ 2003-09-22 17:31 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel


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.

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

diff -ur linux-2.6.0-test5-mm4_original/drivers/block/DAC960.c linux-2.6.0-test5-mm4_DAC/drivers/block/DAC960.c
--- linux-2.6.0-test5-mm4_original/drivers/block/DAC960.c	2003-09-22 10:11:29.000000000 -0700
+++ linux-2.6.0-test5-mm4_DAC/drivers/block/DAC960.c	2003-09-22 10:20:35.000000000 -0700
@@ -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)) {
diff -ur linux-2.6.0-test5-mm4_original/drivers/block/DAC960.h linux-2.6.0-test5-mm4_DAC/drivers/block/DAC960.h
--- linux-2.6.0-test5-mm4_original/drivers/block/DAC960.h	2003-09-08 12:50:21.000000000 -0700
+++ linux-2.6.0-test5-mm4_DAC/drivers/block/DAC960.h	2003-09-22 10:20:35.000000000 -0700
@@ -2248,7 +2248,6 @@
   int	DmaDirection;
   struct scatterlist *cmd_sglist;
   struct request *Request;
-  struct pci_dev *PciDevice;
   union {
     struct {
       DAC960_V1_CommandMailbox_T CommandMailbox;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-09-22 17:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-22 17:31 [PATCH] DAC960, remove redundant (and uninitialized) PciDevice pointer Dave Olien

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.