Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kernel/resource.c: handle reinsertion of an already-inserted resource

If the same resource is inserted to the resource tree (maybe not on
purpose), a dead loop will be created. In this situation, The kernel does
not report any warning or error :(

The command below will show a endless print.
#cat /proc/iomem

[akpm@linux-foundation.org: add WARN_ON()]
Signed-off-by: Huang Shijie <shijie8@gmail.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Huang Shijie and committed by
Linus Torvalds
5de1cb2d 144ecf31

+2
+2
kernel/resource.c
··· 453 453 454 454 if (first == parent) 455 455 return first; 456 + if (WARN_ON(first == new)) /* duplicated insertion */ 457 + return first; 456 458 457 459 if ((first->start > new->start) || (first->end < new->end)) 458 460 break;