|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.5] call xc_domain_irq_permission before xc_domain_irq_permission
On Mon, 1 Dec 2014, Stefano Stabellini wrote:
> xc_physdev_unmap_pirq might revoke the permission to map the irq from
> the domain causing the following xc_domain_irq_permission call to fail
> and return error (domain_pirq_to_irq returns 0).
>
> Call xc_domain_irq_permission first to prevent this from happening
> (xc_physdev_unmap_pirq calls irq_deny_access, that doesn't fail if the
> permission is already removed).
>
> This is a simple bug fix and I think should go in 4.5.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
This patch didn't actually make it into 4.5, but I think it should have.
We could at least apply to master now.
> diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
> index 316643c..904d255 100644
> --- a/tools/libxl/libxl_pci.c
> +++ b/tools/libxl/libxl_pci.c
> @@ -1288,14 +1290,14 @@ skip1:
> goto out;
> }
> if ((fscanf(f, "%u", &irq) == 1) && irq) {
> - rc = xc_physdev_unmap_pirq(ctx->xch, domid, irq);
> - if (rc < 0) {
> - LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
> "xc_physdev_unmap_pirq irq=%d", irq);
> - }
> rc = xc_domain_irq_permission(ctx->xch, domid, irq, 0);
> if (rc < 0) {
> LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
> "xc_domain_irq_permission irq=%d", irq);
> }
> + rc = xc_physdev_unmap_pirq(ctx->xch, domid, irq);
> + if (rc < 0) {
> + LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
> "xc_physdev_unmap_pirq irq=%d", irq);
> + }
> }
> fclose(f);
> }
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |