diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1272-drm-amd-powerplay-smu10_hwmgr-use-struct_size-in-kza.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1272-drm-amd-powerplay-smu10_hwmgr-use-struct_size-in-kza.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1272-drm-amd-powerplay-smu10_hwmgr-use-struct_size-in-kza.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1272-drm-amd-powerplay-smu10_hwmgr-use-struct_size-in-kza.patch new file mode 100644 index 00000000..73f1e8a0 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1272-drm-amd-powerplay-smu10_hwmgr-use-struct_size-in-kza.patch @@ -0,0 +1,57 @@ +From 858d8b322e68798defb121cf5b17ca55db2e1189 Mon Sep 17 00:00:00 2001 +From: "Gustavo A. R. Silva" <gustavo@embeddedor.com> +Date: Tue, 19 Feb 2019 12:55:09 -0600 +Subject: [PATCH 1272/2940] drm/amd/powerplay/smu10_hwmgr: use struct_size() in + kzalloc() + +One of the more common cases of allocation size calculations is finding +the size of a structure that has a zero-sized array at the end, along +with memory for some number of elements for that array. For example: + +struct foo { + int stuff; + struct boo entry[]; +}; + +size = sizeof(struct foo) + count * sizeof(struct boo); +instance = kzalloc(size, GFP_KERNEL); + +Instead of leaving these open-coded and prone to type mistakes, we can +now use the new struct_size() helper: + +instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL); + +Notice that, in this case, variable table_size is not necessary, hence +it is removed. + +This code was detected with the help of Coccinelle. + +Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c +index 5273de3c5b98..0ad8fe4a6277 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c +@@ -139,12 +139,10 @@ static int smu10_construct_max_power_limits_table(struct pp_hwmgr *hwmgr, + static int smu10_init_dynamic_state_adjustment_rule_settings( + struct pp_hwmgr *hwmgr) + { +- uint32_t table_size = +- sizeof(struct phm_clock_voltage_dependency_table) + +- (7 * sizeof(struct phm_clock_voltage_dependency_record)); ++ struct phm_clock_voltage_dependency_table *table_clk_vlt; + +- struct phm_clock_voltage_dependency_table *table_clk_vlt = +- kzalloc(table_size, GFP_KERNEL); ++ table_clk_vlt = kzalloc(struct_size(table_clk_vlt, entries, 7), ++ GFP_KERNEL); + + if (NULL == table_clk_vlt) { + pr_err("Can not allocate memory!\n"); +-- +2.17.1 + |