From 8a925e7151bded495a9603a93cdcea16cd3eb1c4 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 17 Jul 2015 15:06:21 +0100 Subject: [PATCH] xen/tools: Widen the machine_irq in xc_domain_*bind_pt_irq_int The DOMCTLs {,un}bind_pt_irq are using uint32_t for the machine_irq while the helper is using uint8_t. Currently on ARM, we are supporting SPIs whose irq number can go up to 1019 which doesn't fit in an uint8_t. The helpers xc_domain_bind_pt_spi and xc_domain_unbint_pt_spi are correctly taking an uint16_t so the libxc was truncating without noticing the user which may end up to route the wrong IRQ. Fix the problem by widening the machine_irq parameter in xc_domain_*bind_pt_irq_int. Note that XEN_DOMCTL_irq_permission has the same problem but it's not used at the moment on ARM. So we can defer the changes after the release of Xen 4.7. Reported-by: Iurii Konovalenko Signed-off-by: Julien Grall Acked-by: Ian Campbell --- tools/libxc/xc_domain.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index 77d852b5e2..582b0ae40d 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -1923,7 +1923,7 @@ int xc_domain_unbind_msi_irq( static int xc_domain_bind_pt_irq_int( xc_interface *xch, uint32_t domid, - uint8_t machine_irq, + uint32_t machine_irq, uint8_t irq_type, uint8_t bus, uint8_t device, @@ -1982,7 +1982,7 @@ int xc_domain_bind_pt_irq( static int xc_domain_unbind_pt_irq_int( xc_interface *xch, uint32_t domid, - uint8_t machine_irq, + uint32_t machine_irq, uint8_t irq_type, uint8_t bus, uint8_t device, -- 2.39.5