From 67c96ed15d2f89c76c0d4f0f6da83c1e779d6eeb Mon Sep 17 00:00:00 2001 From: Bjorn Helgaas Date: Thu, 16 Dec 2010 10:38:46 -0700 Subject: [PATCH] --- yaml --- r: 223415 b: refs/heads/master c: fcb119183c73bf0781009713f303e28b1fb13d3e h: refs/heads/master i: 223413: c9afc11b70a1748b8e8fb06a7c09b94bfe7b1ae0 223411: 039bb07db91e6c9fb3b42c7abe642f29ec39aead 223407: cb1f8eccc7eb61b52a873411e032b4ad65f43fda v: v3 --- [refs] | 2 +- trunk/include/linux/ioport.h | 1 + trunk/kernel/resource.c | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index d2718b389cc7..be6b92f64880 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c0f5ac5426f7fd82b23dd5c6a1e633b290294a08 +refs/heads/master: fcb119183c73bf0781009713f303e28b1fb13d3e diff --git a/trunk/include/linux/ioport.h b/trunk/include/linux/ioport.h index b22790268b64..e9bb22cba764 100644 --- a/trunk/include/linux/ioport.h +++ b/trunk/include/linux/ioport.h @@ -123,6 +123,7 @@ extern void reserve_region_with_split(struct resource *root, extern struct resource *insert_resource_conflict(struct resource *parent, struct resource *new); extern int insert_resource(struct resource *parent, struct resource *new); extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new); +extern void arch_remove_reservations(struct resource *avail); extern int allocate_resource(struct resource *root, struct resource *new, resource_size_t size, resource_size_t min, resource_size_t max, resource_size_t align, diff --git a/trunk/kernel/resource.c b/trunk/kernel/resource.c index 560659f7baef..798e2fae2a06 100644 --- a/trunk/kernel/resource.c +++ b/trunk/kernel/resource.c @@ -357,6 +357,10 @@ int __weak page_is_ram(unsigned long pfn) return walk_system_ram_range(pfn, 1, NULL, __is_ram) == 1; } +void __weak arch_remove_reservations(struct resource *avail) +{ +} + static resource_size_t simple_align_resource(void *data, const struct resource *avail, resource_size_t size, @@ -394,6 +398,7 @@ static int find_resource(struct resource *root, struct resource *new, struct resource *this = root->child; struct resource tmp = *new, avail, alloc; + tmp.flags = new->flags; tmp.start = root->start; /* * 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, tmp.end = root->end; resource_clip(&tmp, min, max); + arch_remove_reservations(&tmp); /* Check for overflow after ALIGN() */ avail = *new;