Re: [PATCH] drm/vmwgfx: Fix src/dst_pitch confusion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Martin Krastev <krastevm@xxxxxxxxxx>

We reviewers botched that one.

Reviewed-by: Martin Krastev <krastevm@xxxxxxxxxx>


Regards,

Martin


On 14.03.23 г. 23:14 ч., Zack Rusin wrote:
From: Zack Rusin <zackr@xxxxxxxxxx>

The src/dst_pitch got mixed up during the rework of the function, make
sure the offset's refer to the correct one.

Spotted by clang:
Clang warns (or errors with CONFIG_WERROR):

   drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c:509:29: error: variable 'dst_pitch' is uninitialized when used here [-Werror,-Wuninitialized]
           src_offset = ddirty->top * dst_pitch + ddirty->left * stdu->cpp;
                                      ^~~~~~~~~
   drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c:492:26: note: initialize the variable 'dst_pitch' to silence this warning
           s32 src_pitch, dst_pitch;
                                   ^
                                    = 0
   1 error generated.

Signed-off-by: Zack Rusin <zackr@xxxxxxxxxx>
Link: https://github.com/ClangBuiltLinux/linux/issues/1811
Reported-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Reported-by: Dave Airlie <airlied@xxxxxxxxx>
Fixes: 39985eea5a6d ("drm/vmwgfx: Abstract placement selection")
---
  drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index d79a6eccfaa4..ba0c0e12cfe9 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -506,11 +506,11 @@ static void vmw_stdu_bo_cpu_commit(struct vmw_kms_dirty *dirty)
  	/* Assume we are blitting from Guest (bo) to Host (display_srf) */
  	src_pitch = stdu->display_srf->metadata.base_size.width * stdu->cpp;
  	src_bo = &stdu->display_srf->res.guest_memory_bo->tbo;
-	src_offset = ddirty->top * dst_pitch + ddirty->left * stdu->cpp;
+	src_offset = ddirty->top * src_pitch + ddirty->left * stdu->cpp;
dst_pitch = ddirty->pitch;
  	dst_bo = &ddirty->buf->tbo;
-	dst_offset = ddirty->fb_top * src_pitch + ddirty->fb_left * stdu->cpp;
+	dst_offset = ddirty->fb_top * dst_pitch + ddirty->fb_left * stdu->cpp;
(void) vmw_bo_cpu_blit(dst_bo, dst_offset, dst_pitch,
  			       src_bo, src_offset, src_pitch,



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux