entry_64.S (1913c7f3fc2514e09262baf2267a82dfdb215c39) entry_64.S (30a2441cae7b149ff484a697bf9eb8de53240a4f)
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * linux/arch/x86_64/entry.S
4 *
5 * Copyright (C) 1991, 1992 Linus Torvalds
6 * Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs
7 * Copyright (C) 2000 Pavel Machek <pavel@suse.cz>
8 *

--- 602 unchanged lines hidden (view full) ---

611 TRACE_IRQS_OFF
612
613 LEAVE_IRQ_STACK
614
615 testb $3, CS(%rsp)
616 jz retint_kernel
617
618 /* Interrupt came from user space */
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * linux/arch/x86_64/entry.S
4 *
5 * Copyright (C) 1991, 1992 Linus Torvalds
6 * Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs
7 * Copyright (C) 2000 Pavel Machek <pavel@suse.cz>
8 *

--- 602 unchanged lines hidden (view full) ---

611 TRACE_IRQS_OFF
612
613 LEAVE_IRQ_STACK
614
615 testb $3, CS(%rsp)
616 jz retint_kernel
617
618 /* Interrupt came from user space */
619GLOBAL(retint_user)
619.Lretint_user:
620 mov %rsp,%rdi
621 call prepare_exit_to_usermode
622 TRACE_IRQS_IRETQ
623
624GLOBAL(swapgs_restore_regs_and_return_to_usermode)
625#ifdef CONFIG_DEBUG_ENTRY
626 /* Assert that pt_regs indicates user mode. */
627 testb $3, CS(%rsp)

--- 739 unchanged lines hidden (view full) ---

1367END(error_entry)
1368
1369ENTRY(error_exit)
1370 UNWIND_HINT_REGS
1371 DISABLE_INTERRUPTS(CLBR_ANY)
1372 TRACE_IRQS_OFF
1373 testb $3, CS(%rsp)
1374 jz retint_kernel
620 mov %rsp,%rdi
621 call prepare_exit_to_usermode
622 TRACE_IRQS_IRETQ
623
624GLOBAL(swapgs_restore_regs_and_return_to_usermode)
625#ifdef CONFIG_DEBUG_ENTRY
626 /* Assert that pt_regs indicates user mode. */
627 testb $3, CS(%rsp)

--- 739 unchanged lines hidden (view full) ---

1367END(error_entry)
1368
1369ENTRY(error_exit)
1370 UNWIND_HINT_REGS
1371 DISABLE_INTERRUPTS(CLBR_ANY)
1372 TRACE_IRQS_OFF
1373 testb $3, CS(%rsp)
1374 jz retint_kernel
1375 jmp retint_user
1375 jmp .Lretint_user
1376END(error_exit)
1377
1378/*
1379 * Runs on exception stack. Xen PV does not go through this path at all,
1380 * so we can use real assembly here.
1381 *
1382 * Registers:
1383 * %r14: Used to save/restore the CR3 of the interrupted context

--- 362 unchanged lines hidden ---
1376END(error_exit)
1377
1378/*
1379 * Runs on exception stack. Xen PV does not go through this path at all,
1380 * so we can use real assembly here.
1381 *
1382 * Registers:
1383 * %r14: Used to save/restore the CR3 of the interrupted context

--- 362 unchanged lines hidden ---