[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] ioemu: unmap INTx interrupt on hot-remove
On Fri, Mar 13, 2009 at 01:59:24PM +0900, Yuji Shimada wrote: > This patch unmaps INTx interrupt on hot-remove. > > Please apply this patch after applying the following patch. > > [Xen-devel] [PATCH] ioemu: msi/msix clean up on hotplug remove > > Thanks, > -- > Yuji Shimada > > > Signed-off-by: Yuji Shimada <shimada-yxb@xxxxxxxxxxxxxxx> > > diff --git a/hw/pass-through.c b/hw/pass-through.c > index ee52960..4e7f447 100644 > --- a/hw/pass-through.c > +++ b/hw/pass-through.c > @@ -46,6 +46,8 @@ struct dpci_infos { > > } dpci_infos; > > +char mapped_machine_irq[PT_NR_IRQS] = {0}; This only initialises the first element of mapped_machine_irq[] to 0. > + > /* prototype */ > static uint32_t pt_common_reg_init(struct pt_dev *ptdev, > struct pt_reg_info_tbl *reg, uint32_t real_offset); > @@ -3657,6 +3659,7 @@ struct pt_dev * register_real_device(PCIBus *e_bus, > { > machine_irq = pirq; > assigned_device->machine_irq = pirq; > + mapped_machine_irq[machine_irq]++; > } > } > > @@ -3737,6 +3740,19 @@ int unregister_real_device(int php_slot) > if (assigned_device->msix) > pt_msix_disable(assigned_device); > > + if (machine_irq) > + { > + mapped_machine_irq[machine_irq]--; > + > + if (mapped_machine_irq[machine_irq] == 0) > + { > + rc = xc_physdev_unmap_pirq(xc_handle, domid, machine_irq); > + > + if (rc < 0) > + PT_LOG("Error: Unmaping of interrupt failed! rc=%d\n", rc); > + } > + } > + > /* delete all emulated config registers */ > pt_config_delete(assigned_device); > > diff --git a/hw/pass-through.h b/hw/pass-through.h > index e86d311..6679fc2 100644 > --- a/hw/pass-through.h > +++ b/hw/pass-through.h > @@ -40,6 +40,7 @@ > > #define PT_MACHINE_IRQ_AUTO (0xFFFFFFFF) > #define PT_VIRT_DEVFN_AUTO (-1) > +#define PT_NR_IRQS (256) > > /* Misc PCI constants that should be moved to a separate library :) */ > #define PCI_CONFIG_SIZE (256) > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel -- Simon Horman VA Linux Systems Japan K.K., Sydney, Australia Satellite Office H: www.vergenet.net/~horms/ W: www.valinux.co.jp/en _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |