s390/setup: make use of system_ctl_load()
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 11 Sep 2023 19:40:09 +0000 (21:40 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Tue, 19 Sep 2023 11:26:57 +0000 (13:26 +0200)
Use system_ctl_load() instead of local_ctl_load() to reflect that
control register changes are supposed to be global.

Even though setup_cr() was ok, note that the usage of local_ctl_load()
would have been wrong, if it would have happened after the control
register save area was initialized: only local control register contents
would have been changed, but wouldn't be used for new CPUs.

With using system_ctl_load() the caller doesn't need to take care.

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

index d399f18d0379e72af109478b3671a25ba817e670..558bcf18df52ef741b9667a85fc7c65c9f1113b7 100644 (file)
@@ -796,9 +796,9 @@ static void __init setup_cr(void)
        cr2.ducto = (unsigned long)__ctl_duct >> 6;
        cr5.pasteo = (unsigned long)__ctl_duct >> 6;
        cr15.lsea = (unsigned long)__ctl_linkage_stack >> 3;
-       local_ctl_load(2, &cr2.reg);
-       local_ctl_load(5, &cr5.reg);
-       local_ctl_load(15, &cr15.reg);
+       system_ctl_load(2, &cr2.reg);
+       system_ctl_load(5, &cr5.reg);
+       system_ctl_load(15, &cr15.reg);
 }
 
 /*