linux_dsm_epyc7002/arch/x86/kernel/cpu
Denys Vlasenko 487d1edb9a x86/asm/entry/64: Fix comment about SYSENTER MSRs
The comment is ancient, it dates to the time when only AMD's
x86_64 implementation existed. AMD wasn't (and still isn't)
supporting SYSENTER, so these writes were "just in case" back
then.

This has changed: Intel's x86_64 appeared, and Intel does
support SYSENTER in long mode. "Some future 64-bit CPU" is here
already.

The code may appear "buggy" for AMD as it stands, since
MSR_IA32_SYSENTER_EIP is only 32-bit for AMD CPUs. Writing a
kernel function's address to it would drop high bits. Subsequent
use of this MSR for branch via SYSENTER seem to allow user to
transition to CPL0 while executing his code. Scary, eh?

Explain why that is not a bug: because SYSENTER insn would not
work on AMD CPU.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Will Drewry <wad@chromium.org>
Link: http://lkml.kernel.org/r/1427453956-21931-1-git-send-email-dvlasenk@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2015-03-27 12:23:16 +01:00
..
mcheck Fix regression - functions on the mce notifier chain should 2015-02-17 17:03:07 -08:00
microcode * Two fixes hardening microcode data handling. (Quentin Casasnovas) 2015-02-19 13:32:42 +01:00
mtrr x86: Store a per-cpu shadow copy of CR4 2015-02-04 12:10:42 +01:00
.gitignore
amd.c x86/asm: Cleanup prefetch primitives 2015-02-23 13:44:17 +01:00
bugs_64.c
bugs.c x86: Get rid of ->hard_math and all the FPU asm fu 2013-06-06 14:32:04 -07:00
centaur.c x86: Remove CONFIG_X86_OOSTORE 2014-03-11 10:16:18 -07:00
common.c x86/asm/entry/64: Fix comment about SYSENTER MSRs 2015-03-27 12:23:16 +01:00
cpu.h x86/cpu: Track legacy CPU model data only on 32-bit kernels 2013-10-26 13:34:39 +02:00
cyrix.c x86: Delete non-required instances of include <linux/init.h> 2014-01-06 21:25:18 -08:00
hypervisor.c x86: Correctly detect hypervisor 2013-08-05 06:35:33 -07:00
intel_cacheinfo.c x86: use %*pb[l] to print bitmaps including cpumasks and nodemasks 2015-02-13 21:21:37 -08:00
intel.c x86/cpu/intel: Fix trivial typo in intel_tlb_table[] 2015-02-22 08:55:58 +01:00
Makefile x86/build: Clean auto-generated processor feature files 2014-12-23 15:37:06 +01:00
match.c x86: align x86 arch with generic CPU modalias handling 2014-02-18 12:45:38 -08:00
mkcapflags.sh x86: Fix mkcapflags.sh bash-ism 2014-12-23 15:34:57 +01:00
mshyperv.c x86, hyperv: Mark the Hyper-V clocksource as being continuous 2015-01-20 14:36:25 +01:00
perf_event_amd_ibs.c perf/x86/amd/ibs: Update IBS MSRs and feature definitions 2014-11-12 15:12:32 +01:00
perf_event_amd_iommu.c cpumask: factor out show_cpumap into separate helper function 2014-11-07 11:45:00 -08:00
perf_event_amd_iommu.h perf/x86/amd: AMD IOMMU Performance Counter PERF uncore PMU implementation 2013-06-19 13:04:53 +02:00
perf_event_amd_uncore.c cpumask: factor out show_cpumap into separate helper function 2014-11-07 11:45:00 -08:00
perf_event_amd.c x86: Replace __get_cpu_var uses 2014-08-26 13:45:49 -04:00
perf_event_intel_ds.c perf/x86/intel: Fix bug for "cycles:p" and "cycles:pp" on SLM 2015-01-16 09:06:59 +01:00
perf_event_intel_lbr.c x86: Remove arbitrary instruction size limit in instruction decoder 2014-11-18 00:58:52 +01:00
perf_event_intel_rapl.c perf/rapl: Fix crash in rapl_scale() 2015-01-28 13:04:35 +01:00
perf_event_intel_uncore_nhmex.c perf/x86/uncore: Fix coccinelle warnings 2014-08-13 07:51:09 +02:00
perf_event_intel_uncore_snb.c perf/x86/intel/uncore: Update support for client uncore IMC PMU 2014-09-24 14:48:25 +02:00
perf_event_intel_uncore_snbep.c perf/x86/uncore/hsw-ep: Handle systems with only two SBOXes 2015-01-09 11:12:30 +01:00
perf_event_intel_uncore.c perf/x86/intel/uncore: Move uncore_box_init() out of driver initialization 2015-01-28 13:04:34 +01:00
perf_event_intel_uncore.h perf/x86/intel/uncore: Move uncore_box_init() out of driver initialization 2015-01-28 13:04:34 +01:00
perf_event_intel.c perf/x86/intel: Add model number for Airmont 2015-01-28 13:17:32 +01:00
perf_event_knc.c x86: Replace __get_cpu_var uses 2014-08-26 13:45:49 -04:00
perf_event_p4.c x86: Replace __get_cpu_var uses 2014-08-26 13:45:49 -04:00
perf_event_p6.c perf/x86/intel/p6: Add userspace RDPMC quirk for PPro 2014-02-09 13:08:24 +01:00
perf_event.c x86/asm/entry, perf: Explicitly optimize vm86 handling in code_segment_base() 2015-03-23 11:13:41 +01:00
perf_event.h perf/x86: Only allow rdpmc if a perf_event is mapped 2015-02-04 12:10:47 +01:00
perfctr-watchdog.c perf/x86: Add support for Intel Xeon-Phi Knights Corner PMU 2012-10-04 13:32:37 +02:00
powerflags.c update AMD powerflags comments 2013-05-28 12:02:10 +02:00
proc.c x86: Replace seq_printf() with seq_puts() 2014-12-08 11:48:15 +01:00
rdrand.c x86, rdrand: When nordrand is specified, disable RDSEED as well 2014-05-11 20:25:20 -07:00
scattered.c x86: Add support for Intel HWP feature detection. 2014-11-12 00:04:37 +01:00
topology.c x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
transmeta.c x86: Delete non-required instances of include <linux/init.h> 2014-01-06 21:25:18 -08:00
umc.c x86: Delete non-required instances of include <linux/init.h> 2014-01-06 21:25:18 -08:00
vmware.c x86: Correctly detect hypervisor 2013-08-05 06:35:33 -07:00