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

Re: [Xen-devel] [PATCH for-4.5] libxl: Fix if{} nesting in do_pci_remove



On Mon, Jan 05, 2015 at 04:34:36PM +0000, Ian Jackson wrote:
> From: Ian Jackson <iwj@xxxxxxxxxxxxxxxxxxxxxxxx>
> 
> 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.ostrovsky@xxxxxxxxxx>
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Tested-by: Robert Hu <robert.hu@xxxxxxxxx>
> CC: Konrad Wilk <konrad.wilk@xxxxxxxxxx>

RElease-Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>

> CC: Sander Eikelenboom <linux@xxxxxxxxxxxxxx>
> CC: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
> ---
>  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@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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