s390/dcssblk: fix virtual vs physical address confusion
authorGerald Schaefer <gerald.schaefer@linux.ibm.com>
Thu, 7 Mar 2024 11:27:02 +0000 (12:27 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 13 Mar 2024 08:23:45 +0000 (09:23 +0100)
Fix virtual vs physical address confusion. This does not fix a bug
since virtual and physical address spaces are currently the same.

dax_direct_access() should receive a virtual kernel address in kaddr.

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

index 9c8f529b827cb3556e07bb0c3ed7ce51e5873cff..cf108744d410b6a05d03eb3fa88131d15f73a466 100644 (file)
@@ -919,7 +919,7 @@ __dcssblk_direct_access(struct dcssblk_dev_info *dev_info, pgoff_t pgoff,
 
        dev_sz = dev_info->end - dev_info->start + 1;
        if (kaddr)
-               *kaddr = (void *) dev_info->start + offset;
+               *kaddr = __va(dev_info->start + offset);
        if (pfn)
                *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset),
                                PFN_DEV|PFN_SPECIAL);