s390/dasd: Use struct_size() helper
authorGustavo A. R. Silva <gustavoars@kernel.org>
Tue, 14 Jul 2020 20:03:27 +0000 (22:03 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 15 Jul 2020 14:47:11 +0000 (08:47 -0600)
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 <gustavoars@kernel.org>
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/s390/block/dasd_diag.c

index 069d6b3..1b9e144 100644 (file)
@@ -515,7 +515,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;
@@ -543,10 +543,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;