mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
gpu: nvgpu: add checks for kzalloc() allocations
Check kzalloc() allocations for failures and return
an error if an allocation fails.
Bug 2279948
Change-Id: I8a2c3b84904da897ad6118900c11489c8656c20f
Signed-off-by: Nitin Kumbhar <nkumbhar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2020123
(cherry picked from commit fadd0014da)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2298066
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
ea14973b14
commit
aaecfae53f
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved.
|
* Copyright (c) 2016-2020, NVIDIA CORPORATION. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
@@ -628,6 +628,8 @@ static int clk_prog_construct_1x_master(struct gk20a *g,
|
|||||||
|
|
||||||
pclkprog->p_vf_entries = (struct ctrl_clk_clk_prog_1x_master_vf_entry *)
|
pclkprog->p_vf_entries = (struct ctrl_clk_clk_prog_1x_master_vf_entry *)
|
||||||
nvgpu_kzalloc(g, vfsize);
|
nvgpu_kzalloc(g, vfsize);
|
||||||
|
if (!pclkprog->p_vf_entries)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
memcpy(pclkprog->p_vf_entries, ptmpprog->p_vf_entries, vfsize);
|
memcpy(pclkprog->p_vf_entries, ptmpprog->p_vf_entries, vfsize);
|
||||||
|
|
||||||
|
|||||||
@@ -3473,6 +3473,8 @@ static int gr_gk20a_init_gr_config(struct gk20a *g, struct gr_gk20a *gr)
|
|||||||
gr->sm_to_cluster = nvgpu_kzalloc(g, gr->gpc_count *
|
gr->sm_to_cluster = nvgpu_kzalloc(g, gr->gpc_count *
|
||||||
gr->max_tpc_per_gpc_count *
|
gr->max_tpc_per_gpc_count *
|
||||||
sm_per_tpc * sizeof(struct sm_info));
|
sm_per_tpc * sizeof(struct sm_info));
|
||||||
|
if (!gr->sm_to_cluster)
|
||||||
|
goto clean_up;
|
||||||
} else {
|
} else {
|
||||||
memset(gr->sm_to_cluster, 0, gr->gpc_count *
|
memset(gr->sm_to_cluster, 0, gr->gpc_count *
|
||||||
gr->max_tpc_per_gpc_count *
|
gr->max_tpc_per_gpc_count *
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* gk20a clock scaling profile
|
* gk20a clock scaling profile
|
||||||
*
|
*
|
||||||
* Copyright (c) 2013-2018, NVIDIA Corporation. All rights reserved.
|
* Copyright (c) 2013-2020, NVIDIA Corporation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
@@ -339,6 +339,8 @@ void gk20a_scale_init(struct device *dev)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
profile = nvgpu_kzalloc(g, sizeof(*profile));
|
profile = nvgpu_kzalloc(g, sizeof(*profile));
|
||||||
|
if (!profile)
|
||||||
|
return;
|
||||||
|
|
||||||
profile->dev = dev;
|
profile->dev = dev;
|
||||||
profile->dev_stat.busy = false;
|
profile->dev_stat.busy = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user