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>
This commit is contained in:
parent
144ecf310e
commit
5de1cb2d0f
|
@ -453,6 +453,8 @@ static struct resource * __insert_resource(struct resource *parent, struct resou
|
||||||
|
|
||||||
if (first == parent)
|
if (first == parent)
|
||||||
return first;
|
return first;
|
||||||
|
if (WARN_ON(first == new)) /* duplicated insertion */
|
||||||
|
return first;
|
||||||
|
|
||||||
if ((first->start > new->start) || (first->end < new->end))
|
if ((first->start > new->start) || (first->end < new->end))
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue