mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: fix the memory corruption issue
Memory for tpc_index in gpc_tpc_physical_id_map array is allocated only for number of tpcs while it should be number of tpcs*size of index. Change fixes the memory allocation to avoid memory corruption. Bug 3994374 Change-Id: Ibc593b1d0baba980787ae50f02ea20072525888c Signed-off-by: prsethi <prsethi@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2906890 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: Dinesh T <dt@nvidia.com> Reviewed-by: Kishan Palankar <kpalankar@nvidia.com> Reviewed-by: Vaibhav Kachore <vkachore@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
54b01e881b
commit
6f4b7d5cc2
@@ -666,7 +666,7 @@ struct nvgpu_gr_config *nvgpu_gr_config_init(struct gk20a *g)
|
||||
* logical id.
|
||||
*/
|
||||
config->gpc_tpc_physical_id_map = nvgpu_kzalloc(g,
|
||||
nvgpu_safe_mult_u64((size_t)config->gpc_count,
|
||||
nvgpu_safe_mult_u32((size_t)config->gpc_count,
|
||||
sizeof(u32 *)));
|
||||
if (config->gpc_tpc_physical_id_map == NULL) {
|
||||
nvgpu_err(g, "alloc gpc_tpc_physical_id_map failed");
|
||||
@@ -677,7 +677,8 @@ struct nvgpu_gr_config *nvgpu_gr_config_init(struct gk20a *g)
|
||||
gpc_phys_id = nvgpu_grmgr_get_gr_gpc_phys_id(g,
|
||||
cur_gr_instance, (u32)gpc_index);
|
||||
config->gpc_tpc_physical_id_map[gpc_phys_id] =
|
||||
nvgpu_kzalloc(g, config->max_tpc_per_gpc_count);
|
||||
nvgpu_kzalloc(g, nvgpu_safe_mult_u32(
|
||||
config->max_tpc_per_gpc_count, sizeof(u32)));
|
||||
if (config->gpc_tpc_physical_id_map[gpc_phys_id] == NULL) {
|
||||
nvgpu_err(g, "alloc tpc_physical_id_map(%u) failed",
|
||||
gpc_phys_id);
|
||||
|
||||
Reference in New Issue
Block a user