Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1375358
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 4.5 031/238] x86/iopl: Fix iopl capability check on Xen PV |
| Date | 2016-04-10 23:00 +0200 |
| Message-ID | <rmuCE-2to-69@gated-at.bofh.it> (permalink) |
| References | <rmsr7-Nr-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
4.5-stable review patch. If anyone has any objections, please let me know.
------------------
From: Andy Lutomirski <luto@kernel.org>
commit c29016cf41fe9fa994a5ecca607cf5f1cd98801e upstream.
iopl(3) is supposed to work if iopl is already 3, even if
unprivileged. This didn't work right on Xen PV. Fix it.
Reviewewd-by: Jan Beulich <JBeulich@suse.com>
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jan Beulich <JBeulich@suse.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/8ce12013e6e4c0a44a97e316be4a6faff31bd5ea.1458162709.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kernel/ioport.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
--- a/arch/x86/kernel/ioport.c
+++ b/arch/x86/kernel/ioport.c
@@ -96,9 +96,14 @@ asmlinkage long sys_ioperm(unsigned long
SYSCALL_DEFINE1(iopl, unsigned int, level)
{
struct pt_regs *regs = current_pt_regs();
- unsigned int old = (regs->flags >> 12) & 3;
struct thread_struct *t = ¤t->thread;
+ /*
+ * Careful: the IOPL bits in regs->flags are undefined under Xen PV
+ * and changing them has no effect.
+ */
+ unsigned int old = t->iopl >> X86_EFLAGS_IOPL_BIT;
+
if (level > 3)
return -EINVAL;
/* Trying to gain more privileges? */
@@ -106,8 +111,9 @@ SYSCALL_DEFINE1(iopl, unsigned int, leve
if (!capable(CAP_SYS_RAWIO))
return -EPERM;
}
- regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
- t->iopl = level << 12;
+ regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
+ (level << X86_EFLAGS_IOPL_BIT);
+ t->iopl = level << X86_EFLAGS_IOPL_BIT;
set_iopl_mask(t->iopl);
return 0;
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 4.5 000/238] 4.5.1-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 027/238] PCI: ACPI: IA64: fix IO port generic range check Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 001/238] x86/microcode/intel: Make early loader look for builtin microcode too Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 010/238] KVM: VMX: avoid guest hang on invalid invvpid instruction Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 033/238] sg: fix dxferp in from_to case Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 023/238] s390/cpumf: add missing lpp magic initialization Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 024/238] s390/pci: enforce fmb page boundary rule Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 025/238] pinctrl-bcm2835: Fix cut-and-paste error in "pull" parsing Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 031/238] x86/iopl: Fix iopl capability check on Xen PV Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 026/238] PCI: Disable IO/MEM decoding for devices with non-compliant BARs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
Re: [PATCH 4.5 026/238] PCI: Disable IO/MEM decoding for devices with non-compliant BARs Ben Hutchings <ben@decadent.org.uk> - 2016-04-12 01:50 +0200
Re: [PATCH 4.5 026/238] PCI: Disable IO/MEM decoding for devices with non-compliant BARs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-12 16:40 +0200
[PATCH 4.5 022/238] s390: fix floating pointer register corruption (again) Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 019/238] sched/preempt, sh: kmap_coherent relies on disabled preemption Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 029/238] x86/apic: Fix suspicious RCU usage in smp_trace_call_function_interrupt() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
[PATCH 4.5 021/238] EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 23:00 +0200
Re: [PATCH 4.5 000/238] 4.5.1-stable review Guenter Roeck <linux@roeck-us.net> - 2016-04-11 08:50 +0200
Re: [PATCH 4.5 000/238] 4.5.1-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-12 16:40 +0200
Re: [PATCH 4.5 000/238] 4.5.1-stable review shuahkh <shuahkh@osg.sisa.samsung.com> - 2016-04-11 19:30 +0200
Re: [PATCH 4.5 000/238] 4.5.1-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-12 08:50 +0200
csiph-web