cciss: fix reply pool and block fetch table memory leaks
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Tue, 3 May 2011 19:53:21 +0000 (14:53 -0500)
committerJens Axboe <jaxboe@fusionio.com>
Fri, 6 May 2011 14:23:50 +0000 (08:23 -0600)
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
drivers/block/cciss.c

index 63fe05af2c5de75a008d654711e9baafeb905ee1..d60448941d535c71f4b4db6465acc6d070519d73 100644 (file)
@@ -4988,6 +4988,10 @@ static void __devexit cciss_remove_one(struct pci_dev *pdev)
                kfree(h->scatter_list[j]);
        kfree(h->scatter_list);
        cciss_free_sg_chain_blocks(h->cmd_sg_list, h->nr_cmds);
+       kfree(h->blockFetchTable);
+       if (h->reply_pool)
+               pci_free_consistent(h->pdev, h->max_commands * sizeof(__u64),
+                               h->reply_pool, h->reply_pool_dhandle);
        /*
         * Deliberately omit pci_disable_device(): it does something nasty to
         * Smart Array controllers that pci_enable_device does not undo