|
@@ -282,11 +282,11 @@ static unsigned int __devinit init_chipset_via82cxxx(struct pci_dev *dev, const
|
|
|
* Find the ISA bridge to see how good the IDE is.
|
|
|
*/
|
|
|
via_config = via_config_find(&isa);
|
|
|
- if (!via_config->id) {
|
|
|
- printk(KERN_WARNING "VP_IDE: Unknown VIA SouthBridge, disabling DMA.\n");
|
|
|
- pci_dev_put(isa);
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
+
|
|
|
+ /* We checked this earlier so if it fails here deeep badness
|
|
|
+ is involved */
|
|
|
+
|
|
|
+ BUG_ON(!via_config->id);
|
|
|
|
|
|
/*
|
|
|
* Setup or disable Clk66 if appropriate
|
|
@@ -494,6 +494,17 @@ static ide_pci_device_t via82cxxx_chipsets[] __devinitdata = {
|
|
|
|
|
|
static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_id *id)
|
|
|
{
|
|
|
+ struct pci_dev *isa = NULL;
|
|
|
+ struct via_isa_bridge *via_config;
|
|
|
+ /*
|
|
|
+ * Find the ISA bridge and check we know what it is.
|
|
|
+ */
|
|
|
+ via_config = via_config_find(&isa);
|
|
|
+ pci_dev_put(isa);
|
|
|
+ if (!via_config->id) {
|
|
|
+ printk(KERN_WARNING "VP_IDE: Unknown VIA SouthBridge, disabling DMA.\n");
|
|
|
+ return -ENODEV;
|
|
|
+ }
|
|
|
return ide_setup_pci_device(dev, &via82cxxx_chipsets[id->driver_data]);
|
|
|
}
|
|
|
|