summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/sched_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/sched_gk20a.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
index a73e7993..6b372489 100644
--- a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c
@@ -12,7 +12,6 @@
12 */ 12 */
13 13
14#include <asm/barrier.h> 14#include <asm/barrier.h>
15#include <linux/slab.h>
16#include <linux/kthread.h> 15#include <linux/kthread.h>
17#include <linux/circ_buf.h> 16#include <linux/circ_buf.h>
18#include <linux/delay.h> 17#include <linux/delay.h>
@@ -24,6 +23,8 @@
24#include <linux/log2.h> 23#include <linux/log2.h>
25#include <uapi/linux/nvgpu.h> 24#include <uapi/linux/nvgpu.h>
26 25
26#include <nvgpu/kmem.h>
27
27#include "ctxsw_trace_gk20a.h" 28#include "ctxsw_trace_gk20a.h"
28#include "gk20a.h" 29#include "gk20a.h"
29#include "gr_gk20a.h" 30#include "gr_gk20a.h"
@@ -154,7 +155,7 @@ static int gk20a_sched_dev_ioctl_get_tsgs_by_pid(struct gk20a_sched_ctrl *sched,
154 return -ENOSPC; 155 return -ENOSPC;
155 } 156 }
156 157
157 bitmap = kzalloc(sched->bitmap_size, GFP_KERNEL); 158 bitmap = nvgpu_kzalloc(sched->g, sched->bitmap_size);
158 if (!bitmap) 159 if (!bitmap)
159 return -ENOMEM; 160 return -ENOMEM;
160 161
@@ -172,7 +173,7 @@ static int gk20a_sched_dev_ioctl_get_tsgs_by_pid(struct gk20a_sched_ctrl *sched,
172 bitmap, sched->bitmap_size)) 173 bitmap, sched->bitmap_size))
173 err = -EFAULT; 174 err = -EFAULT;
174 175
175 kfree(bitmap); 176 nvgpu_kfree(sched->g, bitmap);
176 177
177 return err; 178 return err;
178} 179}
@@ -650,15 +651,15 @@ int gk20a_sched_ctrl_init(struct gk20a *g)
650 gk20a_dbg(gpu_dbg_fn | gpu_dbg_sched, "g=%p sched=%p size=%zu", 651 gk20a_dbg(gpu_dbg_fn | gpu_dbg_sched, "g=%p sched=%p size=%zu",
651 g, sched, sched->bitmap_size); 652 g, sched, sched->bitmap_size);
652 653
653 sched->active_tsg_bitmap = kzalloc(sched->bitmap_size, GFP_KERNEL); 654 sched->active_tsg_bitmap = nvgpu_kzalloc(g, sched->bitmap_size);
654 if (!sched->active_tsg_bitmap) 655 if (!sched->active_tsg_bitmap)
655 return -ENOMEM; 656 return -ENOMEM;
656 657
657 sched->recent_tsg_bitmap = kzalloc(sched->bitmap_size, GFP_KERNEL); 658 sched->recent_tsg_bitmap = nvgpu_kzalloc(g, sched->bitmap_size);
658 if (!sched->recent_tsg_bitmap) 659 if (!sched->recent_tsg_bitmap)
659 goto free_active; 660 goto free_active;
660 661
661 sched->ref_tsg_bitmap = kzalloc(sched->bitmap_size, GFP_KERNEL); 662 sched->ref_tsg_bitmap = nvgpu_kzalloc(g, sched->bitmap_size);
662 if (!sched->ref_tsg_bitmap) 663 if (!sched->ref_tsg_bitmap)
663 goto free_recent; 664 goto free_recent;
664 665
@@ -672,10 +673,10 @@ int gk20a_sched_ctrl_init(struct gk20a *g)
672 return 0; 673 return 0;
673 674
674free_recent: 675free_recent:
675 kfree(sched->recent_tsg_bitmap); 676 nvgpu_kfree(g, sched->recent_tsg_bitmap);
676 677
677free_active: 678free_active:
678 kfree(sched->active_tsg_bitmap); 679 nvgpu_kfree(g, sched->active_tsg_bitmap);
679 680
680 return -ENOMEM; 681 return -ENOMEM;
681} 682}
@@ -684,9 +685,9 @@ void gk20a_sched_ctrl_cleanup(struct gk20a *g)
684{ 685{
685 struct gk20a_sched_ctrl *sched = &g->sched_ctrl; 686 struct gk20a_sched_ctrl *sched = &g->sched_ctrl;
686 687
687 kfree(sched->active_tsg_bitmap); 688 nvgpu_kfree(g, sched->active_tsg_bitmap);
688 kfree(sched->recent_tsg_bitmap); 689 nvgpu_kfree(g, sched->recent_tsg_bitmap);
689 kfree(sched->ref_tsg_bitmap); 690 nvgpu_kfree(g, sched->ref_tsg_bitmap);
690 sched->active_tsg_bitmap = NULL; 691 sched->active_tsg_bitmap = NULL;
691 sched->recent_tsg_bitmap = NULL; 692 sched->recent_tsg_bitmap = NULL;
692 sched->ref_tsg_bitmap = NULL; 693 sched->ref_tsg_bitmap = NULL;