aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Bobroff <sbobroff@linux.ibm.com>2018-11-05 16:57:47 +1100
committerDave Airlie <airlied@redhat.com>2018-11-29 09:41:11 +1000
commitdc25ab067645eabd037f1a23d49a666f9e0b8c68 (patch)
tree2aa17449e91b2af2a7ea762460b6f8dfc17eba5a
parent2e6e902d185027f8e3cb8b7305238f7e35d6a436 (diff)
downloadlinux-dc25ab067645eabd037f1a23d49a666f9e0b8c68.tar.gz
drm/ast: Fix incorrect free on ioregs
If the platform has no IO space, ioregs is placed next to the already allocated regs. In this case, it should not be separately freed. This prevents a kernel warning from __vunmap "Trying to vfree() nonexistent vm area" when unloading the driver. Fixes: 0dd68309b9c5 ("drm/ast: Try to use MMIO registers when PIO isn't supported") Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com> Cc: <stable@vger.kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/ast/ast_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
index dac355812adcb..373700c05a00f 100644
--- a/drivers/gpu/drm/ast/ast_main.c
+++ b/drivers/gpu/drm/ast/ast_main.c
@@ -583,7 +583,8 @@ void ast_driver_unload(struct drm_device *dev)
drm_mode_config_cleanup(dev);
ast_mm_fini(ast);
- pci_iounmap(dev->pdev, ast->ioregs);
+ if (ast->ioregs != ast->regs + AST_IO_MM_OFFSET)
+ pci_iounmap(dev->pdev, ast->ioregs);
pci_iounmap(dev->pdev, ast->regs);
kfree(ast);
}