mirror of https://gitee.com/openkylin/linux.git
drm/msm: fix handling of cmdstream offset
Userspace hasn't used submit cmds with submit_offset != 0 for a while,
but this starts cropping up again with cmdstream sub-buffer-allocation
in libdrm_freedreno.
Doesn't do much good to increment the buf ptr before assigning it.
Fixes: 78b8e5b847
drm/msm: dump a rd GPUADDR header for all buffers in the command
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
This commit is contained in:
parent
51270de914
commit
47e7f506ee
|
@ -316,10 +316,11 @@ static void snapshot_buf(struct msm_rd_state *rd,
|
|||
uint64_t iova, uint32_t size)
|
||||
{
|
||||
struct msm_gem_object *obj = submit->bos[idx].obj;
|
||||
unsigned offset = 0;
|
||||
const char *buf;
|
||||
|
||||
if (iova) {
|
||||
buf += iova - submit->bos[idx].iova;
|
||||
offset = iova - submit->bos[idx].iova;
|
||||
} else {
|
||||
iova = submit->bos[idx].iova;
|
||||
size = obj->base.size;
|
||||
|
@ -340,6 +341,8 @@ static void snapshot_buf(struct msm_rd_state *rd,
|
|||
if (IS_ERR(buf))
|
||||
return;
|
||||
|
||||
buf += offset;
|
||||
|
||||
rd_write_section(rd, RD_BUFFER_CONTENTS, buf, size);
|
||||
|
||||
msm_gem_put_vaddr(&obj->base);
|
||||
|
|
Loading…
Reference in New Issue