diff options
author | Alvin Park <apark@nvidia.com> | 2020-12-14 20:34:44 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2021-10-21 10:10:24 -0400 |
commit | 4d17d8b10431b1ba5775d35b34e76dbb8f9b448a (patch) | |
tree | e2afb126a533aac3aa493798429f1be6efdc1747 /drivers/gpu/nvgpu | |
parent | 725a5eaa801098f5f59762a87b7200803e82551c (diff) |
gpu: nvgpu: add check for is_railgated
When try to read '/sys/kernel/debug/gpu.0/railgate_residency'
debug fs node, NULL pointer access error can be happened if
is_railgated function is not assinged.
Add check for is_railgated before calling the function pointer.
Bug 200773027
Change-Id: I914b5b0aa48ccb15affe79510b696ebc91129f67
Signed-off-by: Aditya Gupta <adigupta@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2596320
(cherry picked from commit e649029c7bed3c7afbd454d7e94f9173377f4c64)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2614156
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Rohit Upadhyay <rupadhyay@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/os/linux/debug.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/debug.c b/drivers/gpu/nvgpu/os/linux/debug.c index d7e3f1e7..b8c45965 100644 --- a/drivers/gpu/nvgpu/os/linux/debug.c +++ b/drivers/gpu/nvgpu/os/linux/debug.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2017-2020 NVIDIA Corporation. All rights reserved. | 2 | * Copyright (C) 2017-2021 NVIDIA Corporation. All rights reserved. |
3 | * | 3 | * |
4 | * This software is licensed under the terms of the GNU General Public | 4 | * This software is licensed under the terms of the GNU General Public |
5 | * License version 2, as published by the Free Software Foundation, and | 5 | * License version 2, as published by the Free Software Foundation, and |
@@ -224,7 +224,7 @@ static int railgate_residency_show(struct seq_file *s, void *data) | |||
224 | unsigned long total_rail_gate_time_ms; | 224 | unsigned long total_rail_gate_time_ms; |
225 | unsigned long total_rail_ungate_time_ms; | 225 | unsigned long total_rail_ungate_time_ms; |
226 | 226 | ||
227 | if (platform->is_railgated && platform->is_railgated(dev_from_gk20a(g))) { | 227 | if (platform && platform->is_railgated && platform->is_railgated(dev_from_gk20a(g))) { |
228 | time_since_last_state_transition_ms = | 228 | time_since_last_state_transition_ms = |
229 | jiffies_to_msecs(jiffies - | 229 | jiffies_to_msecs(jiffies - |
230 | g->pstats.last_rail_gate_complete); | 230 | g->pstats.last_rail_gate_complete); |