[PATCH] PCI insert_resource() nesting fix

From: John Rose
Date: Fri Jun 25 2004 - 14:22:11 EST


Noticed that insert_resource() incorrectly handles the case of an existing
parent resource with the same ending address as a newly added child.
This results in incorrect nesting, like the following:

# cat /proc/ioports
<snip>
002f0000-002fffff : PCI Bus #48
00200000-002fffff : /pci@800000020000003
</snip>

Thanks-
John

Signed-off-by: John Rose <johnrose@xxxxxxxxxxxxxx>

diff -Nru a/kernel/resource.c b/kernel/resource.c
--- a/kernel/resource.c Mon Jun 14 15:42:29 2004
+++ b/kernel/resource.c Mon Jun 14 15:42:29 2004
@@ -332,8 +332,8 @@
if (next->sibling->start > new->end)
break;

- /* existing resource overlaps end of new resource */
- if (next->end > new->end) {
+ /* existing resource includes new resource */
+ if (next->end >= new->end) {
parent = next;
result = 0;
goto begin;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/