On Fri 2019-09-06 09:55:49, Jiri Slaby wrote:
> bogus_64_magic is only a dead-end loop. There is no need for an
> out-of-order function (and unannotated local label), so just handle it
> in-place and also store 0xbad-m-a-g-i-c to rcx beforehand.

Slower, longer, does not really fix anything. Why is it good idea?

NAK.
                                                        Pavel

> Signed-off-by: Jiri Slaby <jsl...@suse.cz>
> Cc: "Rafael J. Wysocki" <r...@rjwysocki.net>
> Cc: Pavel Machek <pa...@ucw.cz>
> Cc: Len Brown <l...@kernel.org>
> Cc: Borislav Petkov <b...@alien8.de>
> Cc: Thomas Gleixner <t...@linutronix.de>
> Cc: Ingo Molnar <mi...@redhat.com>
> Cc: "H. Peter Anvin" <h...@zytor.com>
> Cc: x...@kernel.org
> Cc: linux...@vger.kernel.org
> ---
>  arch/x86/kernel/acpi/wakeup_64.S | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/kernel/acpi/wakeup_64.S 
> b/arch/x86/kernel/acpi/wakeup_64.S
> index b0715c3ac18d..7f9ade13bbcf 100644
> --- a/arch/x86/kernel/acpi/wakeup_64.S
> +++ b/arch/x86/kernel/acpi/wakeup_64.S
> @@ -18,8 +18,13 @@ ENTRY(wakeup_long64)
>       movq    saved_magic, %rax
>       movq    $0x123456789abcdef0, %rdx
>       cmpq    %rdx, %rax
> -     jne     bogus_64_magic
> +     je      2f
>  
> +     /* stop here on a saved_magic mismatch */
> +     movq $0xbad6d61676963, %rcx
> +1:
> +     jmp 1b
> +2:
>       movw    $__KERNEL_DS, %ax
>       movw    %ax, %ss        
>       movw    %ax, %ds
> @@ -37,9 +42,6 @@ ENTRY(wakeup_long64)
>       jmp     *%rax
>  ENDPROC(wakeup_long64)
>  
> -bogus_64_magic:
> -     jmp     bogus_64_magic
> -
>  ENTRY(do_suspend_lowlevel)
>       FRAME_BEGIN
>       subq    $8, %rsp

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature

Reply via email to