gpu: nvgpu: init all buffer compbits state members

User fence syncpt_id in the buffer compbits state was set to 0
on allocation through PREPARE_COMPRESSIBLE_READ ioctl or
MARK_COMPRESSIBLE_WRITE ioctl.

In case NVGPU_GPU_COMPBITS_GPU is requested through the ioctl
PREPARE_COMPRESSIBLE_READ, CDE conversion command is not
submitted and the output fence is cloned from the initial
state fence (with syncpt_id=0).

NvRmSyncWait on this fence from userspace lead to below error:
  13e40000.host1x: nvhost_syncpt_wait_timeout: invalid syncpoint id 0

Initialize the buffer compbits state user fence syncpt_id to
NVGPU_INVALID_SYNCPT_ID with nvgpu_user_sync_init() so that
the userspace skips the NvRmSyncWait on that fence.

While at it, initialize other uninitialized members, valid_compbits
and zbc_color.

Bug 3360675

Change-Id: Ie2a584546e1ed37841cbdc3472b598794f911e6f
Signed-off-by: Sagar Kamble <skamble@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2631235
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
This commit is contained in:
Sagar Kamble
2021-11-24 21:01:01 +05:30
committed by mobile promotions
parent 41df3e17a7
commit b6d349dcf6

View File

@@ -305,6 +305,9 @@ int gk20a_dmabuf_get_state(struct dma_buf *dmabuf, struct gk20a *g,
} }
s->offset = offset; s->offset = offset;
s->fence = nvgpu_user_fence_init();
s->valid_compbits = 0;
s->zbc_color = 0;
nvgpu_init_list_node(&s->list); nvgpu_init_list_node(&s->list);
nvgpu_mutex_init(&s->lock); nvgpu_mutex_init(&s->lock);
nvgpu_list_add_tail(&s->list, &priv->states); nvgpu_list_add_tail(&s->list, &priv->states);