Move iounmap and pci_release_region to tpci200_unregister(), as it is the place where the clean-up of the device is done.
Also, renamed iounmap() to pci_iounmap() as the mapped region was requested from PCI bus. Signed-off-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com> --- drivers/staging/ipack/bridges/tpci200.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/ipack/bridges/tpci200.c b/drivers/staging/ipack/bridges/tpci200.c index 22e3da1..383571c 100644 --- a/drivers/staging/ipack/bridges/tpci200.c +++ b/drivers/staging/ipack/bridges/tpci200.c @@ -64,10 +64,12 @@ static void tpci200_unregister(struct tpci200_board *tpci200) pci_iounmap(tpci200->info->pdev, tpci200->info->interface_regs); pci_iounmap(tpci200->info->pdev, tpci200->info->ioidint_space); pci_iounmap(tpci200->info->pdev, tpci200->info->mem8_space); + pci_iounmap(tpci200->info->pdev, tpci200->info->cfg_regs); pci_release_region(tpci200->info->pdev, TPCI200_IP_INTERFACE_BAR); pci_release_region(tpci200->info->pdev, TPCI200_IO_ID_INT_SPACES_BAR); pci_release_region(tpci200->info->pdev, TPCI200_MEM8_SPACE_BAR); + pci_release_region(tpci200->info->pdev, TPCI200_CFG_MEM_BAR); pci_disable_device(tpci200->info->pdev); pci_dev_put(tpci200->info->pdev); @@ -750,9 +752,6 @@ static void __tpci200_pci_remove(struct tpci200_board *tpci200) tpci200_uninstall(tpci200); ipack_bus_unregister(tpci200->info->ipack_bus); - iounmap(tpci200->info->cfg_regs); - pci_release_region(tpci200->info->pdev, TPCI200_CFG_MEM_BAR); - kfree(tpci200->info); kfree(tpci200); } -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/