diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobj.c | 10 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/boardobj/boardobj.h | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/boardobj/boardobj.c b/drivers/gpu/nvgpu/boardobj/boardobj.c index 0fa8f6b6..b955f2b4 100644 --- a/drivers/gpu/nvgpu/boardobj/boardobj.c +++ b/drivers/gpu/nvgpu/boardobj/boardobj.c | |||
@@ -11,10 +11,13 @@ | |||
11 | * more details. | 11 | * more details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "gk20a/gk20a.h" | ||
15 | #include <linux/firmware.h> | 14 | #include <linux/firmware.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/uaccess.h> | 16 | #include <linux/uaccess.h> |
17 | |||
18 | #include <nvgpu/kmem.h> | ||
19 | |||
20 | #include "gk20a/gk20a.h" | ||
18 | #include "boardobj.h" | 21 | #include "boardobj.h" |
19 | #include "ctrl/ctrlboardobj.h" | 22 | #include "ctrl/ctrlboardobj.h" |
20 | 23 | ||
@@ -30,12 +33,13 @@ u32 boardobj_construct_super(struct gk20a *g, struct boardobj **ppboardobj, | |||
30 | return -EINVAL; | 33 | return -EINVAL; |
31 | 34 | ||
32 | if (*ppboardobj == NULL) { | 35 | if (*ppboardobj == NULL) { |
33 | *ppboardobj = kzalloc(size, GFP_KERNEL); | 36 | *ppboardobj = nvgpu_kzalloc(g, size); |
34 | if (*ppboardobj == NULL) | 37 | if (*ppboardobj == NULL) |
35 | return -ENOMEM; | 38 | return -ENOMEM; |
36 | } | 39 | } |
37 | 40 | ||
38 | pboardobj = *ppboardobj; | 41 | pboardobj = *ppboardobj; |
42 | pboardobj->g = g; | ||
39 | pboardobj->type = devtmp->type; | 43 | pboardobj->type = devtmp->type; |
40 | pboardobj->idx = CTRL_BOARDOBJ_IDX_INVALID; | 44 | pboardobj->idx = CTRL_BOARDOBJ_IDX_INVALID; |
41 | pboardobj->type_mask = BIT(pboardobj->type) | devtmp->type_mask; | 45 | pboardobj->type_mask = BIT(pboardobj->type) | devtmp->type_mask; |
@@ -52,7 +56,7 @@ u32 boardobj_destruct_super(struct boardobj *pboardobj) | |||
52 | gk20a_dbg_info(""); | 56 | gk20a_dbg_info(""); |
53 | if (pboardobj == NULL) | 57 | if (pboardobj == NULL) |
54 | return -EINVAL; | 58 | return -EINVAL; |
55 | kfree(pboardobj); | 59 | nvgpu_kfree(pboardobj->g, pboardobj); |
56 | return 0; | 60 | return 0; |
57 | } | 61 | } |
58 | 62 | ||
diff --git a/drivers/gpu/nvgpu/boardobj/boardobj.h b/drivers/gpu/nvgpu/boardobj/boardobj.h index 138b3acc..16dbf6b4 100644 --- a/drivers/gpu/nvgpu/boardobj/boardobj.h +++ b/drivers/gpu/nvgpu/boardobj/boardobj.h | |||
@@ -60,6 +60,8 @@ typedef u32 boardobj_destruct(struct boardobj *pboardobj); | |||
60 | */ | 60 | */ |
61 | 61 | ||
62 | struct boardobj { | 62 | struct boardobj { |
63 | struct gk20a *g; | ||
64 | |||
63 | u8 type; /*type of the device*/ | 65 | u8 type; /*type of the device*/ |
64 | u8 idx; /*index of boardobj within in its group*/ | 66 | u8 idx; /*index of boardobj within in its group*/ |
65 | u32 type_mask; /*mask of types this boardobjimplements*/ | 67 | u32 type_mask; /*mask of types this boardobjimplements*/ |