From: Andy Lutomirski <luto@kernel.org> To: X86 ML <x86@kernel.org> Cc: Paolo Bonzini <pbonzini@redhat.com>, Peter Zijlstra <peterz@infradead.org>, KVM list <kvm@vger.kernel.org>, Arjan van de Ven <arjan@linux.intel.com>, xen-devel <Xen-devel@lists.xen.org>, linux-kernel@vger.kernel.org, Linus Torvalds <torvalds@linux-foundation.org>, Andrew Morton <akpm@linux-foundation.org>, Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org> Subject: [PATCH v5 8/9] x86/paravirt: Make "unsafe" MSR accesses unsafe even if PARAVIRT=y Date: Sat, 2 Apr 2016 07:01:39 -0700 [thread overview] Message-ID: <414fabd6d3527703077c6c2a797223d0a9c3b081.1459605520.git.luto@kernel.org> (raw) In-Reply-To: <cover.1459605520.git.luto@kernel.org> In-Reply-To: <cover.1459605520.git.luto@kernel.org> Enabling CONFIG_PARAVIRT had an unintended side effect: rdmsr turned into rdmsr_safe and wrmsr turned into wrmsr_safe, even on bare metal. Undo that by using the new unsafe paravirt MSR hooks. Signed-off-by: Andy Lutomirski <luto@kernel.org> --- arch/x86/include/asm/paravirt.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 68297d87e85c..0c99f10874e4 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -151,24 +151,21 @@ static inline int paravirt_write_msr_safe(unsigned msr, return PVOP_CALL3(int, pv_cpu_ops.write_msr_safe, msr, low, high); } -/* These should all do BUG_ON(_err), but our headers are too tangled. */ #define rdmsr(msr, val1, val2) \ do { \ - int _err; \ - u64 _l = paravirt_read_msr_safe(msr, &_err); \ + u64 _l = paravirt_read_msr(msr); \ val1 = (u32)_l; \ val2 = _l >> 32; \ } while (0) #define wrmsr(msr, val1, val2) \ do { \ - paravirt_write_msr_safe(msr, val1, val2); \ + paravirt_write_msr(msr, val1, val2); \ } while (0) #define rdmsrl(msr, val) \ do { \ - int _err; \ - val = paravirt_read_msr_safe(msr, &_err); \ + val = paravirt_read_msr(msr); \ } while (0) static inline void wrmsrl(unsigned msr, u64 val) -- 2.5.5
WARNING: multiple messages have this Message-ID (diff)
From: Andy Lutomirski <luto@kernel.org> To: X86 ML <x86@kernel.org> Cc: KVM list <kvm@vger.kernel.org>, Peter Zijlstra <peterz@infradead.org>, Linus Torvalds <torvalds@linux-foundation.org>, linux-kernel@vger.kernel.org, xen-devel <Xen-devel@lists.xen.org>, Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, Andrew Morton <akpm@linux-foundation.org>, Arjan van de Ven <arjan@linux.intel.com> Subject: [PATCH v5 8/9] x86/paravirt: Make "unsafe" MSR accesses unsafe even if PARAVIRT=y Date: Sat, 2 Apr 2016 07:01:39 -0700 [thread overview] Message-ID: <414fabd6d3527703077c6c2a797223d0a9c3b081.1459605520.git.luto@kernel.org> (raw) In-Reply-To: <cover.1459605520.git.luto@kernel.org> In-Reply-To: <cover.1459605520.git.luto@kernel.org> Enabling CONFIG_PARAVIRT had an unintended side effect: rdmsr turned into rdmsr_safe and wrmsr turned into wrmsr_safe, even on bare metal. Undo that by using the new unsafe paravirt MSR hooks. Signed-off-by: Andy Lutomirski <luto@kernel.org> --- arch/x86/include/asm/paravirt.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index 68297d87e85c..0c99f10874e4 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -151,24 +151,21 @@ static inline int paravirt_write_msr_safe(unsigned msr, return PVOP_CALL3(int, pv_cpu_ops.write_msr_safe, msr, low, high); } -/* These should all do BUG_ON(_err), but our headers are too tangled. */ #define rdmsr(msr, val1, val2) \ do { \ - int _err; \ - u64 _l = paravirt_read_msr_safe(msr, &_err); \ + u64 _l = paravirt_read_msr(msr); \ val1 = (u32)_l; \ val2 = _l >> 32; \ } while (0) #define wrmsr(msr, val1, val2) \ do { \ - paravirt_write_msr_safe(msr, val1, val2); \ + paravirt_write_msr(msr, val1, val2); \ } while (0) #define rdmsrl(msr, val) \ do { \ - int _err; \ - val = paravirt_read_msr_safe(msr, &_err); \ + val = paravirt_read_msr(msr); \ } while (0) static inline void wrmsrl(unsigned msr, u64 val) -- 2.5.5 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-04-02 14:03 UTC|newest] Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-04-02 14:01 [PATCH v5 0/9] Improve non-"safe" MSR access failure handling Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 1/9] x86/head: Pass a real pt_regs and trapnr to early_fixup_exception Andy Lutomirski 2016-04-02 14:01 ` Andy Lutomirski 2016-04-13 11:43 ` [tip:x86/asm] x86/head: Pass a real pt_regs and trapnr to early_fixup_exception() tip-bot for Andy Lutomirski 2016-04-13 11:43 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 2/9] x86/head: Move the early NMI fixup into C Andy Lutomirski 2016-04-02 14:01 ` Andy Lutomirski 2016-04-13 11:43 ` [tip:x86/asm] " tip-bot for Andy Lutomirski 2016-04-13 11:43 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 3/9] x86/head: Move early exception panic code into early_fixup_exception Andy Lutomirski 2016-04-02 14:01 ` Andy Lutomirski 2016-04-02 18:39 ` Borislav Petkov 2016-04-02 18:39 ` Borislav Petkov 2016-04-02 20:13 ` Andy Lutomirski 2016-04-02 20:47 ` Borislav Petkov 2016-04-02 20:47 ` Borislav Petkov 2016-04-02 20:58 ` Andy Lutomirski 2016-04-02 20:58 ` Andy Lutomirski 2016-04-04 11:52 ` Jan Kara 2016-04-04 11:52 ` Jan Kara 2016-04-04 12:46 ` Peter Zijlstra 2016-04-04 12:46 ` Peter Zijlstra 2016-04-04 15:32 ` Andy Lutomirski 2016-04-04 15:36 ` Arjan van de Ven 2016-04-04 15:36 ` Arjan van de Ven 2016-04-04 16:00 ` Peter Zijlstra 2016-04-04 16:00 ` Peter Zijlstra 2016-04-04 19:38 ` Borislav Petkov 2016-04-04 19:38 ` Borislav Petkov 2016-04-04 21:31 ` Andy Lutomirski 2016-04-04 21:40 ` Borislav Petkov 2016-04-04 21:40 ` Borislav Petkov 2016-04-04 21:31 ` Andy Lutomirski 2016-04-04 15:32 ` Andy Lutomirski 2016-04-02 20:13 ` Andy Lutomirski 2016-04-13 11:44 ` [tip:x86/asm] x86/head: Move early exception panic code into early_fixup_exception() tip-bot for Andy Lutomirski 2016-04-13 11:44 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 4/9] x86/traps: Enable all exception handler callbacks early Andy Lutomirski 2016-04-02 18:52 ` Borislav Petkov 2016-04-02 20:16 ` Andy Lutomirski 2016-04-02 20:52 ` Borislav Petkov 2016-04-02 20:52 ` Borislav Petkov 2016-04-03 8:07 ` Borislav Petkov 2016-04-03 8:07 ` Borislav Petkov 2016-04-03 13:22 ` Andy Lutomirski 2016-04-03 13:22 ` Andy Lutomirski 2016-04-03 13:51 ` Linus Torvalds 2016-04-03 13:51 ` Linus Torvalds 2016-04-03 13:55 ` Andy Lutomirski 2016-04-03 14:10 ` Borislav Petkov 2016-04-03 14:10 ` Borislav Petkov 2016-04-04 15:47 ` Andy Lutomirski 2016-04-04 15:47 ` Andy Lutomirski 2016-04-03 14:17 ` Linus Torvalds 2016-04-03 14:17 ` Linus Torvalds 2016-04-03 13:55 ` Andy Lutomirski 2016-04-02 20:16 ` Andy Lutomirski 2016-04-02 18:52 ` Borislav Petkov 2016-04-13 11:44 ` [tip:x86/asm] " tip-bot for Andy Lutomirski 2016-04-13 11:44 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 4/9] " Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 5/9] x86/paravirt: Add _safe to the read_msr and write_msr PV hooks Andy Lutomirski 2016-04-02 14:01 ` Andy Lutomirski 2016-04-03 8:41 ` Borislav Petkov 2016-04-03 13:23 ` Andy Lutomirski 2016-04-03 14:07 ` Borislav Petkov 2016-04-03 14:07 ` Borislav Petkov 2016-04-03 13:23 ` Andy Lutomirski 2016-04-03 8:41 ` Borislav Petkov 2016-04-13 11:44 ` [tip:x86/asm] x86/paravirt: Add _safe to the read_ms()r and write_msr() PV callbacks tip-bot for Andy Lutomirski 2016-04-13 11:44 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 6/9] x86/msr: Carry on after a non-"safe" MSR access fails Andy Lutomirski 2016-04-02 14:01 ` Andy Lutomirski 2016-04-13 11:45 ` [tip:x86/asm] " tip-bot for Andy Lutomirski 2016-04-13 11:45 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 7/9] x86/paravirt: Add paravirt_{read, write}_msr Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 7/9] x86/paravirt: Add paravirt_{read,write}_msr Andy Lutomirski 2016-04-04 16:33 ` [PATCH v5 7/9] x86/paravirt: Add paravirt_{read, write}_msr David Vrabel 2016-04-04 16:33 ` [Xen-devel] " David Vrabel 2016-04-04 16:40 ` Andy Lutomirski 2016-04-04 16:40 ` Andy Lutomirski 2016-04-13 11:45 ` [tip:x86/asm] x86/paravirt: Add paravirt_{read, write}_msr() tip-bot for Andy Lutomirski 2016-04-13 11:45 ` [tip:x86/asm] x86/paravirt: Add paravirt_{read,write}_msr() tip-bot for Andy Lutomirski 2016-04-02 14:01 ` Andy Lutomirski [this message] 2016-04-02 14:01 ` [PATCH v5 8/9] x86/paravirt: Make "unsafe" MSR accesses unsafe even if PARAVIRT=y Andy Lutomirski 2016-04-13 11:46 ` [tip:x86/asm] " tip-bot for Andy Lutomirski 2016-04-13 11:46 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 9/9] x86/msr: Set the return value to zero when native_rdmsr_safe fails Andy Lutomirski 2016-04-13 11:46 ` [tip:x86/asm] x86/msr: Set the return value to zero when native_rdmsr_safe() fails tip-bot for Andy Lutomirski 2016-04-13 11:46 ` tip-bot for Andy Lutomirski 2016-04-02 14:01 ` [PATCH v5 9/9] x86/msr: Set the return value to zero when native_rdmsr_safe fails Andy Lutomirski 2016-04-02 14:24 ` [PATCH v5 0/9] Improve non-"safe" MSR access failure handling Linus Torvalds 2016-04-02 15:13 ` Andy Lutomirski 2016-04-02 15:21 ` Linus Torvalds 2016-04-02 15:21 ` Linus Torvalds 2016-04-02 15:13 ` Andy Lutomirski 2016-04-02 14:24 ` Linus Torvalds 2016-04-04 16:23 ` Borislav Petkov 2016-04-04 16:23 ` Borislav Petkov 2016-04-05 15:38 ` Boris Ostrovsky 2016-04-05 15:38 ` [Xen-devel] " Boris Ostrovsky
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=414fabd6d3527703077c6c2a797223d0a9c3b081.1459605520.git.luto@kernel.org \ --to=luto@kernel.org \ --cc=Xen-devel@lists.xen.org \ --cc=akpm@linux-foundation.org \ --cc=arjan@linux.intel.com \ --cc=bp@alien8.de \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=peterz@infradead.org \ --cc=torvalds@linux-foundation.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.