I 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>
Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
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;