From: Julien Grall Date: Fri, 17 Jul 2015 14:06:21 +0000 (+0100) Subject: xen/tools: Widen the machine_irq in xc_domain_*bind_pt_irq_int X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~2698 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8a925e7151bded495a9603a93cdcea16cd3eb1c4;p=xen.git 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 --- 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,