Skip to content
Snippets Groups Projects
Commit 3db92972 authored by Waiman Long's avatar Waiman Long
Browse files

x86/entry: Move PUSH_AND_CLEAR_REGS out of error_entry()

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2090231



commit ee774dac
Author: Lai Jiangshan <jiangshan.ljs@antgroup.com>
Date:   Thu, 21 Apr 2022 22:10:50 +0800

    x86/entry: Move PUSH_AND_CLEAR_REGS out of error_entry()

    The macro idtentry() (through idtentry_body()) calls error_entry()
    unconditionally even on XENPV. But XENPV needs to only push and clear
    regs.

    PUSH_AND_CLEAR_REGS in error_entry() makes the stack not return to its
    original place when the function returns, which means it is not possible
    to convert it to a C function.

    Carve out PUSH_AND_CLEAR_REGS out of error_entry() and into a separate
    function and call it before error_entry() in order to avoid calling
    error_entry() on XENPV.

    It will also allow for error_entry() to be converted to C code that can
    use inlined sync_regs() and save a function call.

      [ bp: Massage commit message. ]

Signed-off-by: default avatarLai Jiangshan <jiangshan.ljs@antgroup.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20220503032107.680190-4-jiangshanlai@gmail.com



Signed-off-by: default avatarWaiman Long <longman@redhat.com>
parent e6a013f3
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment