[SCSI] hpsa: do not skip disabled devices
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Tue, 1 May 2012 16:42:14 +0000 (11:42 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Thu, 10 May 2012 08:09:20 +0000 (09:09 +0100)
There was code to skip "disabled" devices which was intended to
skip devices disabled in the BIOS, but it really just checks to
see if the device can write to host memory, which this is disabled
by pci_disable_device on driver unload, so this check has the effect
of preventing subsequent load of the driver.  And devices disabled in
the BIOS don't show up at all anyway, so this check never made any
sense to begin with, and should be removed.

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

index 732ae3d..8075c54 100644 (file)
@@ -3705,14 +3705,6 @@ static int __devinit hpsa_lookup_board_id(struct pci_dev *pdev, u32 *board_id)
        return ARRAY_SIZE(products) - 1; /* generic unknown smart array */
 }
 
-static inline bool hpsa_board_disabled(struct pci_dev *pdev)
-{
-       u16 command;
-
-       (void) pci_read_config_word(pdev, PCI_COMMAND, &command);
-       return ((command & PCI_COMMAND_MEMORY) == 0);
-}
-
 static int __devinit hpsa_pci_find_memory_BAR(struct pci_dev *pdev,
        unsigned long *memory_bar)
 {
@@ -3929,11 +3921,6 @@ static int __devinit hpsa_pci_init(struct ctlr_info *h)
        h->product_name = products[prod_index].product_name;
        h->access = *(products[prod_index].access);
 
-       if (hpsa_board_disabled(h->pdev)) {
-               dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
-               return -ENODEV;
-       }
-
        pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S |
                               PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM);