Let kmemdup_array take care of multiplication and overflows.

While at it, add blank lines in the same function for readability.

Signed-off-by: Francesco Valla <[email protected]>
---
 drivers/remoteproc/remoteproc_virtio.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/remoteproc/remoteproc_virtio.c 
b/drivers/remoteproc/remoteproc_virtio.c
index dcafdfa7eab6..6db228a9f87a 100644
--- a/drivers/remoteproc/remoteproc_virtio.c
+++ b/drivers/remoteproc/remoteproc_virtio.c
@@ -37,11 +37,12 @@ static int copy_dma_range_map(struct device *to, struct 
device *from)
        for (r = map; r->size; r++)
                num_ranges++;
 
-       new_map = kmemdup(map, array_size(num_ranges + 1, sizeof(*map)),
-                         GFP_KERNEL);
+       new_map = kmemdup_array(map, num_ranges + 1, sizeof(*map), GFP_KERNEL);
        if (!new_map)
                return -ENOMEM;
+
        to->dma_range_map = new_map;
+
        return 0;
 }
 

-- 
2.56.0


Reply via email to