From f2bb4d183b0b351907e0d353116752575db0adec Mon Sep 17 00:00:00 2001 From: Bjorn Helgaas Date: Tue, 26 Oct 2010 15:41:18 -0600 Subject: [PATCH] --- yaml --- r: 219561 b: refs/heads/master c: 5d6b1fa301b13cc651ee717a9b518124dea2f814 h: refs/heads/master i: 219559: c95e37b057bb21a8e314502fcc38708c7ef2ae08 v: v3 --- [refs] | 2 +- trunk/kernel/resource.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index a01285e7fca4..6268f54f29ca 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a9cea017411c95ec789092971f9baaef1f826883 +refs/heads/master: 5d6b1fa301b13cc651ee717a9b518124dea2f814 diff --git a/trunk/kernel/resource.c b/trunk/kernel/resource.c index 7dc8ad24f915..26e9f2546923 100644 --- a/trunk/kernel/resource.c +++ b/trunk/kernel/resource.c @@ -365,6 +365,15 @@ static resource_size_t simple_align_resource(void *data, return avail->start; } +static void resource_clip(struct resource *res, resource_size_t min, + resource_size_t max) +{ + if (res->start < min) + res->start = min; + if (res->end > max) + res->end = max; +} + /* * Find empty slot in the resource tree given range and alignment. */ @@ -394,10 +403,8 @@ static int find_resource(struct resource *root, struct resource *new, tmp.end = this->start - 1; else tmp.end = root->end; - if (tmp.start < min) - tmp.start = min; - if (tmp.end > max) - tmp.end = max; + + resource_clip(&tmp, min, max); tmp.start = ALIGN(tmp.start, align); tmp.start = alignf(alignf_data, &tmp, size, align);