|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |