lkml.org 
[lkml]   [2016]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 041/114] x86/mm/xen: Suppress hugetlbfs in PV guests
    3.16.36-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jan Beulich <JBeulich@suse.com>

    commit 103f6112f253017d7062cd74d17f4a514ed4485c upstream.

    Huge pages are not normally available to PV guests. Not suppressing
    hugetlbfs use results in an endless loop of page faults when user mode
    code tries to access a hugetlbfs mapped area (since the hypervisor
    denies such PTEs to be created, but error indications can't be
    propagated out of xen_set_pte_at(), just like for various of its
    siblings), and - once killed in an oops like this:

    kernel BUG at .../fs/hugetlbfs/inode.c:428!
    invalid opcode: 0000 [#1] SMP
    ...
    RIP: e030:[<ffffffff811c333b>] [<ffffffff811c333b>] remove_inode_hugepages+0x25b/0x320
    ...
    Call Trace:
    [<ffffffff811c3415>] hugetlbfs_evict_inode+0x15/0x40
    [<ffffffff81167b3d>] evict+0xbd/0x1b0
    [<ffffffff8116514a>] __dentry_kill+0x19a/0x1f0
    [<ffffffff81165b0e>] dput+0x1fe/0x220
    [<ffffffff81150535>] __fput+0x155/0x200
    [<ffffffff81079fc0>] task_work_run+0x60/0xa0
    [<ffffffff81063510>] do_exit+0x160/0x400
    [<ffffffff810637eb>] do_group_exit+0x3b/0xa0
    [<ffffffff8106e8bd>] get_signal+0x1ed/0x470
    [<ffffffff8100f854>] do_signal+0x14/0x110
    [<ffffffff810030e9>] prepare_exit_to_usermode+0xe9/0xf0
    [<ffffffff814178a5>] retint_user+0x8/0x13

    This is CVE-2016-3961 / XSA-174.

    Reported-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    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: Juergen Gross <JGross@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Luis R. Rodriguez <mcgrof@suse.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Toshi Kani <toshi.kani@hp.com>
    Cc: xen-devel <xen-devel@lists.xenproject.org>
    Link: http://lkml.kernel.org/r/57188ED802000078000E431C@prv-mh.provo.novell.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    arch/x86/include/asm/hugetlb.h | 1 +
    1 file changed, 1 insertion(+)

    --- a/arch/x86/include/asm/hugetlb.h
    +++ b/arch/x86/include/asm/hugetlb.h
    @@ -4,6 +4,7 @@
    #include <asm/page.h>
    #include <asm-generic/hugetlb.h>

    +#define hugepages_supported() cpu_has_pse

    static inline int is_hugepage_only_range(struct mm_struct *mm,
    unsigned long addr,
    \
     
     \ /
      Last update: 2016-06-13 21:21    [W:4.463 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site