Skip to content

Commit

Permalink
drm/vmwgfx: Fix depth input into drm_mode_legacy_fb_format
Browse files Browse the repository at this point in the history
Currently the pitch is passed in as depth.  This causes
drm_mode_legacy_fb_format() to return the wrong pixel format.

The wrong pixel format will be rejected by vmw_kms_new_framebuffer(),
thus leaving par->set_fb to NULL.

This eventually causes a crash in vmw_fb_setcolreg() when the code
tries to dereference par->set_fb.

Signed-off-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
  • Loading branch information
Sinclair Yeh committed Jan 27, 2017
1 parent 54a07c7 commit 242ef5d
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -481,8 +481,7 @@ static int vmw_fb_kms_framebuffer(struct fb_info *info)
mode_cmd.height = var->yres;
mode_cmd.pitches[0] = ((var->bits_per_pixel + 7) / 8) * mode_cmd.width;
mode_cmd.pixel_format =
drm_mode_legacy_fb_format(var->bits_per_pixel,
((var->bits_per_pixel + 7) / 8) * mode_cmd.width);
drm_mode_legacy_fb_format(var->bits_per_pixel, depth);

cur_fb = par->set_fb;
if (cur_fb && cur_fb->width == mode_cmd.width &&
Expand Down

0 comments on commit 242ef5d

Please sign in to comment.