On 2024/1/8 16:50, Jan Beulich wrote:
> On 06.01.2024 01:54, Stefano Stabellini wrote:
>> On Fri, 5 Jan 2024, Jiqian Chen wrote:
>>> On PVH dom0, the gsis don't get registered, but
>>> the gsi of a passthrough device must be configured for it to
>>> be able to be mapped into a hvm domU.
>>> On Linux kernel side, it calles PHYSDEVOP_setup_gsi for
>>> passthrough devices to register gsi when dom0 is PVH.
>>> So, add PHYSDEVOP_setup_gsi for above purpose.
>>>
>>> Co-developed-by: Huang Rui <[email protected]>
>>> Signed-off-by: Jiqian Chen <[email protected]>
>>> ---
>>>  xen/arch/x86/hvm/hypercall.c | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
>>> index 632a68be3cc4..e27d3ca15185 100644
>>> --- a/xen/arch/x86/hvm/hypercall.c
>>> +++ b/xen/arch/x86/hvm/hypercall.c
>>> @@ -97,6 +97,12 @@ long hvm_physdev_op(int cmd, 
>>> XEN_GUEST_HANDLE_PARAM(void) arg)
>>>          break;
>>>      }
>>>  
>>> +    case PHYSDEVOP_setup_gsi:
>>> +        if ( is_hardware_domain(currd) && !has_pirq(currd) )
>>> +            break;
>>> +        else
>>> +            return -ENOSYS;
>>
>> I am not sure what is the best "if" check for this situation but I am
>> guessing we don't need has_pirq(currd). Maybe this is sufficient:
>>
>> if ( is_hardware_domain(currd) )
>>     break;
>> else
>>     return -ENOSYS;
> 
> Maybe
> 
>     if ( !is_hardware_domain(currd) )
>         return -EOPNOTSUPP;
>     ASSERT(!has_pirq(currd));
>     break;
> 
> ? What I primarily dislike in both earlier proposals is the (imo
> confusing) use of "else".
It looks like more reasonable. I will change to as this in next version if 
there are no other guys have different opinions.

> 
> Jan

-- 
Best regards,
Jiqian Chen.

Reply via email to