Re: [PATCH 4/4] ide: tighten checks on PCI BARs in ide_hwif_configure()

Previous thread: [PATCH 3/4] sgiioc4: use driver name for resource allocation by Bartlomiej Zolnierkiewicz on Friday, June 6, 2008 - 2:34 pm. (1 message)

Next thread: [PATCH] make clean: remove *.o.* as well by Alexey Dobriyan on Friday, June 6, 2008 - 2:47 pm. (2 messages)
From: Bartlomiej Zolnierkiewicz
Date: Friday, June 6, 2008 - 2:41 pm

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>
---
 drivers/ide/setup-pci.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

Index: b/drivers/ide/setup-pci.c
===================================================================
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -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 "
--

From: Alan Cox
Date: Friday, June 6, 2008 - 5:12 pm

On Fri, 6 Jun 2008 23:41:26 +0200

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)
--

Previous thread: [PATCH 3/4] sgiioc4: use driver name for resource allocation by Bartlomiej Zolnierkiewicz on Friday, June 6, 2008 - 2:34 pm. (1 message)

Next thread: [PATCH] make clean: remove *.o.* as well by Alexey Dobriyan on Friday, June 6, 2008 - 2:47 pm. (2 messages)