mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-22 00:40:03 +00:00
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: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
01397012b3
commit
c1da678b5b
1 changed files with 7 additions and 7 deletions
|
@ -319,18 +319,18 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev,
|
|||
|
||||
ctl = pci_resource_start(dev, 2*port+1);
|
||||
base = pci_resource_start(dev, 2*port);
|
||||
if ((ctl && !base) || (base && !ctl)) {
|
||||
printk(KERN_ERR "%s: inconsistent baseregs (BIOS) "
|
||||
"for port %d, skipping\n", d->name, port);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (!ctl) {
|
||||
} else {
|
||||
/* Use default values */
|
||||
ctl = port ? 0x374 : 0x3f4;
|
||||
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);
|
||||
if (hwif == NULL) {
|
||||
printk(KERN_ERR "%s: too many IDE interfaces, no room in "
|
||||
|
|
Loading…
Reference in a new issue