diff options
-rw-r--r-- | drivers/block/cciss.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index ade58bc8f3c4..2b485ca1150b 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c | |||
@@ -75,6 +75,12 @@ module_param(cciss_simple_mode, int, S_IRUGO|S_IWUSR); | |||
75 | MODULE_PARM_DESC(cciss_simple_mode, | 75 | MODULE_PARM_DESC(cciss_simple_mode, |
76 | "Use 'simple mode' rather than 'performant mode'"); | 76 | "Use 'simple mode' rather than 'performant mode'"); |
77 | 77 | ||
78 | static int cciss_allow_hpsa; | ||
79 | module_param(cciss_allow_hpsa, int, S_IRUGO|S_IWUSR); | ||
80 | MODULE_PARM_DESC(cciss_allow_hpsa, | ||
81 | "Prevent cciss driver from accessing hardware known to be " | ||
82 | " supported by the hpsa driver"); | ||
83 | |||
78 | static DEFINE_MUTEX(cciss_mutex); | 84 | static DEFINE_MUTEX(cciss_mutex); |
79 | static struct proc_dir_entry *proc_cciss; | 85 | static struct proc_dir_entry *proc_cciss; |
80 | 86 | ||
@@ -4116,9 +4122,13 @@ static int cciss_lookup_board_id(struct pci_dev *pdev, u32 *board_id) | |||
4116 | *board_id = ((subsystem_device_id << 16) & 0xffff0000) | | 4122 | *board_id = ((subsystem_device_id << 16) & 0xffff0000) | |
4117 | subsystem_vendor_id; | 4123 | subsystem_vendor_id; |
4118 | 4124 | ||
4119 | for (i = 0; i < ARRAY_SIZE(products); i++) | 4125 | for (i = 0; i < ARRAY_SIZE(products); i++) { |
4126 | /* Stand aside for hpsa driver on request */ | ||
4127 | if (cciss_allow_hpsa) | ||
4128 | return -ENODEV; | ||
4120 | if (*board_id == products[i].board_id) | 4129 | if (*board_id == products[i].board_id) |
4121 | return i; | 4130 | return i; |
4131 | } | ||
4122 | dev_warn(&pdev->dev, "unrecognized board ID: 0x%08x, ignoring.\n", | 4132 | dev_warn(&pdev->dev, "unrecognized board ID: 0x%08x, ignoring.\n", |
4123 | *board_id); | 4133 | *board_id); |
4124 | return -ENODEV; | 4134 | return -ENODEV; |