diff options
| -rw-r--r-- | arch/sparc/kernel/ioport.c | 4 | ||||
| -rw-r--r-- | include/linux/ioport.h | 23 | ||||
| -rw-r--r-- | kernel/resource.c | 34 | 
3 files changed, 33 insertions, 28 deletions
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c index 99d716b9507..79d177149fd 100644 --- a/arch/sparc/kernel/ioport.c +++ b/arch/sparc/kernel/ioport.c @@ -208,7 +208,7 @@ _sparc_ioremap(struct resource *res, u32 bus, u32 pa, int sz)  	pa &= PAGE_MASK;  	sparc_mapiorange(bus, pa, res->start, res->end - res->start + 1); -	return (void __iomem *) (res->start + offset); +	return (void __iomem *)(unsigned long)(res->start + offset);  }  /* @@ -325,7 +325,7 @@ void *sbus_alloc_consistent(struct sbus_dev *sdev, long len, u32 *dma_addrp)  		res->name = sdev->prom_name;  	} -	return (void *)res->start; +	return (void *)(unsigned long)res->start;  err_noiommu:  	release_resource(res); diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 535bd958589..d4895236b7e 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -98,31 +98,34 @@ extern struct resource * ____request_resource(struct resource *root, struct reso  extern int release_resource(struct resource *new);  extern __deprecated_for_modules int insert_resource(struct resource *parent, struct resource *new);  extern int allocate_resource(struct resource *root, struct resource *new, -			     unsigned long size, -			     unsigned long min, unsigned long max, -			     unsigned long align, +			     resource_size_t size, resource_size_t min, +			     resource_size_t max, resource_size_t align,  			     void (*alignf)(void *, struct resource *, -					    unsigned long, unsigned long), +					    resource_size_t, resource_size_t),  			     void *alignf_data); -int adjust_resource(struct resource *res, unsigned long start, -		    unsigned long size); +int adjust_resource(struct resource *res, resource_size_t start, +		    resource_size_t size);  /* Convenience shorthand with allocation */  #define request_region(start,n,name)	__request_region(&ioport_resource, (start), (n), (name))  #define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))  #define rename_region(region, newname) do { (region)->name = (newname); } while (0) -extern struct resource * __request_region(struct resource *, unsigned long start, unsigned long n, const char *name); +extern struct resource * __request_region(struct resource *, +					resource_size_t start, +					resource_size_t n, const char *name);  /* Compatibility cruft */  #define release_region(start,n)	__release_region(&ioport_resource, (start), (n))  #define check_mem_region(start,n)	__check_region(&iomem_resource, (start), (n))  #define release_mem_region(start,n)	__release_region(&iomem_resource, (start), (n)) -extern int __check_region(struct resource *, unsigned long, unsigned long); -extern void __release_region(struct resource *, unsigned long, unsigned long); +extern int __check_region(struct resource *, resource_size_t, resource_size_t); +extern void __release_region(struct resource *, resource_size_t, +				resource_size_t); -static inline int __deprecated check_region(unsigned long s, unsigned long n) +static inline int __deprecated check_region(resource_size_t s, +						resource_size_t n)  {  	return __check_region(&ioport_resource, s, n);  } diff --git a/kernel/resource.c b/kernel/resource.c index ea5f7811a40..54835c02ab3 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -151,8 +151,8 @@ __initcall(ioresources_init);  /* Return the conflict entry if you can't request it */  static struct resource * __request_resource(struct resource *root, struct resource *new)  { -	unsigned long start = new->start; -	unsigned long end = new->end; +	resource_size_t start = new->start; +	resource_size_t end = new->end;  	struct resource *tmp, **p;  	if (end < start) @@ -236,11 +236,10 @@ EXPORT_SYMBOL(release_resource);   * Find empty slot in the resource tree given range and alignment.   */  static int find_resource(struct resource *root, struct resource *new, -			 unsigned long size, -			 unsigned long min, unsigned long max, -			 unsigned long align, +			 resource_size_t size, resource_size_t min, +			 resource_size_t max, resource_size_t align,  			 void (*alignf)(void *, struct resource *, -					unsigned long, unsigned long), +					resource_size_t, resource_size_t),  			 void *alignf_data)  {  	struct resource *this = root->child; @@ -282,11 +281,10 @@ static int find_resource(struct resource *root, struct resource *new,   * Allocate empty slot in the resource tree given range and alignment.   */  int allocate_resource(struct resource *root, struct resource *new, -		      unsigned long size, -		      unsigned long min, unsigned long max, -		      unsigned long align, +		      resource_size_t size, resource_size_t min, +		      resource_size_t max, resource_size_t align,  		      void (*alignf)(void *, struct resource *, -				     unsigned long, unsigned long), +				     resource_size_t, resource_size_t),  		      void *alignf_data)  {  	int err; @@ -378,10 +376,10 @@ EXPORT_SYMBOL(insert_resource);   * arguments.  Returns -EBUSY if it can't fit.  Existing children of   * the resource are assumed to be immutable.   */ -int adjust_resource(struct resource *res, unsigned long start, unsigned long size) +int adjust_resource(struct resource *res, resource_size_t start, resource_size_t size)  {  	struct resource *tmp, *parent = res->parent; -	unsigned long end = start + size - 1; +	resource_size_t end = start + size - 1;  	int result = -EBUSY;  	write_lock(&resource_lock); @@ -428,7 +426,9 @@ EXPORT_SYMBOL(adjust_resource);   *   * Release-region releases a matching busy region.   */ -struct resource * __request_region(struct resource *parent, unsigned long start, unsigned long n, const char *name) +struct resource * __request_region(struct resource *parent, +				   resource_size_t start, resource_size_t n, +				   const char *name)  {  	struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL); @@ -464,7 +464,8 @@ struct resource * __request_region(struct resource *parent, unsigned long start,  EXPORT_SYMBOL(__request_region); -int __check_region(struct resource *parent, unsigned long start, unsigned long n) +int __check_region(struct resource *parent, resource_size_t start, +			resource_size_t n)  {  	struct resource * res; @@ -479,10 +480,11 @@ int __check_region(struct resource *parent, unsigned long start, unsigned long n  EXPORT_SYMBOL(__check_region); -void __release_region(struct resource *parent, unsigned long start, unsigned long n) +void __release_region(struct resource *parent, resource_size_t start, +			resource_size_t n)  {  	struct resource **p; -	unsigned long end; +	resource_size_t end;  	p = &parent->child;  	end = start + n - 1;  |