diff options
Diffstat (limited to 'kernel')
| -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; |
