[PATCH 1/2] UBUNTU: SAUCE: pnp: add PNP resource range checking function
Tim Gardner
tim.gardner at canonical.com
Wed May 6 13:56:32 UTC 2009
Andy Whitcroft wrote:
> From: Bjorn Helgaas <bjorn.helgaas at hp.com>
>
> BugLink: http://bugs.launchpad.net/bugs/349314
>
> Add a PNP resource range check function, indicating whether a resource
> has been assigned to any device.
>
> [apw at canonical.com: fixed up exports et al]
> Original Author: Bjorn Helgaas <bjorn.helgaas at hp.com>
> Signed-off-by: Andy Whitcroft <apw at canonical.com>
> ---
> drivers/pnp/resource.c | 18 ++++++++++++++++++
> include/linux/pnp.h | 2 ++
> 2 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c
> index f604061..ba97654 100644
> --- a/drivers/pnp/resource.c
> +++ b/drivers/pnp/resource.c
> @@ -638,6 +638,24 @@ int pnp_possible_config(struct pnp_dev *dev, int type, resource_size_t start,
> }
> EXPORT_SYMBOL(pnp_possible_config);
>
> +int pnp_range_reserved(resource_size_t start, resource_size_t end)
> +{
> + struct pnp_dev *dev;
> + struct pnp_resource *pnp_res;
> + resource_size_t *dev_start, *dev_end;
> +
> + pnp_for_each_dev(dev) {
> + list_for_each_entry(pnp_res, &dev->resources, list) {
> + dev_start = &pnp_res->res.start;
> + dev_end = &pnp_res->res.end;
> + if (ranged_conflict(&start, &end, dev_start, dev_end))
> + return 1;
> + }
> + }
> + return 0;
> +}
> +EXPORT_SYMBOL(pnp_range_reserved);
> +
> /* format is: pnp_reserve_irq=irq1[,irq2] .... */
> static int __init pnp_setup_reserve_irq(char *str)
> {
> diff --git a/include/linux/pnp.h b/include/linux/pnp.h
> index ca3c887..b063c73 100644
> --- a/include/linux/pnp.h
> +++ b/include/linux/pnp.h
> @@ -446,6 +446,7 @@ int pnp_start_dev(struct pnp_dev *dev);
> int pnp_stop_dev(struct pnp_dev *dev);
> int pnp_activate_dev(struct pnp_dev *dev);
> int pnp_disable_dev(struct pnp_dev *dev);
> +int pnp_range_reserved(resource_size_t start, resource_size_t end);
>
> /* protocol helpers */
> int pnp_is_active(struct pnp_dev *dev);
> @@ -476,6 +477,7 @@ static inline int pnp_start_dev(struct pnp_dev *dev) { return -ENODEV; }
> static inline int pnp_stop_dev(struct pnp_dev *dev) { return -ENODEV; }
> static inline int pnp_activate_dev(struct pnp_dev *dev) { return -ENODEV; }
> static inline int pnp_disable_dev(struct pnp_dev *dev) { return -ENODEV; }
> +static inline int pnp_range_reserved(resource_size_t start, resource_size_t end) { return 0;}
>
> /* protocol helpers */
> static inline int pnp_is_active(struct pnp_dev *dev) { return 0; }
ACK - checkpatch issues notwithstanding.
--
Tim Gardner tim.gardner at canonical.com
More information about the kernel-team
mailing list