On Mon, Jan 05, 2015 at 04:34:36PM +0000, Ian Jackson wrote: > From: Ian Jackson <i...@mariner.uk.xensource.com> > > do_pci_remove contained this: > > if (type == LIBXL_DOMAIN_TYPE_HVM) { > [stuff] > } else if (type != LIBXL_DOMAIN_TYPE_PV) > abort(); > { > > This is bizarre, and not correct. The effect is that HVM guests end > up running both the proper code and that intended for PV guests. This > causes (amongst other things) trouble when PCI devices are > hot-unplugged from HVM guests. > > This bug was introduced in abfb006f "tools/libxl: explicitly grant > access to needed I/O-memory ranges". > > This is clear candidate for Xen 4.5, being a bugfix to an important > feature. > > Reported-by: Boris Ostrovsky <boris.ostrov...@oracle.com> > Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com> > Tested-by: Robert Hu <robert...@intel.com> > CC: Konrad Wilk <konrad.w...@oracle.com>
RElease-Acked-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com> > CC: Sander Eikelenboom <li...@eikelenboom.it> > CC: George Dunlap <george.dun...@eu.citrix.com> > --- > tools/libxl/libxl_pci.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c > index 316643c..9ae37fa 100644 > --- a/tools/libxl/libxl_pci.c > +++ b/tools/libxl/libxl_pci.c > @@ -1247,9 +1247,9 @@ static int do_pci_remove(libxl__gc *gc, uint32_t domid, > rc = ERROR_FAIL; > goto out_fail; > } > - } else if (type != LIBXL_DOMAIN_TYPE_PV) > - abort(); > - { > + } else { > + assert(type == LIBXL_DOMAIN_TYPE_PV); > + > char *sysfs_path = libxl__sprintf(gc, > SYSFS_PCI_DEV"/"PCI_BDF"/resource", pcidev->domain, > pcidev->bus, pcidev->dev, > pcidev->func); > FILE *f = fopen(sysfs_path, "r"); > -- > 1.7.10.4 > _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel