s390/qdio: use absolute data address in ESTABLISH ccw
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 8 Jul 2021 06:32:46 +0000 (08:32 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Wed, 18 Aug 2021 08:01:27 +0000 (10:01 +0200)
Clean up yet another path where HW wants an absolute address, and we've
been implicitly relying on V=R.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
drivers/s390/cio/qdio_main.c

index 42a2e2b..4e861a9 100644 (file)
@@ -998,7 +998,7 @@ int qdio_establish(struct ccw_device *cdev,
        irq_ptr->ccw.cmd_code = irq_ptr->equeue.cmd;
        irq_ptr->ccw.flags = CCW_FLAG_SLI;
        irq_ptr->ccw.count = irq_ptr->equeue.count;
-       irq_ptr->ccw.cda = (u32)((addr_t)irq_ptr->qdr);
+       irq_ptr->ccw.cda = (u32) virt_to_phys(irq_ptr->qdr);
 
        spin_lock_irq(get_ccwdev_lock(cdev));
        ccw_device_set_options_mask(cdev, 0);