From e0112bc508b142786b919eb48c2dc8eca9f0361b Mon Sep 17 00:00:00 2001
From: WHR <whr@rivoreo.one>
Date: Wed, 1 May 2024 00:55:10 +0800
Subject: [PATCH] sandbox: make function 'do_undefined' properly compiles for
 PowerPC

The 2 bytes 0xffff is too short for being a PowerPC instruction, resulting
in an error similar to:
    /tmp/ccW8yjie.s: Assembler messages:
    /tmp/ccW8yjie.s: Error: unaligned opcodes detected in executable segment
    /tmp/ccW8yjie.s:223: Error: instruction address is not a multiple of 4
    make[2]: *** [/tmp/ccyF4HIC.mk:17: /tmp/ccCKUFuF.ltrans5.ltrans.o] Error 1

Signed-off-by: WHR <msl0000023508@gmail.com>
---
 cmd/sandbox/exception.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/cmd/sandbox/exception.c b/cmd/sandbox/exception.c
index cfa153da26..f9c847d8ff 100644
--- a/cmd/sandbox/exception.c
+++ b/cmd/sandbox/exception.c
@@ -19,7 +19,11 @@ static int do_sigsegv(struct cmd_tbl *cmdtp, int flag, int argc,
 static int do_undefined(struct cmd_tbl *cmdtp, int flag, int argc,
 			char *const argv[])
 {
+#ifdef __powerpc__
+	asm volatile (".long 0xffffffff\n");
+#else
 	asm volatile (".word 0xffff\n");
+#endif
 	return CMD_RET_FAILURE;
 }
 
-- 
2.39.5