ide: tighten checks on PCI BARs in ide_hwif_configure()

Alan has fixed PCI layer handling of PCI IDE in Compatibility mode so
PCI BAR 0/1 (and/or 2/3) content reported by kernel should never be zero.

Tighten checks on PCI BARs and also fix printk() message while on it.
Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
上级 01397012
...@@ -319,18 +319,18 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev, ...@@ -319,18 +319,18 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev,
ctl = pci_resource_start(dev, 2*port+1); ctl = pci_resource_start(dev, 2*port+1);
base = pci_resource_start(dev, 2*port); base = pci_resource_start(dev, 2*port);
if ((ctl && !base) || (base && !ctl)) { } else {
printk(KERN_ERR "%s: inconsistent baseregs (BIOS) "
"for port %d, skipping\n", d->name, port);
return NULL;
}
}
if (!ctl) {
/* Use default values */ /* Use default values */
ctl = port ? 0x374 : 0x3f4; ctl = port ? 0x374 : 0x3f4;
base = port ? 0x170 : 0x1f0; base = port ? 0x170 : 0x1f0;
} }
if (!base || !ctl) {
printk(KERN_ERR "%s: bad PCI BARs for port %d, skipping\n",
d->name, port);
return NULL;
}
hwif = ide_find_port_slot(d); hwif = ide_find_port_slot(d);
if (hwif == NULL) { if (hwif == NULL) {
printk(KERN_ERR "%s: too many IDE interfaces, no room in " printk(KERN_ERR "%s: too many IDE interfaces, no room in "
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册