Message ID | 20181015173321.22635-1-robdclark@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm: fix handling of cmdstream offset | expand |
On Mon, Oct 15, 2018 at 10:33 AM Rob Clark <robdclark@gmail.com> wrote: > > 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. Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> > Fixes: 78b8e5b847b4 drm/msm: dump a rd GPUADDR header for all buffers in the command > Signed-off-by: Rob Clark <robdclark@gmail.com> > --- > drivers/gpu/drm/msm/msm_rd.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c > index cca933458439..0c2c8d2c631f 100644 > --- a/drivers/gpu/drm/msm/msm_rd.c > +++ b/drivers/gpu/drm/msm/msm_rd.c > @@ -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); > -- > 2.17.2 > > _______________________________________________ > Freedreno mailing list > Freedreno@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/freedreno
diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c index cca933458439..0c2c8d2c631f 100644 --- a/drivers/gpu/drm/msm/msm_rd.c +++ b/drivers/gpu/drm/msm/msm_rd.c @@ -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);
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: 78b8e5b847b4 drm/msm: dump a rd GPUADDR header for all buffers in the command Signed-off-by: Rob Clark <robdclark@gmail.com> --- drivers/gpu/drm/msm/msm_rd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)