summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/include
diff options
context:
space:
mode:
authorSupriya <ssharatkumar@nvidia.com>2017-11-02 02:24:03 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-12-28 06:01:48 -0500
commitea1b69d3f5e419ab1e66340779fda143e8f4ebc3 (patch)
tree9c07bc5e9efab1f781bb28d07a89598469948f2a /drivers/gpu/nvgpu/include
parent3a956a573d2ecb9a7520680ec6bcd6f626054488 (diff)
gpu: nvgpu: Fix crash on read fail of mc_boot_0_r
This CL handles - erroneous use of boot_0 function pointer before being assigned in __nvgpu_check_gpu_state - And proper handling of error returned from gk20a_readl in gk20a_mc_boot_0 With these fixes crash is not seen in case mc_boot_0 read returns 0 in gk20a_mc_boot_0 - And also this handles the recursion caused by mc.boot_0() calling nvgpu_readl and nvgpu_readl in turn calling mc.boot_0 in case of read failure Bug 2010966 Change-Id: Ia087811c67d88948b7fc5fff35e0fabc6ea91989 Signed-off-by: Supriya <ssharatkumar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1616274 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r--drivers/gpu/nvgpu/include/nvgpu/io.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/io.h b/drivers/gpu/nvgpu/include/nvgpu/io.h
index 94ae8f95..b7281b41 100644
--- a/drivers/gpu/nvgpu/include/nvgpu/io.h
+++ b/drivers/gpu/nvgpu/include/nvgpu/io.h
@@ -40,6 +40,7 @@ struct gk20a;
40 40
41void nvgpu_writel(struct gk20a *g, u32 r, u32 v); 41void nvgpu_writel(struct gk20a *g, u32 r, u32 v);
42u32 nvgpu_readl(struct gk20a *g, u32 r); 42u32 nvgpu_readl(struct gk20a *g, u32 r);
43u32 __nvgpu_readl(struct gk20a *g, u32 r);
43void nvgpu_writel_check(struct gk20a *g, u32 r, u32 v); 44void nvgpu_writel_check(struct gk20a *g, u32 r, u32 v);
44void nvgpu_bar1_writel(struct gk20a *g, u32 b, u32 v); 45void nvgpu_bar1_writel(struct gk20a *g, u32 b, u32 v);
45u32 nvgpu_bar1_readl(struct gk20a *g, u32 b); 46u32 nvgpu_bar1_readl(struct gk20a *g, u32 b);