On 05/02/2019 08:29, Norbert Manthey wrote:
> A pointer mismatch has been reported when compiling with the
> compiler goto-gcc of the bounded model checker CBMC.
>
> Fixes: 9a779e4f (Implement SVM specific part for Nested Virtualization)
>
> Signed-off-by: Norbert Manthey <[email protected]>
>
> ---
>  xen/arch/x86/hvm/svm/svm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -1794,7 +1794,7 @@ static void svm_do_nested_pgfault(struct vcpu *v,
>              uint64_t gpa;
>              uint64_t mfn;
>              uint32_t qualification;
> -            uint32_t p2mt;
> +            p2m_type_t p2mt;

You can't change this type, for the same reason that the compiler
complained.  enum has an implementation defined width which may not be
4, and this would break the trace record.

The best course of action is to pass the existing &p2mt into the lookup,
and assign back to _d.p2mt alongside the mfn.  A decent optimising
compiler will be able to simplify this when enum* and uint32_t* are
considered to be compatible.

~Andrew

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to