• Lai Jiangshan's avatar
    KVM: X86: Change the type of access u32 to u64 · 5b22bbe7
    Lai Jiangshan authored
    Change the type of access u32 to u64 for FNAME(walk_addr) and
    ->gva_to_gpa().
    
    The kinds of accesses are usually combinations of UWX, and VMX/SVM's
    nested paging adds a new factor of access: is it an access for a guest
    page table or for a final guest physical address.
    
    And SMAP relies a factor for supervisor access: explicit or implicit.
    
    So @access in FNAME(walk_addr) and ->gva_to_gpa() is better to include
    all these information to do the walk.
    
    Although @access(u32) has enough bits to encode all the kinds, this
    patch extends it to u64:
    	o Extra bits will be in the higher 32 bits, so that we can
    	  easily obtain the traditional access mode (UWX) by converting
    	  it to u32.
    	o Reuse the value for the access kind defined by SVM's nested
    	  paging (PFERR_GUEST_FINAL_MASK and PFERR_GUEST_PAGE_MASK) as
    	  @error_code in kvm_handle_page_fault().
    Signed-off-by: default avatarLai Jiangshan <jiangshan.ljs@antgroup.com>
    Message-Id: <20220311070346.45023-2-jiangshanlai@gmail.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    5b22bbe7
mmu.c 173 KB