Skip to content

Commit

Permalink
staging: omapdrm: fix crash when freeing bad fb
Browse files Browse the repository at this point in the history
During unload, don't cleanup the framebuffer if it is not valid.

Signed-off-by: Andy Gross <andy.gross@ti.com>
Reviewed-by: Rob Clark <rob.clark@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Andy Gross authored and Greg Kroah-Hartman committed Jun 11, 2012
1 parent 279bf2e commit afb6a6a
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions drivers/staging/omapdrm/omap_fbdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,8 @@ static int omap_fbdev_create(struct drm_fb_helper *helper,
*/
ret = omap_gem_get_paddr(fbdev->bo, &paddr, true);
if (ret) {
dev_err(dev->dev, "could not map (paddr)!\n");
dev_err(dev->dev,
"could not map (paddr)! Skipping framebuffer alloc\n");
ret = -ENOMEM;
goto fail;
}
Expand Down Expand Up @@ -388,8 +389,11 @@ void omap_fbdev_free(struct drm_device *dev)

fbi = helper->fbdev;

unregister_framebuffer(fbi);
framebuffer_release(fbi);
/* only cleanup framebuffer if it is present */
if (fbi) {
unregister_framebuffer(fbi);
framebuffer_release(fbi);
}

drm_fb_helper_fini(helper);

Expand Down

0 comments on commit afb6a6a

Please sign in to comment.