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 --- |