gpu: nvgpu: report number of syncpoints in nvgpu_as_get_sync_ro_map_arg

Add reporting for the number of syncpoints when mapping the RO
shim. This allows the userspace to perform boundary condition checks
when computing the GPU VA for a syncpoint.

JIRA GCSS-1579

Change-Id: Ia6c9eee917d2c1e08f9905701e03f2b09e01ba60
Signed-off-by: Sami Kiminki <skiminki@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2533981
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Lakshmanan M <lm@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:
Sami Kiminki
2021-05-24 16:49:36 +03:00
committed by mobile promotions
parent 8834275906
commit 5f6ff29aea
8 changed files with 25 additions and 10 deletions

View File

@@ -281,6 +281,7 @@ static int nvgpu_as_ioctl_get_sync_ro_map(
struct gk20a *g = gk20a_from_vm(vm);
u64 base_gpuva;
u32 sync_size;
u32 num_syncpoints;
int err = 0;
if (g->ops.sync.syncpt.get_sync_ro_map == NULL)
@@ -289,12 +290,14 @@ static int nvgpu_as_ioctl_get_sync_ro_map(
if (!nvgpu_has_syncpoints(g))
return -EINVAL;
err = g->ops.sync.syncpt.get_sync_ro_map(vm, &base_gpuva, &sync_size);
err = g->ops.sync.syncpt.get_sync_ro_map(vm, &base_gpuva, &sync_size,
&num_syncpoints);
if (err)
return err;
args->base_gpuva = base_gpuva;
args->sync_size = sync_size;
args->num_syncpoints = num_syncpoints;
return err;
#else