From 13a0c40a49380752d8fbe1ff27009df2b5c71fcf Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Thu, 16 Oct 2014 12:19:37 +0300 Subject: [PATCH] OMAPFB: fix releasing overlays omapfb disables all the overlays when freeing resources, but it should also remove those overlays from overlay managers. Not doing so causes a crash if omapfb is unbound and bound, or omapfb module is removed and loaded, while keeping omapdss around. Fix this by calling unset_manager() for all overlays. Signed-off-by: Tomi Valkeinen --- drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c index a04096a63cb1..ce8a70570756 100644 --- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c @@ -1837,6 +1837,9 @@ static void omapfb_free_resources(struct omapfb2_device *fbdev) struct omap_overlay *ovl = fbdev->overlays[i]; ovl->disable(ovl); + + if (ovl->manager) + ovl->unset_manager(ovl); } for (i = 0; i < fbdev->num_fbs; i++) -- 2.39.5