qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v10 49/59] i386/xen: handle HVMOP_get_param


From: David Woodhouse
Subject: Re: [PATCH v10 49/59] i386/xen: handle HVMOP_get_param
Date: Tue, 14 Feb 2023 16:50:08 +0100
User-agent: K-9 Mail for Android


On 14 February 2023 16:47:13 CET, Paul Durrant <xadimgnik@gmail.com> wrote:
>On 01/02/2023 14:31, David Woodhouse wrote:
>> From: Joao Martins <joao.m.martins@oracle.com>
>> 
>> Which is used to fetch xenstore PFN and port to be used
>> by the guest. This is preallocated by the toolstack when
>> guest will just read those and use it straight away.
>> 
>> Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
>> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
>> ---
>>   target/i386/kvm/xen-emu.c | 39 +++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 39 insertions(+)
>> 
>> diff --git a/target/i386/kvm/xen-emu.c b/target/i386/kvm/xen-emu.c
>> index 75e62bc02f..3d6ea7ca98 100644
>> --- a/target/i386/kvm/xen-emu.c
>> +++ b/target/i386/kvm/xen-emu.c
>> @@ -762,6 +762,42 @@ out:
>>       return true;
>>   }
>>   +static bool handle_get_param(struct kvm_xen_exit *exit, X86CPU *cpu,
>> +                             uint64_t arg)
>> +{
>> +    CPUState *cs = CPU(cpu);
>> +    struct xen_hvm_param hp;
>> +    int err = 0;
>> +
>> +    /* No need for 32/64 compat handling */
>> +    qemu_build_assert(sizeof(hp) == 16);
>> +
>> +    if (kvm_copy_from_gva(cs, arg, &hp, sizeof(hp))) {
>> +        err = -EFAULT;
>> +        goto out;
>> +    }
>> +
>> +    if (hp.domid != DOMID_SELF && hp.domid != xen_domid) {
>> +        err = -ESRCH;
>> +        goto out;
>> +    }
>> +
>> +    switch (hp.index) {
>> +    case HVM_PARAM_STORE_PFN:
>> +        hp.value = XEN_SPECIAL_PFN(XENSTORE);
>
>Reviewed-by: Paul Durrant <paul@xen.org>
>
>... but this reminds me... I don't think you have code to seed the grant table 
>in any of the patches. It is guest ABI that the XenStore PFN is in entry 1 of 
>the grant table.

It's in there somewhere, perhaps in "phase 2" where we actually add a real 
XenStore rather than this sequence of 59 (and counting).

I even made XenStore map the grant (not that it actually *uses* the address it 
gets back).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]