diff options
author | Leonid Moiseichuk <lmoiseichuk@nvidia.com> | 2015-08-11 06:38:51 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-09-04 12:03:07 -0400 |
commit | 54c2ae59f0010c75bc03719e7b5ece4040c102d3 (patch) | |
tree | 549ea910d4de7dde2d335e3f0198baab51354177 /drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |
parent | eeb604c23d4ea7a6a7900b99a2ae92cff0488112 (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.c | 10 |
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 | ||