s390/sclp_sdias: fix sclp_sdias_copy() virtual vs physical address confusion
authorAlexander Gordeev <agordeev@linux.ibm.com>
Wed, 26 Jan 2022 12:47:58 +0000 (13:47 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sun, 6 Feb 2022 22:31:29 +0000 (23:31 +0100)
Due to historical reasons sclp_sdias_copy() misuses
the notion of physical vs virtual addresses difference.

Note: this does not fix a bug currently, since virtual
and physical addresses are identical.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
drivers/s390/char/sclp_sdias.c

index 215d4b4a5ff53054d4a2aa00ed81114c031913e6..e915a343fcf527a468e7f89bb06a620c98755377 100644 (file)
@@ -184,7 +184,7 @@ int sclp_sdias_copy(void *dest, int start_blk, int nr_blks)
        sccb->evbuf.asa_size = SDIAS_ASA_SIZE_64;
        sccb->evbuf.event_status = 0;
        sccb->evbuf.blk_cnt = nr_blks;
-       sccb->evbuf.asa = (unsigned long)dest;
+       sccb->evbuf.asa = __pa(dest);
        sccb->evbuf.fbn = start_blk;
        sccb->evbuf.lbn = 0;
        sccb->evbuf.dbs = 1;