From 14edd0d73bfef320fd5be11495687ba537aa6341 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Fri, 19 Jan 2024 12:19:30 +0100 Subject: [PATCH] s390/cmf: fix virtual vs physical address confusion The measurement block origin address is an absolute address; therefore add a missing virt_to_phys() translation to the cmf_activate() inline assembly. This doesn't fix a bug, since virtual and physical addresses are currently identical. Acked-by: Alexander Gordeev Acked-by: Vineeth Vijayan Signed-off-by: Heiko Carstens --- drivers/s390/cio/cmf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c index 6a6e61ceb3c19..f80dc18e2a761 100644 --- a/drivers/s390/cio/cmf.c +++ b/drivers/s390/cio/cmf.c @@ -169,7 +169,8 @@ static inline void cmf_activate(void *area, unsigned int onoff) " lgr 2,%[mbo]\n" " schm\n" : - : [r1] "d" ((unsigned long)onoff), [mbo] "d" (area) + : [r1] "d" ((unsigned long)onoff), + [mbo] "d" (virt_to_phys(area)) : "1", "2"); } -- 2.30.2