lkml.org 
[lkml]   [2010]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 09/26] cciss: fix leak of ioremapped memory
    From
    Date
    From: Stephen M. Cameron <scameron@beardog.cce.hp.com>

    cciss: fix leak of ioremapped memory
    in cciss_pci_init error path.

    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    ---
    drivers/block/cciss.c | 12 ++++++++++++
    1 files changed, 12 insertions(+), 0 deletions(-)

    diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
    index c297d31..b702471 100644
    --- a/drivers/block/cciss.c
    +++ b/drivers/block/cciss.c
    @@ -4114,6 +4114,10 @@ static int __devinit cciss_pci_init(ctlr_info_t *c)
    if (err)
    goto err_out_free_res;
    c->vaddr = remap_pci_mem(c->paddr, 0x250);
    + if (!c->vaddr) {
    + err = -ENOMEM;
    + goto err_out_free_res;
    + }
    err = cciss_wait_for_board_ready(c);
    if (err)
    goto err_out_free_res;
    @@ -4198,6 +4202,12 @@ err_out_free_res:
    * Deliberately omit pci_disable_device(): it does something nasty to
    * Smart Array controllers that pci_enable_device does not undo
    */
    + if (c->transtable)
    + iounmap(c->transtable);
    + if (c->cfgtable)
    + iounmap(c->cfgtable);
    + if (c->vaddr)
    + iounmap(c->vaddr);
    pci_release_regions(c->pdev);
    return err;
    }
    @@ -4745,6 +4755,8 @@ static void __devexit cciss_remove_one(struct pci_dev *pdev)
    pci_disable_msi(hba[i]->pdev);
    #endif /* CONFIG_PCI_MSI */

    + iounmap(hba[i]->transtable);
    + iounmap(hba[i]->cfgtable);
    iounmap(hba[i]->vaddr);

    pci_free_consistent(hba[i]->pdev, hba[i]->nr_cmds * sizeof(CommandList_struct),


    \
     
     \ /
      Last update: 2010-07-19 21:05    [W:0.021 / U:0.152 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site