2020-06-20 04:09:56

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH][next] s390/dasd: Use struct_size() helper

Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes. Also, remove unnecessary
variable _datasize_.

This code was detected with the help of Coccinelle and, audited and
fixed manually.

Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/s390/block/dasd_diag.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c
index facb588d09e4..7f53ba015300 100644
--- a/drivers/s390/block/dasd_diag.c
+++ b/drivers/s390/block/dasd_diag.c
@@ -506,7 +506,7 @@ static struct dasd_ccw_req *dasd_diag_build_cp(struct dasd_device *memdev,
struct req_iterator iter;
struct bio_vec bv;
char *dst;
- unsigned int count, datasize;
+ unsigned int count;
sector_t recid, first_rec, last_rec;
unsigned int blksize, off;
unsigned char rw_cmd;
@@ -534,10 +534,8 @@ static struct dasd_ccw_req *dasd_diag_build_cp(struct dasd_device *memdev,
if (count != last_rec - first_rec + 1)
return ERR_PTR(-EINVAL);
/* Build the request */
- datasize = sizeof(struct dasd_diag_req) +
- count*sizeof(struct dasd_diag_bio);
- cqr = dasd_smalloc_request(DASD_DIAG_MAGIC, 0, datasize, memdev,
- blk_mq_rq_to_pdu(req));
+ cqr = dasd_smalloc_request(DASD_DIAG_MAGIC, 0, struct_size(dreq, bio, count),
+ memdev, blk_mq_rq_to_pdu(req));
if (IS_ERR(cqr))
return cqr;

--
2.27.0


2020-07-08 09:15:22

by Stefan Haberland

[permalink] [raw]
Subject: Re: [PATCH][next] s390/dasd: Use struct_size() helper

Am 19.06.20 um 18:56 schrieb Gustavo A. R. Silva:
> Make use of the struct_size() helper instead of an open-coded version
> in order to avoid any potential type mistakes. Also, remove unnecessary
> variable _datasize_.
>
> This code was detected with the help of Coccinelle and, audited and
> fixed manually.
>
> Signed-off-by: Gustavo A. R. Silva <[email protected]>

Thanks for the patch.
Tested and applied.

> ---
> drivers/s390/block/dasd_diag.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c
> index facb588d09e4..7f53ba015300 100644
> --- a/drivers/s390/block/dasd_diag.c
> +++ b/drivers/s390/block/dasd_diag.c
> @@ -506,7 +506,7 @@ static struct dasd_ccw_req *dasd_diag_build_cp(struct dasd_device *memdev,
> struct req_iterator iter;
> struct bio_vec bv;
> char *dst;
> - unsigned int count, datasize;
> + unsigned int count;
> sector_t recid, first_rec, last_rec;
> unsigned int blksize, off;
> unsigned char rw_cmd;
> @@ -534,10 +534,8 @@ static struct dasd_ccw_req *dasd_diag_build_cp(struct dasd_device *memdev,
> if (count != last_rec - first_rec + 1)
> return ERR_PTR(-EINVAL);
> /* Build the request */
> - datasize = sizeof(struct dasd_diag_req) +
> - count*sizeof(struct dasd_diag_bio);
> - cqr = dasd_smalloc_request(DASD_DIAG_MAGIC, 0, datasize, memdev,
> - blk_mq_rq_to_pdu(req));
> + cqr = dasd_smalloc_request(DASD_DIAG_MAGIC, 0, struct_size(dreq, bio, count),
> + memdev, blk_mq_rq_to_pdu(req));
> if (IS_ERR(cqr))
> return cqr;
>

2020-07-08 19:35:11

by Gustavo A. R. Silva

[permalink] [raw]
Subject: Re: [PATCH][next] s390/dasd: Use struct_size() helper

On Wed, Jul 08, 2020 at 11:13:08AM +0200, Stefan Haberland wrote:
> Am 19.06.20 um 18:56 schrieb Gustavo A. R. Silva:
> > Make use of the struct_size() helper instead of an open-coded version
> > in order to avoid any potential type mistakes. Also, remove unnecessary
> > variable _datasize_.
> >
> > This code was detected with the help of Coccinelle and, audited and
> > fixed manually.
> >
> > Signed-off-by: Gustavo A. R. Silva <[email protected]>
>
> Thanks for the patch.
> Tested and applied.

Thanks, Stefan.

--
Gustavo