]> www.infradead.org Git - users/willy/linux.git/commitdiff
drm/nouveau/acr: Use kmemdup instead of kmalloc and memcpy
authorZou Wei <zou_wei@huawei.com>
Tue, 21 Apr 2020 12:37:31 +0000 (20:37 +0800)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 22 May 2020 01:13:49 +0000 (11:13 +1000)
Fixes coccicheck warning:

drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:103:23-30: WARNING opportunity for kmemdup
drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:113:22-29: WARNING opportunity for kmemdup

Fixes: 22dcda45a3d1 ("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

index aecce2dac5586725e327137ba491c9f058d9af11..667fa016496eeb11e61b774f8db98bb9565829b3 100644 (file)
@@ -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);