summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormike.miller@hp.com <mike.miller@hp.com>2006-12-13 13:10:04 +0100
committerJens Axboe <jens.axboe@oracle.com>2006-12-13 13:10:04 +0100
commitc4977f596c5bce4d20fbd22cdb03486112985622 (patch)
tree2099c3cd42303d582c1033ae10d889ebdf1c04c5
parent98040015bc5d6cea3bd2dcb642fe1e8c4bded8e1 (diff)
[PATCH 2/2] cciss: remove calls to pci_disable_device
This patch removes calls to pci_disable_device except in fail_all_cmds. The pci_disable_device function does something nasty to Smart Array controllers that pci_enable_device does not undo. So if the driver is unloaded it cannot be reloaded. Also, customers can disable any pci device via the ROM Based Setup Utility (RBSU). If the customer has disabled the controller we should not try to blindly enable the card from the driver. Please consider this for inclusion. Signed-off-by: Mike Miller <mike.miller@hp.com> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-rw-r--r--drivers/block/cciss.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 8879e95b121..335e218b6dc 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -3006,10 +3006,8 @@ static int cciss_pci_init(ctlr_info_t *c, struct pci_dev *pdev)
err_out_free_res:
pci_release_regions(pdev);
-
- err_out_disable_pdev:
- pci_disable_device(pdev);
return err;
+
}
/*
@@ -3383,7 +3381,6 @@ static int __devinit cciss_init_one(struct pci_dev *pdev,
blk_cleanup_queue(drv->queue);
}
pci_release_regions(pdev);
- pci_disable_device(pdev);
pci_set_drvdata(pdev, NULL);
free_hba(i);
return -1;
@@ -3453,7 +3450,6 @@ static void __devexit cciss_remove_one(struct pci_dev *pdev)
kfree(hba[i]->scsi_rejects.complete);
#endif
pci_release_regions(pdev);
- pci_disable_device(pdev);
pci_set_drvdata(pdev, NULL);
free_hba(i);
}