Re: [PATCH v2 3/4] hpet: clean up io mapping when hpet_alloc() fails

From: Venkatesh Pallipadi
Date: Thu Mar 18 2010 - 15:26:10 EST


Acked-by: Venkatesh Pallipadi <venki@xxxxxxxxxx>

On Thu, Mar 18, 2010 at 10:59 AM, Bjorn Helgaas <bjorn.helgaas@xxxxxx> wrote:
>
> When hpet_alloc() fails, we should iounmap() the timer so we don't leak
> the mapping.
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
> ---
>
>  drivers/char/hpet.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
>
>
> diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
> index d132fef..8961985 100644
> --- a/drivers/char/hpet.c
> +++ b/drivers/char/hpet.c
> @@ -904,7 +904,7 @@ static int hpet_pnp_add(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
>  {
>        struct hpet_data data;
>        struct resource *mem, *irq;
> -       int i;
> +       int i, ret;
>
>        memset(&data, 0, sizeof(data));
>
> @@ -924,7 +924,11 @@ static int hpet_pnp_add(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
>        data.hd_phys_address = mem->start;
>        data.hd_address = ioremap(mem->start, resource_size(mem));
>
> -       return hpet_alloc(&data);
> +       ret = hpet_alloc(&data);
> +       if (ret)
> +               iounmap(data.hd_address);
> +
> +       return ret;
>  }
>
>  static void hpet_pnp_remove(struct pnp_dev *dev)
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/