|
@@ -371,14 +371,7 @@ __visible void do_syscall_64(struct pt_regs *regs)
|
|
|
* in workloads that use it, and it's usually called from
|
|
|
* do_fast_syscall_32, so forcibly inline it to improve performance.
|
|
|
*/
|
|
|
-#ifdef CONFIG_X86_32
|
|
|
-/* 32-bit kernels use a trap gate for INT80, and the asm code calls here. */
|
|
|
-__visible
|
|
|
-#else
|
|
|
-/* 64-bit kernels use do_syscall_32_irqs_off() instead. */
|
|
|
-static
|
|
|
-#endif
|
|
|
-__always_inline void do_syscall_32_irqs_on(struct pt_regs *regs)
|
|
|
+static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs)
|
|
|
{
|
|
|
struct thread_info *ti = pt_regs_to_thread_info(regs);
|
|
|
unsigned int nr = (unsigned int)regs->orig_ax;
|
|
@@ -413,14 +406,12 @@ __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs)
|
|
|
syscall_return_slowpath(regs);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_X86_64
|
|
|
-/* Handles INT80 on 64-bit kernels */
|
|
|
-__visible void do_syscall_32_irqs_off(struct pt_regs *regs)
|
|
|
+/* Handles int $0x80 */
|
|
|
+__visible void do_int80_syscall_32(struct pt_regs *regs)
|
|
|
{
|
|
|
local_irq_enable();
|
|
|
do_syscall_32_irqs_on(regs);
|
|
|
}
|
|
|
-#endif
|
|
|
|
|
|
/* Returns 0 to return using IRET or 1 to return using SYSEXIT/SYSRETL. */
|
|
|
__visible long do_fast_syscall_32(struct pt_regs *regs)
|