在 2021/3/31 上午10:26, LeoLiuoc 写道:
  commit b971880fe79f4042aaaf426744a5b19521bf77b3
upstream.
 AMD 2nd generation EPYC processors support the UMIP (User-Mode
 Instruction Prevention) feature. So, rename X86_INTEL_UMIP to
 generic X86_UMIP and modify the text to cover both Intel and AMD.
  [ bp: take of the disabled-features.h copy in tools/ too. ]
 Signed-off-by: Babu Moger <babu.moger(a)amd.com>
 Signed-off-by: Borislav Petkov <bp(a)suse.de>
 Cc: Andy Lutomirski <luto(a)kernel.org>
 Cc: "H. Peter Anvin" <hpa(a)zytor.com>
 Cc: Ingo Molnar <mingo(a)redhat.com>
 Cc: Ricardo Neri <ricardo.neri-calderon(a)linux.intel.com>
 Cc: Thomas Gleixner <tglx(a)linutronix.de>
 Cc: "x86(a)kernel.org" <x86(a)kernel.org>
 Link: 
https://lkml.kernel.org/r/157298912544.17462.2018334793891409521.stgit@napl…
 Signed-off-by: LeoLiu-oc <LeoLiu-oc(a)zhaoxin.com>
 
LGTM
Reviewed-by: Artie Ding <artie.ding(a)openanolis.org>
  ---
  arch/x86/Kconfig                               | 16 ++++++++--------
  arch/x86/include/asm/disabled-features.h       |  2 +-
  arch/x86/include/asm/umip.h                    |  4 ++--
  arch/x86/kernel/Makefile                       |  2 +-
  tools/arch/x86/include/asm/disabled-features.h |  2 +-
  5 files changed, 13 insertions(+), 13 deletions(-)
 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
 index 15feb7a65d34..0cc82958002d 100644
 --- a/arch/x86/Kconfig
 +++ b/arch/x86/Kconfig
 @@ -1857,16 +1857,16 @@ config X86_SMAP
        If unsure, say Y.
 -config X86_INTEL_UMIP
 +config X86_UMIP
      def_bool y
 -    depends on CPU_SUP_INTEL
 -    prompt "Intel User Mode Instruction Prevention" if EXPERT
 +    depends on CPU_SUP_INTEL || CPU_SUP_AMD
 +    prompt "User Mode Instruction Prevention" if EXPERT
      ---help---
 -      The User Mode Instruction Prevention (UMIP) is a security
 -      feature in newer Intel processors. If enabled, a general
 -      protection fault is issued if the SGDT, SLDT, SIDT, SMSW
 -      or STR instructions are executed in user mode. These instructions
 -      unnecessarily expose information about the hardware state.
 +      User Mode Instruction Prevention (UMIP) is a security feature in
 +      some x86 processors. If enabled, a general protection fault is
 +      issued if the SGDT, SLDT, SIDT, SMSW or STR instructions are
 +      executed in user mode. These instructions unnecessarily expose
 +      information about the hardware state.
        The vast majority of applications do not use these instructions.
        For the very few that do, software emulation is provided in
 diff --git a/arch/x86/include/asm/disabled-features.h 
 b/arch/x86/include/asm/disabled-features.h
 index 33833d1909af..9d9da3487425 100644
 --- a/arch/x86/include/asm/disabled-features.h
 +++ b/arch/x86/include/asm/disabled-features.h
 @@ -16,7 +16,7 @@
  # define DISABLE_MPX    (1<<(X86_FEATURE_MPX & 31))
  #endif
 -#ifdef CONFIG_X86_INTEL_UMIP
 +#ifdef CONFIG_X86_UMIP
  # define DISABLE_UMIP    0
  #else
  # define DISABLE_UMIP    (1<<(X86_FEATURE_UMIP & 31))
 diff --git a/arch/x86/include/asm/umip.h b/arch/x86/include/asm/umip.h
 index db43f2a0d92c..aeed98c3c9e1 100644
 --- a/arch/x86/include/asm/umip.h
 +++ b/arch/x86/include/asm/umip.h
 @@ -4,9 +4,9 @@
  #include <linux/types.h>
  #include <asm/ptrace.h>
 -#ifdef CONFIG_X86_INTEL_UMIP
 +#ifdef CONFIG_X86_UMIP
  bool fixup_umip_exception(struct pt_regs *regs);
  #else
  static inline bool fixup_umip_exception(struct pt_regs *regs) { 
 return false; }
 -#endif  /* CONFIG_X86_INTEL_UMIP */
 +#endif  /* CONFIG_X86_UMIP */
  #endif  /* _ASM_X86_UMIP_H */
 diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
 index da0b6bc090f3..66835d9a6f72 100644
 --- a/arch/x86/kernel/Makefile
 +++ b/arch/x86/kernel/Makefile
 @@ -134,7 +134,7 @@ obj-$(CONFIG_EFI)            += sysfb_efi.o
  obj-$(CONFIG_PERF_EVENTS)        += perf_regs.o
  obj-$(CONFIG_TRACING)            += tracepoint.o
  obj-$(CONFIG_SCHED_MC_PRIO)        += itmt.o
 -obj-$(CONFIG_X86_INTEL_UMIP)        += umip.o
 +obj-$(CONFIG_X86_UMIP)            += umip.o
  obj-$(CONFIG_UNWINDER_ORC)        += unwind_orc.o
  obj-$(CONFIG_UNWINDER_FRAME_POINTER)    += unwind_frame.o
 diff --git a/tools/arch/x86/include/asm/disabled-features.h 
 b/tools/arch/x86/include/asm/disabled-features.h
 index 33833d1909af..9d9da3487425 100644
 --- a/tools/arch/x86/include/asm/disabled-features.h
 +++ b/tools/arch/x86/include/asm/disabled-features.h
 @@ -16,7 +16,7 @@
  # define DISABLE_MPX    (1<<(X86_FEATURE_MPX & 31))
  #endif
 -#ifdef CONFIG_X86_INTEL_UMIP
 +#ifdef CONFIG_X86_UMIP
  # define DISABLE_UMIP    0
  #else
  # define DISABLE_UMIP    (1<<(X86_FEATURE_UMIP & 31))