drm/amd/powerplay: fix memdup.cocci warnings
authorkbuild test robot <fengguang.wu@intel.com>
Sat, 2 Mar 2019 06:50:36 +0000 (07:50 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:36:36 +0000 (15:36 -0500)
Simplify the code a bit by using kmemdup instead of kzalloc and memcpy.

Generated by: scripts/coccinelle/api/memdup.cocci

CC: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
Acked-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/vega20_ppt.c

index f7188a7fb194a85d734703d98d650d63fc14d7f1..c66ad3b223d39ce675e61a33bc4fddeac6fcfc30 100644 (file)
@@ -204,14 +204,12 @@ static int vega20_setup_od8_information(struct smu_context *smu)
                if (table_context->od_feature_capabilities)
                        return -EINVAL;
 
-               table_context->od_feature_capabilities = kzalloc(od_feature_array_size, GFP_KERNEL);
+               table_context->od_feature_capabilities = kmemdup(&powerplay_table->OverDrive8Table.ODFeatureCapabilities,
+                                                                od_feature_array_size,
+                                                                GFP_KERNEL);
                if (!table_context->od_feature_capabilities)
                        return -ENOMEM;
 
-               memcpy(table_context->od_feature_capabilities,
-                      &powerplay_table->OverDrive8Table.ODFeatureCapabilities,
-                      od_feature_array_size);
-
                /* Setup correct ODSettingCount, and store ODSettingArray from
                 * powerplay table to od_settings_max and od_setting_min */
                od_setting_count =
@@ -225,7 +223,9 @@ static int vega20_setup_od8_information(struct smu_context *smu)
                if (table_context->od_settings_max)
                        return -EINVAL;
 
-               table_context->od_settings_max = kzalloc(od_setting_array_size, GFP_KERNEL);
+               table_context->od_settings_max = kmemdup(&powerplay_table->OverDrive8Table.ODSettingsMax,
+                                                        od_setting_array_size,
+                                                        GFP_KERNEL);
 
                if (!table_context->od_settings_max) {
                        kfree(table_context->od_feature_capabilities);
@@ -233,14 +233,12 @@ static int vega20_setup_od8_information(struct smu_context *smu)
                        return -ENOMEM;
                }
 
-               memcpy(table_context->od_settings_max,
-                      &powerplay_table->OverDrive8Table.ODSettingsMax,
-                      od_setting_array_size);
-
                if (table_context->od_settings_min)
                        return -EINVAL;
 
-               table_context->od_settings_min = kzalloc(od_setting_array_size, GFP_KERNEL);
+               table_context->od_settings_min = kmemdup(&powerplay_table->OverDrive8Table.ODSettingsMin,
+                                                        od_setting_array_size,
+                                                        GFP_KERNEL);
 
                if (!table_context->od_settings_min) {
                        kfree(table_context->od_feature_capabilities);
@@ -249,10 +247,6 @@ static int vega20_setup_od8_information(struct smu_context *smu)
                        table_context->od_settings_max = NULL;
                        return -ENOMEM;
                }
-
-               memcpy(table_context->od_settings_min,
-                      &powerplay_table->OverDrive8Table.ODSettingsMin,
-                      od_setting_array_size);
        }
 
        return 0;