diff options
Diffstat (limited to 'kernel/resource.c')
-rw-r--r-- | kernel/resource.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/resource.c b/kernel/resource.c index 560659f7baef..798e2fae2a06 100644 --- a/kernel/resource.c +++ b/kernel/resource.c | |||
@@ -357,6 +357,10 @@ int __weak page_is_ram(unsigned long pfn) | |||
357 | return walk_system_ram_range(pfn, 1, NULL, __is_ram) == 1; | 357 | return walk_system_ram_range(pfn, 1, NULL, __is_ram) == 1; |
358 | } | 358 | } |
359 | 359 | ||
360 | void __weak arch_remove_reservations(struct resource *avail) | ||
361 | { | ||
362 | } | ||
363 | |||
360 | static resource_size_t simple_align_resource(void *data, | 364 | static resource_size_t simple_align_resource(void *data, |
361 | const struct resource *avail, | 365 | const struct resource *avail, |
362 | resource_size_t size, | 366 | resource_size_t size, |
@@ -394,6 +398,7 @@ static int find_resource(struct resource *root, struct resource *new, | |||
394 | struct resource *this = root->child; | 398 | struct resource *this = root->child; |
395 | struct resource tmp = *new, avail, alloc; | 399 | struct resource tmp = *new, avail, alloc; |
396 | 400 | ||
401 | tmp.flags = new->flags; | ||
397 | tmp.start = root->start; | 402 | tmp.start = root->start; |
398 | /* | 403 | /* |
399 | * Skip past an allocated resource that starts at 0, since the assignment | 404 | * Skip past an allocated resource that starts at 0, since the assignment |
@@ -410,6 +415,7 @@ static int find_resource(struct resource *root, struct resource *new, | |||
410 | tmp.end = root->end; | 415 | tmp.end = root->end; |
411 | 416 | ||
412 | resource_clip(&tmp, min, max); | 417 | resource_clip(&tmp, min, max); |
418 | arch_remove_reservations(&tmp); | ||
413 | 419 | ||
414 | /* Check for overflow after ALIGN() */ | 420 | /* Check for overflow after ALIGN() */ |
415 | avail = *new; | 421 | avail = *new; |