summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c
index 764ffe1a..6fd0d330 100644
--- a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c
@@ -453,15 +453,24 @@ static int css_gr_create_client_data(struct gk20a *g,
453 u32 perfmon_count, 453 u32 perfmon_count,
454 struct gk20a_cs_snapshot_client *cur) 454 struct gk20a_cs_snapshot_client *cur)
455{ 455{
456 memset(cur->snapshot, 0, sizeof(*cur->snapshot)); 456 /*
457 cur->snapshot->start = sizeof(*cur->snapshot); 457 * Special handling in-case of rm-server
458 /* we should be ensure that can fit all fifo entries here */ 458 *
459 cur->snapshot->end = 459 * client snapshot buffer will not be mapped
460 CSS_FIFO_ENTRY_CAPACITY(cur->snapshot_size) 460 * in-case of rm-server its only mapped in
461 * sizeof(struct gk20a_cs_snapshot_fifo_entry) 461 * guest side
462 + sizeof(struct gk20a_cs_snapshot_fifo); 462 */
463 cur->snapshot->get = cur->snapshot->start; 463 if (cur->snapshot) {
464 cur->snapshot->put = cur->snapshot->start; 464 memset(cur->snapshot, 0, sizeof(*cur->snapshot));
465 cur->snapshot->start = sizeof(*cur->snapshot);
466 /* we should be ensure that can fit all fifo entries here */
467 cur->snapshot->end =
468 CSS_FIFO_ENTRY_CAPACITY(cur->snapshot_size)
469 * sizeof(struct gk20a_cs_snapshot_fifo_entry)
470 + sizeof(struct gk20a_cs_snapshot_fifo);
471 cur->snapshot->get = cur->snapshot->start;
472 cur->snapshot->put = cur->snapshot->start;
473 }
465 474
466 cur->perfmon_count = perfmon_count; 475 cur->perfmon_count = perfmon_count;
467 476