summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
diff options
context:
space:
mode:
authorLeonid Moiseichuk <lmoiseichuk@nvidia.com>2015-08-11 06:38:51 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-09-04 12:03:07 -0400
commit54c2ae59f0010c75bc03719e7b5ece4040c102d3 (patch)
tree549ea910d4de7dde2d335e3f0198baab51354177 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c
parenteeb604c23d4ea7a6a7900b99a2ae92cff0488112 (diff)
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 <lmoiseichuk@nvidia.com> Reviewed-on: http://git-master/r/781697 (cherry picked from commit bdd23136b182c933841f91dd2829061e278a46d4) Reviewed-on: http://git-master/r/793630 Reviewed-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c10
1 files changed, 10 insertions, 0 deletions
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,
467 struct dma_buf *dmabuf; 467 struct dma_buf *dmabuf;
468 void *virtual_address; 468 void *virtual_address;
469 469
470 /* is it allowed to handle calls for current GPU? */
471 if (0 == (ch->g->gpu_characteristics.flags &
472 NVGPU_GPU_FLAGS_SUPPORT_CYCLE_STATS))
473 return -ENOSYS;
474
470 if (args->dmabuf_fd && !ch->cyclestate.cyclestate_buffer_handler) { 475 if (args->dmabuf_fd && !ch->cyclestate.cyclestate_buffer_handler) {
471 476
472 /* set up new cyclestats buffer */ 477 /* set up new cyclestats buffer */
@@ -556,6 +561,11 @@ static int gk20a_channel_cycle_stats_snapshot(struct channel_gk20a *ch,
556{ 561{
557 int ret; 562 int ret;
558 563
564 /* is it allowed to handle calls for current GPU? */
565 if (0 == (ch->g->gpu_characteristics.flags &
566 NVGPU_GPU_FLAGS_SUPPORT_CYCLE_STATS_SNAPSHOT))
567 return -ENOSYS;
568
559 if (!args->dmabuf_fd) 569 if (!args->dmabuf_fd)
560 return -EINVAL; 570 return -EINVAL;
561 571