[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 3/3] hvm/pirq: allow control domains usage of PHYSDEVOP_{un,}map_pirq
I wasn't sure of the distinction between hardware domain and control domain for these commands, but they appear to be blocked at the moment when dom0 executes them, including a lot at boot. Are you suggesting to use is_hardware_domain(currd) instead in my diff? Or should the hardware domain always be able to execute any physdev op command? (such as to bypass the switch statement entirely) It looks like hvm_physdev_op() is the only real caller of do_physdev_op(), and several other commands (besides the ones in the diff below) are also being blocked by the default case of hvm_physdev_op. PHYSDEVOP_pirq_eoi_gmfn_v2 PHYSDEVOP_pirq_eoi_gmfn_v1 PHYSDEVOP_IRQ_UNMASK_NOTIFY // legacy? PHYSDEVOP_apic_read PHYSDEVOP_apic_write PHYSDEVOP_alloc_irq_vector PHYSDEVOP_set_iopl PHYSDEVOP_set_iobitmap PHYSDEVOP_restore_msi PHYSDEVOP_restore_msi_ext PHYSDEVOP_setup_gsi PHYSDEVOP_get_free_pirq PHYSDEVOP_dbgp_op Thanks -Alex On Thu, 2022-03-03 at 17:47 +0100, Jan Beulich wrote: > On 03.03.2022 17:45, Alex Olson wrote: > > --- a/xen/arch/x86/hvm/hypercall.c > > +++ b/xen/arch/x86/hvm/hypercall.c > > @@ -84,6 +84,17 @@ static long hvm_physdev_op(int cmd, > > XEN_GUEST_HANDLE_PARAM(void) arg) > > > > switch ( cmd ) > > { > > + > > + case PHYSDEVOP_manage_pci_add: > > + case PHYSDEVOP_manage_pci_remove: > > + case PHYSDEVOP_pci_device_add: > > + case PHYSDEVOP_pci_device_remove: > > + case PHYSDEVOP_manage_pci_add_ext: > > + case PHYSDEVOP_prepare_msix: > > + case PHYSDEVOP_release_msix: > > + if ( is_control_domain(currd) ) > > + break; > > These are all operations which I think are purposefully permitted to > be invoked by the hardware domain only. That's where all the devices > live when they're not passed through to guests. > > Jan >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |