Re: [PATCH]: complete cleanup of check_region

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, 7 Jun 2007, Surya wrote:

> 
> Hi all,
> 	This patch cleans up all the instances of check_region and
> __check_region and replaces them with request_region and
> __request_region. Applies and compiles clean on latest Linus tree.
> 
> Files affected:
> 	drivers/cdrom/sbpcd.c
> 	drivers/pnp/resource.c
> 	include/linux/ioport.h
> 	kernel/resource.c
> 	sound/oss/pss.c
> 
> 
> thanks.
> 
> 
> Signed-off-by: Surya Prabhakar <[email protected]>


in drivers/cdrom/sbpcd.c the message string should be changed too.

Acked-by: Eberhard Moenkeberg <[email protected]>

> --- 
> 
> diff --git a/drivers/cdrom/sbpcd.c b/drivers/cdrom/sbpcd.c
> index a1283b1..2c1355e 100644
> --- a/drivers/cdrom/sbpcd.c
> +++ b/drivers/cdrom/sbpcd.c
> @@ -358,6 +358,11 @@
>   * Add bio/kdev_t changes for 2.5.x required to make it work again. 
>   * Still room for improvement in the request handling here if anyone
>   * actually cares.  Bring your own chainsaw.    Paul G.  02/2002
> + *
> + *
> + * Cleaned up the reference for deprecated check_region to 
> + * request_region.
> + * Thu Jun  7 12:14:00 IST 2007 Surya <[email protected]>
>   */
>  
>  
> @@ -5670,7 +5675,7 @@ int __init sbpcd_init(void)
>  	{
>  		addr[1]=sbpcd[port_index];
>  		if (addr[1]==0) break;
> -		if (check_region(addr[1],4))
> +		if (request_region(addr[1],4, "sbpcd driver"))
>  		{
>  			msg(DBG_INF,"check_region: %03X is not free.\n",addr[1]);
>  			continue;
> diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c
> index a685fbe..2be8001 100644
> --- a/drivers/pnp/resource.c
> +++ b/drivers/pnp/resource.c
> @@ -251,7 +251,7 @@ int pnp_check_port(struct pnp_dev * dev, int idx)
>  	/* check if the resource is already in use, skip if the
>  	 * device is active because it itself may be in use */
>  	if(!dev->active) {
> -		if (__check_region(&ioport_resource, *port, length(port,end)))
> +		if (__request_region(&ioport_resource, *port, length(port,end), "isapnp request-region"))
>  			return 0;
>  	}
>  
> diff --git a/include/linux/ioport.h b/include/linux/ioport.h
> index 71ea923..ebe6c22 100644
> --- a/include/linux/ioport.h
> +++ b/include/linux/ioport.h
> @@ -124,19 +124,12 @@ extern struct resource * __request_region(struct resource *,
>  
>  /* 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 check_mem_region(start,n)	__request_region(&iomem_resource, (start), (n), "request-region")
>  #define release_mem_region(start,n)	__release_region(&iomem_resource, (start), (n))
>  
> -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(resource_size_t s,
> -						resource_size_t n)
> -{
> -	return __check_region(&ioport_resource, s, n);
> -}
> -
>  /* Wrappers for managed devices */
>  struct device;
>  #define devm_request_region(dev,start,n,name) \
> diff --git a/kernel/resource.c b/kernel/resource.c
> index 9bd14fd..99a97ca 100644
> --- a/kernel/resource.c
> +++ b/kernel/resource.c
> @@ -520,36 +520,6 @@ struct resource * __request_region(struct resource *parent,
>  EXPORT_SYMBOL(__request_region);
>  
>  /**
> - * __check_region - check if a resource region is busy or free
> - * @parent: parent resource descriptor
> - * @start: resource start address
> - * @n: resource region size
> - *
> - * Returns 0 if the region is free at the moment it is checked,
> - * returns %-EBUSY if the region is busy.
> - *
> - * NOTE:
> - * This function is deprecated because its use is racy.
> - * Even if it returns 0, a subsequent call to request_region()
> - * may fail because another driver etc. just allocated the region.
> - * Do NOT use it.  It will be removed from the kernel.
> - */
> -int __check_region(struct resource *parent, resource_size_t start,
> -			resource_size_t n)
> -{
> -	struct resource * res;
> -
> -	res = __request_region(parent, start, n, "check-region");
> -	if (!res)
> -		return -EBUSY;
> -
> -	release_resource(res);
> -	kfree(res);
> -	return 0;
> -}
> -EXPORT_SYMBOL(__check_region);
> -
> -/**
>   * __release_region - release a previously reserved resource region
>   * @parent: parent resource descriptor
>   * @start: resource start address
> diff --git a/sound/oss/pss.c b/sound/oss/pss.c
> index ece428b..c61a1a3 100644
> --- a/sound/oss/pss.c
> +++ b/sound/oss/pss.c
> @@ -54,6 +54,9 @@
>   *	    Added __init to probe_pss(), attach_pss() and probe_pss_mpu()
>   * 02-Jan-2001: Chris Rankin
>   *          Specify that this module owns the coprocessor
> + * 07-Jun-2007: Surya Prabhakar <[email protected]>
> + *	    Cleaned up the reference for deprecated check_region to 
> + * 	    request_region.
>   */
>  
>  
> @@ -677,7 +680,7 @@ static void configure_nonsound_components(void)
>  	{
>  		printk(KERN_INFO "PSS: CDROM port not enabled.\n");
>  	}
> -	else if(check_region(pss_cdrom_port, 2))
> +	else if(request_region(pss_cdrom_port, 2, "CDROM config"))
>  	{
>  		printk(KERN_ERR "PSS: CDROM I/O port conflict.\n");
>  	}
> 
> 
> -- 
> surya .
> 07/06/2007


Viele Grüße
Eberhard Mönkeberg ([email protected], [email protected])

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux