• Sukadev Bhattiprolu's avatar
    KVM: PPC: Book3S HV: Implement H_SVM_INIT_ABORT hcall · 3a43970d
    Sukadev Bhattiprolu authored
    Implement the H_SVM_INIT_ABORT hcall which the Ultravisor can use to
    abort an SVM after it has issued the H_SVM_INIT_START and before the
    H_SVM_INIT_DONE hcalls. This hcall could be used when Ultravisor
    encounters security violations or other errors when starting an SVM.
    
    Note that this hcall is different from UV_SVM_TERMINATE ucall which
    is used by HV to terminate/cleanup an VM that has becore secure.
    
    The H_SVM_INIT_ABORT basically undoes operations that were done
    since the H_SVM_INIT_START hcall - i.e page-out all the VM pages back
    to normal memory, and terminate the SVM.
    
    (If we do not bring the pages back to normal memory, the text/data
    of the VM would be stuck in secure memory and since the SVM did not
    go secure, its MSR_S bit will be clear and the VM wont be able to
    access its pages even to do a clean exit).
    
    Based on patches and discussion with Paul Mackerras, Ram Pai and
    Bharata Rao.
    Signed-off-by: default avatarRam Pai <linuxram@linux.ibm.com>
    Signed-off-by: default avatarSukadev Bhattiprolu <sukadev@linux.ibm.com>
    Signed-off-by: default avatarBharata B Rao <bharata@linux.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    3a43970d
book3s_hv.c 148 KB