Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1da678b authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 01397012
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -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 "