aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authormike.miller@hp.com <mike.miller@hp.com>2006-12-13 07:10:04 -0500
committerJens Axboe <jens.axboe@oracle.com>2006-12-13 07:10:04 -0500
commitc4977f596c5bce4d20fbd22cdb03486112985622 (patch)
tree2099c3cd42303d582c1033ae10d889ebdf1c04c5 /drivers
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>
Diffstat (limited to 'drivers')
-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 8879e95b121e..335e218b6dcc 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)
3006 3006
3007 err_out_free_res: 3007 err_out_free_res:
3008 pci_release_regions(pdev); 3008 pci_release_regions(pdev);
3009
3010 err_out_disable_pdev:
3011 pci_disable_device(pdev);
3012 return err; 3009 return err;
3010
3013} 3011}
3014 3012
3015/* 3013/*
@@ -3383,7 +3381,6 @@ static int __devinit cciss_init_one(struct pci_dev *pdev,
3383 blk_cleanup_queue(drv->queue); 3381 blk_cleanup_queue(drv->queue);
3384 } 3382 }
3385 pci_release_regions(pdev); 3383 pci_release_regions(pdev);
3386 pci_disable_device(pdev);
3387 pci_set_drvdata(pdev, NULL); 3384 pci_set_drvdata(pdev, NULL);
3388 free_hba(i); 3385 free_hba(i);
3389 return -1; 3386 return -1;
@@ -3453,7 +3450,6 @@ static void __devexit cciss_remove_one(struct pci_dev *pdev)
3453 kfree(hba[i]->scsi_rejects.complete); 3450 kfree(hba[i]->scsi_rejects.complete);
3454#endif 3451#endif
3455 pci_release_regions(pdev); 3452 pci_release_regions(pdev);
3456 pci_disable_device(pdev);
3457 pci_set_drvdata(pdev, NULL); 3453 pci_set_drvdata(pdev, NULL);
3458 free_hba(i); 3454 free_hba(i);
3459} 3455}