Message ID | 20190531173532.GA7141@embeddedor (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | i3c: master: Use struct_size() helper | expand |
On Fri, 31 May 2019 12:35:32 -0500 "Gustavo A. R. Silva" <gustavo@embeddedor.com> wrote: > 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> > --- > drivers/i3c/master.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c > index b9d2b88928e1..923b04052038 100644 > --- a/drivers/i3c/master.c > +++ b/drivers/i3c/master.c > @@ -924,9 +924,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)); ndev - 1 should be aligned on the struct_size open parens, or even better, be put on one line since it seems to fit the 80-chars limit: defslvs = i3c_ccc_cmd_dest_init(&dest, I3C_BROADCAST_ADDR, struct_size(defslvs, slaves, ndevs - 1)); > if (!defslvs) > return -ENOMEM; >
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index b9d2b88928e1..923b04052038 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -924,9 +924,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;
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> --- drivers/i3c/master.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)