diff options
author | Andy Lutomirski <luto@kernel.org> | 2017-02-22 16:36:16 +0100 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2017-03-01 17:03:22 +0100 |
commit | b7ceaec112aa35aa287325754d8c52b8304892cd (patch) | |
tree | af5014f643adf8db9d82178bfb22f68062ed41c2 /arch/x86/kernel/ioport.c | |
parent | kvm: convert kvm.users_count from atomic_t to refcount_t (diff) | |
download | linux-b7ceaec112aa35aa287325754d8c52b8304892cd.tar.xz linux-b7ceaec112aa35aa287325754d8c52b8304892cd.zip |
x86/asm: Tidy up TSS limit code
In an earlier version of the patch ("x86/kvm/vmx: Defer TR reload
after VM exit") that introduced TSS limit validity tracking, I
confused which helper was which. On reflection, the names I chose
sucked. Rename the helpers to make it more obvious what's going on
and add some comments.
While I'm at it, clear __tss_limit_invalid when force-reloading as
well as when contitionally reloading, since any TR reload fixes the
limit.
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Diffstat (limited to 'arch/x86/kernel/ioport.c')
-rw-r--r-- | arch/x86/kernel/ioport.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c index b01bc8517450..875d3d25dd6a 100644 --- a/arch/x86/kernel/ioport.c +++ b/arch/x86/kernel/ioport.c @@ -47,8 +47,14 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) t->io_bitmap_ptr = bitmap; set_thread_flag(TIF_IO_BITMAP); + /* + * Now that we have an IO bitmap, we need our TSS limit to be + * correct. It's fine if we are preempted after doing this: + * with TIF_IO_BITMAP set, context switches will keep our TSS + * limit correct. + */ preempt_disable(); - refresh_TR(); + refresh_tss_limit(); preempt_enable(); } |