gpu: nvgpu: Use a callback to free struct gk20a

struct gk20a is now part of nvgpu_os_linux in Linux builds. gk20a.c
still frees struct gk20a by kfree(struct gk20a *), which is wrong.
Create a new function pointer in struct gk20a for freeing the
structure and call kfree(struct nvgpu_os_linux *) instead.

JIRA NVGPU-259

Change-Id: I412ee993002cb2a42f0db015fc676de43418ec2f
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1591012
GVS: Gerrit_Virtual_Submit
Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Terje Bergstrom
2017-11-02 15:41:37 -07:00
committed by mobile promotions
parent 9f5f029ae2
commit 1e7ba4c76d
7 changed files with 43 additions and 1 deletions

View File

@@ -53,6 +53,7 @@
#include "cde_gm20b.h"
#include "cde_gp10b.h"
#include "ctxsw_trace.h"
#include "driver_common.h"
#define CLASS_NAME "nvidia-gpu"
/* TODO: Change to e.g. "nvidia-gpu%s" once we have symlinks in place. */
@@ -1027,6 +1028,7 @@ static int gk20a_probe(struct platform_device *dev)
}
gk20a = &l->g;
nvgpu_init_gk20a(gk20a);
set_gk20a(dev, gk20a);
l->dev = &dev->dev;
gk20a->log_mask = NVGPU_DEFAULT_DBG_MASK;