diff options
author | Alexander Gordeev <agordeev@linux.ibm.com> | 2021-06-18 09:39:12 +0300 |
---|---|---|
committer | Alexander Gordeev <agordeev@linux.ibm.com> | 2022-12-01 12:58:04 +0300 |
commit | 5c2e5a0cf5b12c156b0cb07af43b51627c086480 (patch) | |
tree | bd5b9271732eff13b5fc28198546086204fdb96a /drivers/s390/cio/device_status.c | |
parent | 1143f6f55d967ab414a10a559d58a2700f32a54d (diff) | |
download | linux-5c2e5a0cf5b12c156b0cb07af43b51627c086480.tar.xz |
s390/cio: sort out physical vs virtual pointers usage
This does not fix a real bug, since virtual addresses
are currently indentical to physical ones.
Use virt_to_phys() for intparm interrupt parameter to
convert a 64-bit virtual address to the 32-bit physical
address, which is expected to be below 2GB.
Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Diffstat (limited to 'drivers/s390/cio/device_status.c')
-rw-r--r-- | drivers/s390/cio/device_status.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/cio/device_status.c b/drivers/s390/cio/device_status.c index 0bd8f2642732..6c2e35065fec 100644 --- a/drivers/s390/cio/device_status.c +++ b/drivers/s390/cio/device_status.c @@ -9,6 +9,7 @@ #include <linux/module.h> #include <linux/init.h> +#include <linux/io.h> #include <asm/ccwdev.h> #include <asm/cio.h> @@ -331,7 +332,7 @@ ccw_device_do_sense(struct ccw_device *cdev, struct irb *irb) */ sense_ccw = &to_io_private(sch)->dma_area->sense_ccw; sense_ccw->cmd_code = CCW_CMD_BASIC_SENSE; - sense_ccw->cda = (__u32) __pa(cdev->private->dma_area->irb.ecw); + sense_ccw->cda = virt_to_phys(cdev->private->dma_area->irb.ecw); sense_ccw->count = SENSE_MAX_COUNT; sense_ccw->flags = CCW_FLAG_SLI; |