diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | 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 c297d31d0c97..b70247110608 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) | |||
4114 | if (err) | 4114 | if (err) |
4115 | goto err_out_free_res; | 4115 | goto err_out_free_res; |
4116 | c->vaddr = remap_pci_mem(c->paddr, 0x250); | 4116 | c->vaddr = remap_pci_mem(c->paddr, 0x250); |
4117 | if (!c->vaddr) { | ||
4118 | err = -ENOMEM; | ||
4119 | goto err_out_free_res; | ||
4120 | } | ||
4117 | err = cciss_wait_for_board_ready(c); | 4121 | err = cciss_wait_for_board_ready(c); |
4118 | if (err) | 4122 | if (err) |
4119 | goto err_out_free_res; | 4123 | goto err_out_free_res; |
@@ -4198,6 +4202,12 @@ err_out_free_res: | |||
4198 | * Deliberately omit pci_disable_device(): it does something nasty to | 4202 | * Deliberately omit pci_disable_device(): it does something nasty to |
4199 | * Smart Array controllers that pci_enable_device does not undo | 4203 | * Smart Array controllers that pci_enable_device does not undo |
4200 | */ | 4204 | */ |
4205 | if (c->transtable) | ||
4206 | iounmap(c->transtable); | ||
4207 | if (c->cfgtable) | ||
4208 | iounmap(c->cfgtable); | ||
4209 | if (c->vaddr) | ||
4210 | iounmap(c->vaddr); | ||
4201 | pci_release_regions(c->pdev); | 4211 | pci_release_regions(c->pdev); |
4202 | return err; | 4212 | return err; |
4203 | } | 4213 | } |
@@ -4745,6 +4755,8 @@ static void __devexit cciss_remove_one(struct pci_dev *pdev) | |||
4745 | pci_disable_msi(hba[i]->pdev); | 4755 | pci_disable_msi(hba[i]->pdev); |
4746 | #endif /* CONFIG_PCI_MSI */ | 4756 | #endif /* CONFIG_PCI_MSI */ |
4747 | 4757 | ||
4758 | iounmap(hba[i]->transtable); | ||
4759 | iounmap(hba[i]->cfgtable); | ||
4748 | iounmap(hba[i]->vaddr); | 4760 | iounmap(hba[i]->vaddr); |
4749 | 4761 | ||
4750 | pci_free_consistent(hba[i]->pdev, hba[i]->nr_cmds * sizeof(CommandList_struct), | 4762 | pci_free_consistent(hba[i]->pdev, hba[i]->nr_cmds * sizeof(CommandList_struct), |