patch-2.3.33 linux/drivers/pci/setup.c

Next file: linux/drivers/scsi/aha1542.c
Previous file: linux/drivers/char/pc_keyb.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.32/linux/drivers/pci/setup.c linux/drivers/pci/setup.c
@@ -34,10 +34,15 @@
 	int err;
 
 	err = -EINVAL;
-	if (root != NULL)
+	if (root != NULL) {
 		err = request_resource(root, res);
-	if (err) {
-		printk(KERN_ERR "PCI: Address space collision on region %d "
+		if (err) {
+			printk(KERN_ERR "PCI: Address space collision on "
+			       "region %d of device %s [%lx:%lx]\n",
+			       resource, dev->name, res->start, res->end);
+		}
+	} else {
+		printk(KERN_ERR "PCI: No parent found for region %d "
 		       "of device %s\n", resource, dev->name);
 	}
 
@@ -72,14 +77,14 @@
 			continue;
 
 		/* Determine the root we allocate from.  */
+		res->end -= res->start;
+		res->start = 0;
 		root = pci_find_parent_resource(dev, res);
 		if (root == NULL)
 			continue;
 
 		min = (res->flags & IORESOURCE_IO ? min_io : min_mem);
-		min += root->start;
-		size = res->end - res->start + 1;
-
+		size = res->end + 1;
 		DBGC(("  for root[%lx:%lx] min[%lx] size[%lx]\n",
 		      root->start, root->end, min, size));
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)