diff options
author | Richard Zhao <rizhao@nvidia.com> | 2016-03-18 18:02:37 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-04-11 18:38:42 -0400 |
commit | c8c376b22a6805178415a78f723df32bce177ef0 (patch) | |
tree | 1bdf7d1e4cdaf85a0d8cd051b004a7699562dd61 /drivers/gpu/nvgpu | |
parent | 60b715e85600a6be283e54c610c2a3db3b552059 (diff) |
gpu: nvgpu: vgpu: fix error handling for mempool reserve failure
Bug 1648908
Bug 200183294
Change-Id: Iccf5eb762a544e423050d223bfcb6f8a53af6350
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: http://git-master/r/1113040
Reviewed-on: http://git-master/r/1121262
Reviewed-by: Aingara Paramakuru <aparamakuru@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c b/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c index 568f3784..d19e5712 100644 --- a/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c +++ b/drivers/gpu/nvgpu/vgpu/fecs_trace_vgpu.c | |||
@@ -62,6 +62,11 @@ static int vgpu_fecs_trace_init(struct gk20a *g) | |||
62 | } | 62 | } |
63 | 63 | ||
64 | vcst->buf = ioremap_cache(vcst->cookie->ipa, vcst->cookie->size); | 64 | vcst->buf = ioremap_cache(vcst->cookie->ipa, vcst->cookie->size); |
65 | if (!vcst->buf) { | ||
66 | dev_info(dev_from_gk20a(g), "ioremap_cache failed\n"); | ||
67 | err = -EINVAL; | ||
68 | goto fail; | ||
69 | } | ||
65 | vcst->header = vcst->buf; | 70 | vcst->header = vcst->buf; |
66 | vcst->num_entries = vcst->header->num_ents; | 71 | vcst->num_entries = vcst->header->num_ents; |
67 | if (unlikely(vcst->header->ent_size != sizeof(*vcst->entries))) { | 72 | if (unlikely(vcst->header->ent_size != sizeof(*vcst->entries))) { |
@@ -75,7 +80,7 @@ static int vgpu_fecs_trace_init(struct gk20a *g) | |||
75 | return 0; | 80 | return 0; |
76 | fail: | 81 | fail: |
77 | iounmap(vcst->buf); | 82 | iounmap(vcst->buf); |
78 | if (vcst->cookie) | 83 | if (!IS_ERR(vcst->cookie)) |
79 | tegra_hv_mempool_unreserve(vcst->cookie); | 84 | tegra_hv_mempool_unreserve(vcst->cookie); |
80 | kfree(vcst); | 85 | kfree(vcst); |
81 | return err; | 86 | return err; |