Two AST driver fixes
Subsystems (3)
v2 cover Two AST driver fixes
Hello,
Here are two (attempted) fixes for the AST DRM driver. The issues they fix are both seen when the ast driver is unloaded (tested on Power9, although it looks like the second one is architecture independent).
I'm fairly confident about the first fix, as it looks pretty straight forward.
The second seems reasonable, but I don't know this area of the kernel very well.
Cheers,
Sam.
Patch set changelog follows:
Patch set v2:
Patch 1/2: drm/ast: Fix incorrect free on ioregs Patch 2/2: drm/ast: Fix connector leak during driver unload
* Changed to use drm_crtc_force_disable_all().
Patch set v1:
Patch 1/2: drm/ast: Fix incorrect free on ioregs Patch 2/2: drm/ast: Fix connector leak during driver unload
Sam Bobroff (2):
drm/ast: Fix incorrect free on ioregs drm/ast: Fix connector leak during driver unload
drivers/gpu/drm/ast/ast_fb.c | 1 + drivers/gpu/drm/ast/ast_main.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-)
Signature · 1 line
2.19.0.2.gcad72f5712
PATCH v2 1/2 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.
--- drivers/gpu/drm/ast/ast_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/gpu/drm/ast/ast_main.c +2 -1
@@ -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); }
Signature · 1 line
2.19.0.2.gcad72f5712
PATCH v2 2/2 drm/ast: Fix connector leak during driver unload
In reply to Sam BobroffWhen unloading the ast driver, a warning message is printed by drm_mode_config_cleanup() because a reference is still held to one of the drm_connector structs.
Correct this by calling drm_crtc_force_disable_all() in ast_fbdev_destroy().
---
v2 * Changed to use drm_crtc_force_disable_all().
drivers/gpu/drm/ast/ast_fb.c | 1 + 1 file changed, 1 insertion(+)
drivers/gpu/drm/ast/ast_fb.c +1 -0
@@ -263,6 +263,7 @@ static void ast_fbdev_destroy(struct drm_device *dev, {struct ast_framebuffer *afb = &afbdev->afb; +drm_crtc_force_disable_all (dev);drm_fb_helper_unregister_fbi (&afbdev->helper);if (afb->obj) {
Signature · 1 line
2.19.0.2.gcad72f5712
Re: [PATCH v2 2/2] drm/ast: Fix connector leak during driver unload
Quoted 10 lines · Sam Bobroff
When unloading the ast driver, a warning message is printed by
drm_mode_config_cleanup()because a reference is still held to one of thedrm_connectorstructs.Correct this by calling
drm_crtc_force_disable_all()inast_fbdev_destroy().Signed-off-by Sam Bobroff <[email protected]>---
v2 * Changed to usedrm_crtc_force_disable_all().
Quoted 19 lines
drivers/gpu/drm/ast/ast_fb.c | 1 + 1 file changed, 1 insertion(+)drivers/gpu/drm/ast/ast_fb.c +1
-0@@ -263,6 +263,7 @@ static void ast_fbdev_destroy(struct drm_device *dev, {struct ast_framebuffer *afb = &afbdev->afb; +drm_crtc_force_disable_all (dev);drm_fb_helper_unregister_fbi (&afbdev->helper);if (afb->obj) {Signature · 1 line
2.19.0.2.gcad72f5712
Signature · 7 lines
Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel