i3c: master: Use struct_size() helper
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Fri, 31 May 2019 17:35:32 +0000 (12:35 -0500)
committerBoris Brezillon <boris.brezillon@collabora.com>
Thu, 4 Jul 2019 10:05:14 +0000 (12:05 +0200)
Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes, in particular in the
context in which this code is being used.

So, replace the following form:

sizeof(*defslvs) + ((ndevs - 1) * sizeof(struct i3c_ccc_dev_desc))

with:

struct_size(defslvs, slaves, ndevs - 1)

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
drivers/i3c/master.c

index 1318adfe0216ec6d4d4ffb5f5fc22d267a82a70b..d6f8b038a89678fcd40bce106e020c902aa4cbd3 100644 (file)
@@ -950,9 +950,8 @@ int i3c_master_defslvs_locked(struct i3c_master_controller *master)
                ndevs++;
 
        defslvs = i3c_ccc_cmd_dest_init(&dest, I3C_BROADCAST_ADDR,
-                                       sizeof(*defslvs) +
-                                       ((ndevs - 1) *
-                                        sizeof(struct i3c_ccc_dev_desc)));
+                                       struct_size(defslvs, slaves,
+                                                   ndevs - 1));
        if (!defslvs)
                return -ENOMEM;