From 54c2ae59f0010c75bc03719e7b5ece4040c102d3 Mon Sep 17 00:00:00 2001 From: Leonid Moiseichuk Date: Tue, 11 Aug 2015 13:38:51 +0300 Subject: gpu: nvgpu: cyclestats snapshot permissions rework Cyclestats snapshot feature is expected for new devices. The detection code was isolated in separate function and run-time check added to validate/allow ioctl calls on the current GPU. Bug 1674079 Change-Id: Icc2f1e5cc50d39b395d31d5292c314f99d67f3eb Signed-off-by: Leonid Moiseichuk Reviewed-on: http://git-master/r/781697 (cherry picked from commit bdd23136b182c933841f91dd2829061e278a46d4) Reviewed-on: http://git-master/r/793630 Reviewed-by: Konsta Holtta Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c') diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 2ba160dd..21a3bec5 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c @@ -467,6 +467,11 @@ static int gk20a_channel_cycle_stats(struct channel_gk20a *ch, struct dma_buf *dmabuf; void *virtual_address; + /* is it allowed to handle calls for current GPU? */ + if (0 == (ch->g->gpu_characteristics.flags & + NVGPU_GPU_FLAGS_SUPPORT_CYCLE_STATS)) + return -ENOSYS; + if (args->dmabuf_fd && !ch->cyclestate.cyclestate_buffer_handler) { /* set up new cyclestats buffer */ @@ -556,6 +561,11 @@ static int gk20a_channel_cycle_stats_snapshot(struct channel_gk20a *ch, { int ret; + /* is it allowed to handle calls for current GPU? */ + if (0 == (ch->g->gpu_characteristics.flags & + NVGPU_GPU_FLAGS_SUPPORT_CYCLE_STATS_SNAPSHOT)) + return -ENOSYS; + if (!args->dmabuf_fd) return -EINVAL; -- cgit v1.2.2