ide: tighten checks on PCI BARs in ide_hwif_configure()
PATCH 4/4 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 <[email protected]>
--- drivers/ide/setup-pci.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
drivers/ide/setup-pci.c +7 -7
@@ -319,18 +319,18 @@ static ide_hwif_t *ide_hwif_configure(st 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 "
Quoted 2 lines · On Fri, 6 Jun 2008 23:41:26 +0200 Bartlomiej Zolnierkiewicz…
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.
Providing you are in compatability mode - you might see 0 for a native mode port that has not been assigned, and now and then a bios will lob you one of those just to see what happens 8)