tee: optee: Use kmemdup() to replace kmalloc + memcpy
authorJiapeng Chong <jiapeng.chong@linux.alibaba.com>
Tue, 13 Jun 2023 01:18:53 +0000 (09:18 +0800)
committerJens Wiklander <jens.wiklander@linaro.org>
Thu, 15 Jun 2023 06:49:55 +0000 (08:49 +0200)
Use kmemdup rather than duplicating its implementation.

./drivers/tee/optee/smc_abi.c:1542:12-19: WARNING opportunity for kmemdup.

Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=5480
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
drivers/tee/optee/smc_abi.c

index 49702cb08f4fb3a56f28f3bd9f643268b68cba1f..54414d4def7eb6eaab1196cd9fb8f0786427af04 100644 (file)
@@ -1539,12 +1539,11 @@ static int optee_load_fw(struct platform_device *pdev,
         * This uses the GFP_DMA flag to ensure we are allocated memory in the
         * 32-bit space since TF-A cannot map memory beyond the 32-bit boundary.
         */
-       data_buf = kmalloc(fw->size, GFP_KERNEL | GFP_DMA);
+       data_buf = kmemdup(fw->data, fw->size, GFP_KERNEL | GFP_DMA);
        if (!data_buf) {
                rc = -ENOMEM;
                goto fw_err;
        }
-       memcpy(data_buf, fw->data, fw->size);
        data_pa = virt_to_phys(data_buf);
        reg_pair_from_64(&data_pa_high, &data_pa_low, data_pa);
        reg_pair_from_64(&data_size_high, &data_size_low, data_size);