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

Re: [Xen-devel] [PATCH 09/28] ARM: GICv3 ITS: map device and LPIs to the ITS on physdev_op hypercall



Hi Andre,
>
>From: Xen-devel <xen-devel-bounces@xxxxxxxxxxxxx> on behalf of Andre Przywara 
><andre.przywara@xxxxxxx>
>Sent: Tuesday, January 31, 2017 12:01 AM
>To: Stefano Stabellini; Julien Grall
>Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Vijay Kilari
>Subject: [Xen-devel] [PATCH 09/28] ARM: GICv3 ITS: map device and LPIs to the 
>ITS on physdev_op hypercall
>    
[snip]
> 
> 
> int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
> {
>+    struct physdev_manage_pci manage;
>+    u32 devid;
>+    int ret;
>+
>+    switch (cmd)
>+    {

You might alos need to  PHYSDEVOP_pci_device_add hypercall also. 

>+        case PHYSDEVOP_manage_pci_add:
>+        case PHYSDEVOP_manage_pci_remove:
>+            if ( copy_from_guest(&manage, arg, 1) != 0 )
>+                return -EFAULT;
>+
>+            devid = manage.bus << 8 | manage.devfn;
>+            /* Allocate an ITS device table with space for 32 MSIs */
>+            ret = gicv3_its_map_guest_device(hardware_domain, devid, devid, 5,
>+                                             cmd == PHYSDEVOP_manage_pci_add);

Based on 4.9 kernel, is the deivce ID plain sBDF or it is returnedfrom 
of_msi_map_rid /  iort_msi_map_rid ?
I believe there needs to be set this as requirement on the calle of hypercall. 
As sbdf and deviceID returned from msi_map calls might not be same.

>+
>+            return ret;
>+    }
>+
>     gdprintk(XENLOG_DEBUG, "PHYSDEVOP cmd=%d: not implemented\n", cmd);
>     return -ENOSYS;
> }
>-- 
>2.9.0
>

-Manish


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.