lkml.org 
[lkml]   [2015]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 035/104] KVM: x86: trap AMD MSRs for the TSeg base and mask
    Date
    3.16.7-ckt19 -stable review patch.  If anyone has any objections, please let me know.

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

    From: Paolo Bonzini <pbonzini@redhat.com>

    commit 3afb1121800128aae9f5722e50097fcf1a9d4d88 upstream.

    These have roughly the same purpose as the SMRR, which we do not need
    to implement in KVM. However, Linux accesses MSR_K8_TSEG_ADDR at
    boot, which causes problems when running a Xen dom0 under KVM.
    Just return 0, meaning that processor protection of SMRAM is not
    in effect.

    Reported-by: M A Young <m.a.young@durham.ac.uk>
    Acked-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    [ luis: backported to 3.16:
    - file rename: arch/x86/include/asm/msr-index.h ->
    arch/x86/include/uapi/asm/msr-index.h
    - adjusted context ]
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    arch/x86/include/uapi/asm/msr-index.h | 1 +
    arch/x86/kvm/x86.c | 2 ++
    2 files changed, 3 insertions(+)

    diff --git a/arch/x86/include/uapi/asm/msr-index.h b/arch/x86/include/uapi/asm/msr-index.h
    index fcf2b3ae1bf0..7db049a7f7ab 100644
    --- a/arch/x86/include/uapi/asm/msr-index.h
    +++ b/arch/x86/include/uapi/asm/msr-index.h
    @@ -232,6 +232,7 @@
    /* C1E active bits in int pending message */
    #define K8_INTP_C1E_ACTIVE_MASK 0x18000000
    #define MSR_K8_TSEG_ADDR 0xc0010112
    +#define MSR_K8_TSEG_MASK 0xc0010113
    #define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000 /* MtrrFixDramEn bit */
    #define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000 /* MtrrFixDramModEn bit */
    #define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818 /* Mask: RdMem|WrMem */
    diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
    index 27a8d4f9bce5..4977c1a93d52 100644
    --- a/arch/x86/kvm/x86.c
    +++ b/arch/x86/kvm/x86.c
    @@ -2425,6 +2425,8 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
    case MSR_IA32_LASTINTFROMIP:
    case MSR_IA32_LASTINTTOIP:
    case MSR_K8_SYSCFG:
    + case MSR_K8_TSEG_ADDR:
    + case MSR_K8_TSEG_MASK:
    case MSR_K7_HWCR:
    case MSR_VM_HSAVE_PA:
    case MSR_K7_EVNTSEL0:

    \
     
     \ /
      Last update: 2015-10-26 15:41    [W:3.776 / U:1.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site