summaryrefslogtreecommitdiff
path: root/kernel/resource.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2011-10-06 12:48:57 +0200
committerIngo Molnar <mingo@elte.hu>2011-10-06 12:49:21 +0200
commit9d014020234525ae100879d71078a4bcb4849195 (patch)
treea0d6c0776670cb876e5a8118a4e6ed28d8f51cbc /kernel/resource.c
parent92e51938f5d005026ba4bb5b1fae5a86dc195b86 (diff)
parent976d167615b64e14bc1491ca51d424e2ba9a5e84 (diff)
Merge commit 'v3.1-rc9' into perf/core
Merge reason: pick up latest fixes. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/resource.c')
-rw-r--r--kernel/resource.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/resource.c b/kernel/resource.c
index 3b3cedc52592..c8dc249da5ce 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -419,6 +419,9 @@ static int __find_resource(struct resource *root, struct resource *old,
else
tmp.end = root->end;
+ if (tmp.end < tmp.start)
+ goto next;
+
resource_clip(&tmp, constraint->min, constraint->max);
arch_remove_reservations(&tmp);
@@ -436,8 +439,10 @@ static int __find_resource(struct resource *root, struct resource *old,
return 0;
}
}
- if (!this)
+
+next: if (!this || this->end == root->end)
break;
+
if (this != old)
tmp.start = this->end + 1;
this = this->sibling;