x86_64: Fix S3 fail path

As acpi_enter_sleep_state can fail, take this into account in
do_suspend_lowlevel and don't return to the do_suspend_lowlevel's
caller. This would break (currently) fpu status and preempt count.

Technically, this means use `call' instead of `jmp' and `jmp' to
the `resume_point' after the `call' (i.e. if
acpi_enter_sleep_state returns=fails). `resume_point' will handle
the restore of fpu and preempt count gracefully.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>

authored by

Jiri Slaby and committed by
Len Brown
6defa2fe e6bd6760

+3 -1
+3 -1
arch/x86/kernel/acpi/wakeup_64.S
··· 73 73 addq $8, %rsp 74 74 movl $3, %edi 75 75 xorl %eax, %eax 76 - jmp acpi_enter_sleep_state 76 + call acpi_enter_sleep_state 77 + /* in case something went wrong, restore the machine status and go on */ 78 + jmp resume_point 77 79 78 80 .align 4 79 81 resume_point: