On 22.02.2016 04:26, David Gibson wrote: > On Fri, Feb 19, 2016 at 04:58:22PM +0100, Andrew Jones wrote: >> Add enough RTAS support to start adding RTAS commands. Just add >> power-off for now. >> >> Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> >> Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx> >> Tested-by: Laurent Vivier <lvivier@xxxxxxxxxx> >> Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> >> --- >> lib/powerpc/asm/rtas.h | 26 +++++++++ >> lib/powerpc/io.c | 2 + >> lib/powerpc/rtas.c | 139 ++++++++++++++++++++++++++++++++++++++++++++++++ >> lib/ppc64/asm/rtas.h | 1 + >> powerpc/Makefile.common | 1 + >> 5 files changed, 169 insertions(+) >> create mode 100644 lib/powerpc/asm/rtas.h >> create mode 100644 lib/powerpc/rtas.c >> create mode 100644 lib/ppc64/asm/rtas.h ... >> + >> +void rtas_power_off(void) >> +{ >> + int ret = rtas_call(rtas_token("power-off"), 2, 1, NULL, -1, -1); >> + printf("RTAS power-off returned %d\n", ret); > > abort here? No, that does not work ... there was an assert() in an earlier version of the patch here, and that did not work: assert() (and abort()) call exit() in kvm-unit-test land, and exit again calls rtas_power_off() again, so you end up with and endless recursive loop. But exit() calls halt() after calling rtas_power_off(), so it's ok if that function simply returns here. Thomas
Attachment:
signature.asc
Description: OpenPGP digital signature