s390/dasd: remove superfluous virt_to_phys() conversion
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 7 Mar 2024 12:28:10 +0000 (13:28 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 13 Mar 2024 08:23:46 +0000 (09:23 +0100)
Only the last 12 bits of virtual / physical addresses are used when masking
with IDA_BLOCK_SIZE - 1. Given that the bits are the same regardless of
virtual or physical address, remove the virtual to physical address
conversion.

Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/block/dasd_eckd.c

index 698817648053c7c13d81cc1ddd2a80f59b1930ec..71fa4488aa470cccc10ff21553225be8fffb39f9 100644 (file)
@@ -4259,7 +4259,7 @@ static struct dasd_ccw_req *dasd_eckd_build_cp_cmd_track(
                         * idaw ends
                         */
                        if (!idaw_dst) {
-                               if ((__u32)virt_to_phys(dst) & (IDA_BLOCK_SIZE - 1)) {
+                               if ((unsigned long)(dst) & (IDA_BLOCK_SIZE - 1)) {
                                        dasd_sfree_request(cqr, startdev);
                                        return ERR_PTR(-ERANGE);
                                } else
@@ -4279,7 +4279,7 @@ static struct dasd_ccw_req *dasd_eckd_build_cp_cmd_track(
                         * idal_create_words will handle cases where idaw_len
                         * is larger then IDA_BLOCK_SIZE
                         */
-                       if (!((__u32)virt_to_phys(idaw_dst + idaw_len) & (IDA_BLOCK_SIZE - 1)))
+                       if (!((unsigned long)(idaw_dst + idaw_len) & (IDA_BLOCK_SIZE - 1)))
                                end_idaw = 1;
                        /* We also need to end the idaw at track end */
                        if (!len_to_track_end) {