aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2676-drm-amdgpu-Use-kmemdup-rather-than-duplicating-its-i.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2676-drm-amdgpu-Use-kmemdup-rather-than-duplicating-its-i.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2676-drm-amdgpu-Use-kmemdup-rather-than-duplicating-its-i.patch104
1 files changed, 104 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2676-drm-amdgpu-Use-kmemdup-rather-than-duplicating-its-i.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2676-drm-amdgpu-Use-kmemdup-rather-than-duplicating-its-i.patch
new file mode 100644
index 00000000..2613e751
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2676-drm-amdgpu-Use-kmemdup-rather-than-duplicating-its-i.patch
@@ -0,0 +1,104 @@
+From 1323b9f9d3eb1a214da24baf9b3fe3b76acff1c5 Mon Sep 17 00:00:00 2001
+From: Fuqian Huang <huangfq.daxian@gmail.com>
+Date: Thu, 4 Jul 2019 00:27:18 +0800
+Subject: [PATCH 2676/2940] drm/amdgpu: Use kmemdup rather than duplicating its
+ implementation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+kmemdup is introduced to duplicate a region of memory in a neat way.
+Rather than kmalloc/kzalloc + memcpy, which the programmer needs to
+write the size twice (sometimes lead to mistakes), kmemdup improves
+readability, leads to smaller code and also reduce the chances of mistakes.
+Suggestion to use kmemdup rather than using kmalloc/kzalloc + memcpy.
+
+Reviewed-by: Christian König <Christian.Koenig@amd.com>
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 5 ++---
+ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 5 ++---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 6 ++----
+ drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 +---
+ 4 files changed, 7 insertions(+), 13 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+index 792aeb1b9e33..f84366f20dff 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+@@ -3921,11 +3921,10 @@ static int gfx_v8_0_init_save_restore_list(struct amdgpu_device *adev)
+
+ int list_size;
+ unsigned int *register_list_format =
+- kmalloc(adev->gfx.rlc.reg_list_format_size_bytes, GFP_KERNEL);
++ kmemdup(adev->gfx.rlc.register_list_format,
++ adev->gfx.rlc.reg_list_format_size_bytes, GFP_KERNEL);
+ if (!register_list_format)
+ return -ENOMEM;
+- memcpy(register_list_format, adev->gfx.rlc.register_list_format,
+- adev->gfx.rlc.reg_list_format_size_bytes);
+
+ gfx_v8_0_parse_ind_reg_list(register_list_format,
+ RLC_FormatDirectRegListLength,
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+index 00617a655e8a..550bd70b2edb 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+@@ -2074,11 +2074,10 @@ static int gfx_v9_1_init_rlc_save_restore_list(struct amdgpu_device *adev)
+ u32 tmp = 0;
+
+ u32 *register_list_format =
+- kmalloc(adev->gfx.rlc.reg_list_format_size_bytes, GFP_KERNEL);
++ kmemdup(adev->gfx.rlc.register_list_format,
++ adev->gfx.rlc.reg_list_format_size_bytes, GFP_KERNEL);
+ if (!register_list_format)
+ return -ENOMEM;
+- memcpy(register_list_format, adev->gfx.rlc.register_list_format,
+- adev->gfx.rlc.reg_list_format_size_bytes);
+
+ /* setup unique_indirect_regs array and indirect_start_offsets array */
+ unique_indirect_reg_count = ARRAY_SIZE(unique_indirect_regs);
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index 251c24a99e4e..c1bda186fd40 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -1200,14 +1200,12 @@ struct dc_state *dc_create_state(struct dc *dc)
+ struct dc_state *dc_copy_state(struct dc_state *src_ctx)
+ {
+ int i, j;
+- struct dc_state *new_ctx = kzalloc(sizeof(struct dc_state),
+- GFP_KERNEL);
++ struct dc_state *new_ctx = kmemdup(src_ctx,
++ sizeof(struct dc_state), GFP_KERNEL);
+
+ if (!new_ctx)
+ return NULL;
+
+- memcpy(new_ctx, src_ctx, sizeof(struct dc_state));
+-
+ for (i = 0; i < MAX_PIPES; i++) {
+ struct pipe_ctx *cur_pipe = &new_ctx->res_ctx.pipe_ctx[i];
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+index 30a25e694da0..1bc19d42fc9f 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+@@ -178,12 +178,10 @@ struct dc_stream_state *dc_copy_stream(const struct dc_stream_state *stream)
+ {
+ struct dc_stream_state *new_stream;
+
+- new_stream = kzalloc(sizeof(struct dc_stream_state), GFP_KERNEL);
++ new_stream = kmemdup(stream, sizeof(struct dc_stream_state), GFP_KERNEL);
+ if (!new_stream)
+ return NULL;
+
+- memcpy(new_stream, stream, sizeof(struct dc_stream_state));
+-
+ if (new_stream->sink)
+ dc_sink_retain(new_stream->sink);
+
+--
+2.17.1
+