aboutsummaryrefslogtreecommitdiff
path: root/SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch')
-rw-r--r--SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch b/SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch
new file mode 100644
index 0000000..9470c46
--- /dev/null
+++ b/SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch
@@ -0,0 +1,55 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Zou Wei <zou_wei@huawei.com>
+Date: Tue, 21 Apr 2020 20:37:31 +0800
+Subject: [PATCH] acr: Use kmemdup instead of kmalloc and memcpy
+
+Fixes coccicheck warning:
+
+drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:103:23-30: WARNING opportunity for kmemdup
+drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:113:22-29: WARNING opportunity for kmemdup
+
+Fixes: 22dcda45a3d1 ("drivers/gpu/drm/nouveau/acr: implement new subdev to replace "secure boot"")
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Signed-off-by: Zou Wei <zou_wei@huawei.com>
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+---
+ drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c
+index aecce2dac558..667fa016496e 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c
+@@ -100,25 +100,21 @@ nvkm_acr_hsfw_load_image(struct nvkm_acr *acr, const char *name, int ver,
+ hsfw->data_size = lhdr->data_size;
+
+ hsfw->sig.prod.size = fwhdr->sig_prod_size;
+- hsfw->sig.prod.data = kmalloc(hsfw->sig.prod.size, GFP_KERNEL);
++ hsfw->sig.prod.data = kmemdup(fw->data + fwhdr->sig_prod_offset + sig,
++ hsfw->sig.prod.size, GFP_KERNEL);
+ if (!hsfw->sig.prod.data) {
+ ret = -ENOMEM;
+ goto done;
+ }
+
+- memcpy(hsfw->sig.prod.data, fw->data + fwhdr->sig_prod_offset + sig,
+- hsfw->sig.prod.size);
+-
+ hsfw->sig.dbg.size = fwhdr->sig_dbg_size;
+- hsfw->sig.dbg.data = kmalloc(hsfw->sig.dbg.size, GFP_KERNEL);
++ hsfw->sig.dbg.data = kmemdup(fw->data + fwhdr->sig_dbg_offset + sig,
++ hsfw->sig.dbg.size, GFP_KERNEL);
+ if (!hsfw->sig.dbg.data) {
+ ret = -ENOMEM;
+ goto done;
+ }
+
+- memcpy(hsfw->sig.dbg.data, fw->data + fwhdr->sig_dbg_offset + sig,
+- hsfw->sig.dbg.size);
+-
+ hsfw->sig.patch_loc = loc;
+ done:
+ nvkm_firmware_put(fw);
+--
+2.26.2
+