s390/appldata: fix virtual vs physical address confusion
authorGerald Schaefer <gerald.schaefer@linux.ibm.com>
Wed, 17 Jan 2024 12:58:12 +0000 (13:58 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Fri, 9 Feb 2024 12:58:13 +0000 (13:58 +0100)
Fix virtual vs physical address confusion (which currently are the same).

Reviewed-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>
arch/s390/include/asm/appldata.h

index f2240392c70807635ef5d9c5e630855f954af6ce..a92ebbc7aa7a383d03442ef86f25d844e28c74e5 100644 (file)
@@ -54,13 +54,13 @@ static inline int appldata_asm(struct appldata_parameter_list *parm_list,
        parm_list->function = fn;
        parm_list->parlist_length = sizeof(*parm_list);
        parm_list->buffer_length = length;
-       parm_list->product_id_addr = (unsigned long) id;
+       parm_list->product_id_addr = virt_to_phys(id);
        parm_list->buffer_addr = virt_to_phys(buffer);
        diag_stat_inc(DIAG_STAT_X0DC);
        asm volatile(
                "       diag    %1,%0,0xdc"
                : "=d" (ry)
-               : "d" (parm_list), "m" (*parm_list), "m" (*id)
+               : "d" (virt_to_phys(parm_list)), "m" (*parm_list), "m" (*id)
                : "cc");
        return ry;
 }