From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751568AbdGLENl (ORCPT ); Wed, 12 Jul 2017 00:13:41 -0400 Received: from mail.skyhub.de ([5.9.137.197]:40674 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750718AbdGLENk (ORCPT ); Wed, 12 Jul 2017 00:13:40 -0400 Date: Wed, 12 Jul 2017 06:13:36 +0200 From: Borislav Petkov To: Andy Lutomirski Cc: x86-ml , lkml Subject: Remove __end_entry_SYSENTER_compat? Message-ID: <20170712041336.GD23362@nazgul.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Anyone think this is an OK-ish idea? It saves us the global symbol but requires the two functions to remained glued together. :-\ --- diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S index e1721dafbcb1..262519da8661 100644 --- a/arch/x86/entry/entry_64_compat.S +++ b/arch/x86/entry/entry_64_compat.S @@ -131,7 +131,6 @@ ENTRY(entry_SYSENTER_compat) pushq $X86_EFLAGS_FIXED popfq jmp .Lsysenter_flags_fixed -GLOBAL(__end_entry_SYSENTER_compat) ENDPROC(entry_SYSENTER_compat) /* @@ -180,6 +179,9 @@ ENDPROC(entry_SYSENTER_compat) * edi arg5 * esp user stack * 0(%esp) arg6 + * + * DO NOT! move this function and the above before adjusting + * is_sysenter_singlestep(). */ ENTRY(entry_SYSCALL_compat) /* Interrupts are off on entry. */ diff --git a/arch/x86/include/asm/proto.h b/arch/x86/include/asm/proto.h index 8d3964fc5f91..afdef9f3f0f0 100644 --- a/arch/x86/include/asm/proto.h +++ b/arch/x86/include/asm/proto.h @@ -21,7 +21,6 @@ void __end_SYSENTER_singlestep_region(void); #ifdef CONFIG_IA32_EMULATION void entry_SYSENTER_compat(void); -void __end_entry_SYSENTER_compat(void); void entry_SYSCALL_compat(void); void entry_INT80_compat(void); #endif diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index bf54309b85da..143902ffe9ff 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -668,7 +668,7 @@ static bool is_sysenter_singlestep(struct pt_regs *regs) (unsigned long)__begin_SYSENTER_singlestep_region; #elif defined(CONFIG_IA32_EMULATION) return (regs->ip - (unsigned long)entry_SYSENTER_compat) < - (unsigned long)__end_entry_SYSENTER_compat - + (unsigned long)entry_SYSCALL_compat - (unsigned long)entry_SYSENTER_compat; #else return false; -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. --