lkml.org 
[lkml]   [2008]   [Jan]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 43/54] KVM: MMU: Set nx bit correctly on shadow ptes
    Date
    While the page table walker correctly generates a guest page fault
    if a guest tries to execute a non-executable page, the shadow code does
    not mark it non-executable. This means that if a guest accesses an nx
    page first with a read access, then subsequent code fetch accesses will
    succeed.

    Fix by setting the nx bit on shadow ptes.

    Signed-off-by: Avi Kivity <avi@qumranet.com>
    ---
    drivers/kvm/paging_tmpl.h | 2 ++
    1 files changed, 2 insertions(+), 0 deletions(-)

    diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h
    index 7688cbf..59ba752 100644
    --- a/drivers/kvm/paging_tmpl.h
    +++ b/drivers/kvm/paging_tmpl.h
    @@ -255,6 +255,8 @@ static void FNAME(set_pte)(struct kvm_vcpu *vcpu, pt_element_t gpte,
    spte |= gpte & PT64_NX_MASK;
    if (!dirty)
    pte_access &= ~ACC_WRITE_MASK;
    + if (!(pte_access & ACC_EXEC_MASK))
    + spte |= PT64_NX_MASK;

    page = gfn_to_page(vcpu->kvm, gfn);

    --
    1.5.3.7


    \
     
     \ /
      Last update: 2008-01-01 16:53    [W:0.020 / U:0.032 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site