• Paul Mackerras's avatar
    KVM: PPC: Book3S PR: Correct errors in H_ENTER implementation · 5cd92a95
    Paul Mackerras authored
    The implementation of H_ENTER in PR KVM has some errors:
    
    * With H_EXACT not set, if the HPTEG is full, we return H_PTEG_FULL
      as the return value of kvmppc_h_pr_enter, but the caller is expecting
      one of the EMULATE_* values.  The H_PTEG_FULL needs to go in the
      guest's R3 instead.
    
    * With H_EXACT set, if the selected HPTE is already valid, the H_ENTER
      call should return a H_PTEG_FULL error.
    
    This fixes these errors and also makes it write only the selected HPTE,
    not the whole group, since only the selected HPTE has been modified.
    This also micro-optimizes the calculations involving pte_index and i.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    5cd92a95
book3s_pr_papr.c 7.62 KB