aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/resource.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/kernel/resource.c b/kernel/resource.c
index ea5f7811a408..54835c02ab37 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -151,8 +151,8 @@ __initcall(ioresources_init);
151/* Return the conflict entry if you can't request it */ 151/* Return the conflict entry if you can't request it */
152static struct resource * __request_resource(struct resource *root, struct resource *new) 152static struct resource * __request_resource(struct resource *root, struct resource *new)
153{ 153{
154 unsigned long start = new->start; 154 resource_size_t start = new->start;
155 unsigned long end = new->end; 155 resource_size_t end = new->end;
156 struct resource *tmp, **p; 156 struct resource *tmp, **p;
157 157
158 if (end < start) 158 if (end < start)
@@ -236,11 +236,10 @@ EXPORT_SYMBOL(release_resource);
236 * Find empty slot in the resource tree given range and alignment. 236 * Find empty slot in the resource tree given range and alignment.
237 */ 237 */
238static int find_resource(struct resource *root, struct resource *new, 238static int find_resource(struct resource *root, struct resource *new,
239 unsigned long size, 239 resource_size_t size, resource_size_t min,
240 unsigned long min, unsigned long max, 240 resource_size_t max, resource_size_t align,
241 unsigned long align,
242 void (*alignf)(void *, struct resource *, 241 void (*alignf)(void *, struct resource *,
243 unsigned long, unsigned long), 242 resource_size_t, resource_size_t),
244 void *alignf_data) 243 void *alignf_data)
245{ 244{
246 struct resource *this = root->child; 245 struct resource *this = root->child;
@@ -282,11 +281,10 @@ static int find_resource(struct resource *root, struct resource *new,
282 * Allocate empty slot in the resource tree given range and alignment. 281 * Allocate empty slot in the resource tree given range and alignment.
283 */ 282 */
284int allocate_resource(struct resource *root, struct resource *new, 283int allocate_resource(struct resource *root, struct resource *new,
285 unsigned long size, 284 resource_size_t size, resource_size_t min,
286 unsigned long min, unsigned long max, 285 resource_size_t max, resource_size_t align,
287 unsigned long align,
288 void (*alignf)(void *, struct resource *, 286 void (*alignf)(void *, struct resource *,
289 unsigned long, unsigned long), 287 resource_size_t, resource_size_t),
290 void *alignf_data) 288 void *alignf_data)
291{ 289{
292 int err; 290 int err;
@@ -378,10 +376,10 @@ EXPORT_SYMBOL(insert_resource);
378 * arguments. Returns -EBUSY if it can't fit. Existing children of 376 * arguments. Returns -EBUSY if it can't fit. Existing children of
379 * the resource are assumed to be immutable. 377 * the resource are assumed to be immutable.
380 */ 378 */
381int adjust_resource(struct resource *res, unsigned long start, unsigned long size) 379int adjust_resource(struct resource *res, resource_size_t start, resource_size_t size)
382{ 380{
383 struct resource *tmp, *parent = res->parent; 381 struct resource *tmp, *parent = res->parent;
384 unsigned long end = start + size - 1; 382 resource_size_t end = start + size - 1;
385 int result = -EBUSY; 383 int result = -EBUSY;
386 384
387 write_lock(&resource_lock); 385 write_lock(&resource_lock);
@@ -428,7 +426,9 @@ EXPORT_SYMBOL(adjust_resource);
428 * 426 *
429 * Release-region releases a matching busy region. 427 * Release-region releases a matching busy region.
430 */ 428 */
431struct resource * __request_region(struct resource *parent, unsigned long start, unsigned long n, const char *name) 429struct resource * __request_region(struct resource *parent,
430 resource_size_t start, resource_size_t n,
431 const char *name)
432{ 432{
433 struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL); 433 struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL);
434 434
@@ -464,7 +464,8 @@ struct resource * __request_region(struct resource *parent, unsigned long start,
464 464
465EXPORT_SYMBOL(__request_region); 465EXPORT_SYMBOL(__request_region);
466 466
467int __check_region(struct resource *parent, unsigned long start, unsigned long n) 467int __check_region(struct resource *parent, resource_size_t start,
468 resource_size_t n)
468{ 469{
469 struct resource * res; 470 struct resource * res;
470 471
@@ -479,10 +480,11 @@ int __check_region(struct resource *parent, unsigned long start, unsigned long n
479 480
480EXPORT_SYMBOL(__check_region); 481EXPORT_SYMBOL(__check_region);
481 482
482void __release_region(struct resource *parent, unsigned long start, unsigned long n) 483void __release_region(struct resource *parent, resource_size_t start,
484 resource_size_t n)
483{ 485{
484 struct resource **p; 486 struct resource **p;
485 unsigned long end; 487 resource_size_t end;
486 488
487 p = &parent->child; 489 p = &parent->child;
488 end = start + n - 1; 490 end = start + n - 1;