[PATCH] drm/cma-helper: fixup compilation
Thierry Reding
thierry.reding at avionic-design.de
Mon Feb 18 23:43:39 PST 2013
On Fri, Feb 15, 2013 at 11:24:35AM +0100, Daniel Vetter wrote:
> /me grabs a few brown paper bags
>
> So it looks like I've broken compilation in
>
> commit 6aed8ec3f76a22217c9ae183d32b1aa990bed069
> Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> Date: Sun Jan 20 17:32:21 2013 +0100
>
> drm: review locking for drm_fb_helper_restore_fbdev_mode
>
> Fix it up again.
>
> Reported-by: Wu Fengguang <fengguang.wu at intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/drm_fb_cma_helper.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> index e851658..ef68e34 100644
> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> @@ -377,6 +377,8 @@ EXPORT_SYMBOL_GPL(drm_fbdev_cma_fini);
> */
> void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma)
> {
> + struct drm_device *dev = fbdev_cma->fb_helper.dev;
> +
> drm_modeset_lock_all(dev);
> if (fbdev_cma)
> drm_fb_helper_restore_fbdev_mode(&fbdev_cma->fb_helper);
The above check indicates that fbdev_cma might be NULL, so you're
potentially dereferencing NULL when assigning the dev variable.
Perhaps a better way would be to move the locking into the if block, as
in the patch below.
Thierry
diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
index e851658..54a250f 100644
--- a/drivers/gpu/drm/drm_fb_cma_helper.c
+++ b/drivers/gpu/drm/drm_fb_cma_helper.c
@@ -377,10 +377,11 @@ EXPORT_SYMBOL_GPL(drm_fbdev_cma_fini);
*/
void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma)
{
- drm_modeset_lock_all(dev);
- if (fbdev_cma)
+ if (fbdev_cma) {
+ drm_modeset_lock_all(fbdev_cma->fb_helper.dev);
drm_fb_helper_restore_fbdev_mode(&fbdev_cma->fb_helper);
- drm_modeset_unlock_all(dev);
+ drm_modeset_unlock_all(fbdev_cma->fb_helper.dev);
+ }
}
EXPORT_SYMBOL_GPL(drm_fbdev_cma_restore_mode);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20130219/801e1ee0/attachment.pgp>
More information about the dri-devel
mailing list