s390/dcssblk: use IS_ALIGNED() for alignment checks
authorAlexander Gordeev <agordeev@linux.ibm.com>
Tue, 11 Jul 2023 15:59:42 +0000 (17:59 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 24 Jul 2023 10:12:23 +0000 (12:12 +0200)
Use IS_ALIGNED() instead of cumbersome bit manipulations.

Reviewed-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/block/dcssblk.c

index 09acf3853a77e9ea3a7616475b766ae51031966b..4f157dc1608ec834c6aef4375dd853cb28f47445 100644 (file)
@@ -868,8 +868,8 @@ dcssblk_submit_bio(struct bio *bio)
        dev_info = bio->bi_bdev->bd_disk->private_data;
        if (dev_info == NULL)
                goto fail;
-       if ((bio->bi_iter.bi_sector & 7) != 0 ||
-           (bio->bi_iter.bi_size & 4095) != 0)
+       if (!IS_ALIGNED(bio->bi_iter.bi_sector, 8) ||
+           !IS_ALIGNED(bio->bi_iter.bi_size, PAGE_SIZE))
                /* Request is not page-aligned. */
                goto fail;
        /* verify data transfer direction */
@@ -891,7 +891,8 @@ dcssblk_submit_bio(struct bio *bio)
        bio_for_each_segment(bvec, bio, iter) {
                page_addr = (unsigned long)bvec_virt(&bvec);
                source_addr = dev_info->start + (index<<12) + bytes_done;
-               if (unlikely((page_addr & 4095) != 0) || (bvec.bv_len & 4095) != 0)
+               if (unlikely(!IS_ALIGNED(page_addr, PAGE_SIZE) ||
+                            !IS_ALIGNED(bvec.bv_len, PAGE_SIZE)))
                        // More paranoia.
                        goto fail;
                if (bio_data_dir(bio) == READ) {