[Xen-devel,3/3] xen/arm: domain_builder: irq sanity check logic fix

Message ID 20180227151555.1953-4-julien.grall@arm.com
State New
Headers show
Series
  • xen/arm: Rework the way to allocate event channel IRQ for hwdom
Related show

Commit Message

Julien Grall Feb. 27, 2018, 3:15 p.m.
From: Stewart Hildebrand <Stewart.Hildebrand@dornerworks.com>

Since commit "xen/arm: domain_build: Rework the way to allocate the
event channel interrupt", it is not possible for an irq to be both below 16
and greater/equal than 32.

Also fix the reference to linux documentation while we're at it.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
Signed-off-by: Julien Grall <julien.grall@arm.com>
[Slightly rework the commit message]
---
 xen/arch/arm/domain_build.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Stefano Stabellini March 2, 2018, 11:10 p.m. | #1
On Tue, 27 Feb 2018, julien.grall@arm.com wrote:
> From: Stewart Hildebrand <Stewart.Hildebrand@dornerworks.com>
> 
> Since commit "xen/arm: domain_build: Rework the way to allocate the
> event channel interrupt", it is not possible for an irq to be both below 16
> and greater/equal than 32.
> 
> Also fix the reference to linux documentation while we're at it.
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
> Signed-off-by: Julien Grall <julien.grall@arm.com>
> [Slightly rework the commit message]

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  xen/arch/arm/domain_build.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index ed1a393bb5..28ee876b92 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -503,9 +503,10 @@ static void set_interrupt_ppi(gic_interrupt_t interrupt, unsigned int irq,
>  {
>      __be32 *cells = interrupt;
>  
> -    BUG_ON(irq < 16 && irq >= 32);
> +    BUG_ON(irq < 16);
> +    BUG_ON(irq >= 32);
>  
> -    /* See linux Documentation/devictree/bindings/arm/gic.txt */
> +    /* See linux Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt */
>      dt_set_cell(&cells, 1, 1); /* is a PPI */
>      dt_set_cell(&cells, 1, irq - 16); /* PPIs start at 16 */
>      dt_set_cell(&cells, 1, (cpumask << 8) | level);
> -- 
> 2.11.0
>

Patch

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index ed1a393bb5..28ee876b92 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -503,9 +503,10 @@  static void set_interrupt_ppi(gic_interrupt_t interrupt, unsigned int irq,
 {
     __be32 *cells = interrupt;
 
-    BUG_ON(irq < 16 && irq >= 32);
+    BUG_ON(irq < 16);
+    BUG_ON(irq >= 32);
 
-    /* See linux Documentation/devictree/bindings/arm/gic.txt */
+    /* See linux Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt */
     dt_set_cell(&cells, 1, 1); /* is a PPI */
     dt_set_cell(&cells, 1, irq - 16); /* PPIs start at 16 */
     dt_set_cell(&cells, 1, (cpumask << 8) | level);