• Marcelo Henrique Cerri's avatar
    x86/hyperv: Fix hypercalls with extended CPU ranges for TLB flushing · ab7ff471
    Marcelo Henrique Cerri authored
    Do not consider the fixed size of hv_vp_set when passing the variable
    header size to hv_do_rep_hypercall().
    
    The Hyper-V hypervisor specification states that for a hypercall with a
    variable header only the size of the variable portion should be supplied
    via the input control.
    
    For HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX/LIST_EX calls that means the
    fixed portion of hv_vp_set should not be considered.
    
    That fixes random failures of some applications that are unexpectedly
    killed with SIGBUS or SIGSEGV.
    Signed-off-by: default avatarMarcelo Henrique Cerri <marcelo.cerri@canonical.com>
    Cc: Dexuan Cui <decui@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Jork Loeser <Jork.Loeser@microsoft.com>
    Cc: Josh Poulson <jopoulso@microsoft.com>
    Cc: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Simon Xiao <sixiao@microsoft.com>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: devel@linuxdriverproject.org
    Fixes: 628f54cc ("x86/hyper-v: Support extended CPU ranges for TLB flush hypercalls")
    Link: http://lkml.kernel.org/r/1507210469-29065-1-git-send-email-marcelo.cerri@canonical.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    ab7ff471
mmu.c 7.35 KB