lkml.org 
[lkml]   [2010]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v2 3/4] hpet: clean up io mapping when hpet_alloc() fails
    From
    Date

    When hpet_alloc() fails, we should iounmap() the timer so we don't leak
    the mapping.

    Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
    ---

    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)


    \
     
     \ /
      Last update: 2010-03-18 19:01    [W:0.023 / U:92.372 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site