[SCSI] hpsa: make hpsa_find_memory_BAR not require the per HBA structure.
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Wed, 16 Jun 2010 18:51:25 +0000 (13:51 -0500)
committerJames Bottomley <James.Bottomley@suse.de>
Tue, 27 Jul 2010 17:01:57 +0000 (12:01 -0500)
Rationale for this is that in order to fix the hard reset code used
by kdump, we need to use this function before we even have the per
HBA structure.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/hpsa.c

index 25faaae324a319893ab0c7f011c6161fc98a9b77..f5305a4b8b328b6b0a15dd52b24afbc2f9d22bbd 100644 (file)
@@ -3313,20 +3313,20 @@ static inline bool hpsa_board_disabled(struct pci_dev *pdev)
        return ((command & PCI_COMMAND_MEMORY) == 0);
 }
 
-static int __devinit hpsa_pci_find_memory_BAR(struct ctlr_info *h,
+static int __devinit hpsa_pci_find_memory_BAR(struct pci_dev *pdev,
        unsigned long *memory_bar)
 {
        int i;
 
        for (i = 0; i < DEVICE_COUNT_RESOURCE; i++)
-               if (pci_resource_flags(h->pdev, i) & IORESOURCE_MEM) {
+               if (pci_resource_flags(pdev, i) & IORESOURCE_MEM) {
                        /* addressing mode bits already removed */
-                       *memory_bar = pci_resource_start(h->pdev, i);
-                       dev_dbg(&h->pdev->dev, "memory BAR = %lx\n",
+                       *memory_bar = pci_resource_start(pdev, i);
+                       dev_dbg(&pdev->dev, "memory BAR = %lx\n",
                                *memory_bar);
                        return 0;
                }
-       dev_warn(&h->pdev->dev, "no memory BAR found\n");
+       dev_warn(&pdev->dev, "no memory BAR found\n");
        return -ENODEV;
 }
 
@@ -3503,7 +3503,7 @@ static int __devinit hpsa_pci_init(struct ctlr_info *h)
                return err;
        }
        hpsa_interrupt_mode(h);
-       err = hpsa_pci_find_memory_BAR(h, &h->paddr);
+       err = hpsa_pci_find_memory_BAR(h->pdev, &h->paddr);
        if (err)
                goto err_out_free_res;
        h->vaddr = remap_pci_mem(h->paddr, 0x250);