powerpc/rtas: prevent suspend-related sys_rtas use on LE
authorNathan Lynch <nathanl@linux.ibm.com>
Mon, 7 Dec 2020 21:51:33 +0000 (15:51 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 8 Dec 2020 10:40:54 +0000 (21:40 +1100)
While drmgr has had work in some areas to make its RTAS syscall
interactions endian-neutral, its code for performing partition
migration via the syscall has never worked on LE. While it is able to
complete ibm,suspend-me successfully, it crashes when attempting the
subsequent ibm,update-nodes call.

drmgr is the only known (or plausible) user of ibm,suspend-me,
ibm,update-nodes, and ibm,update-properties, so allow them only in
big-endian configurations.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201207215200.1785968-2-nathanl@linux.ibm.com
arch/powerpc/kernel/rtas.c

index 954f41676f6925b51a8449bb65b30d69724aa0d2..4ed64aba37d6e3750a381382b46b9b96381886cf 100644 (file)
@@ -1050,9 +1050,11 @@ static struct rtas_filter rtas_filters[] __ro_after_init = {
        { "set-time-for-power-on", -1, -1, -1, -1, -1 },
        { "ibm,set-system-parameter", -1, 1, -1, -1, -1 },
        { "set-time-of-day", -1, -1, -1, -1, -1 },
+#ifdef CONFIG_CPU_BIG_ENDIAN
        { "ibm,suspend-me", -1, -1, -1, -1, -1 },
        { "ibm,update-nodes", -1, 0, -1, -1, -1, 4096 },
        { "ibm,update-properties", -1, 0, -1, -1, -1, 4096 },
+#endif
        { "ibm,physical-attestation", -1, 0, 1, -1, -1 },
 };