From a8d3efe4b0f97e58c5468022c740bb407ee67c3f Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 4 Oct 2024 03:48:18 +0200 Subject: [PATCH] dev/irq: Simplify GICv2 set/get affinity --- bsps/shared/dev/irq/arm-gicv2.c | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/bsps/shared/dev/irq/arm-gicv2.c b/bsps/shared/dev/irq/arm-gicv2.c index a93c6b323a..e1d22907b3 100644 --- a/bsps/shared/dev/irq/arm-gicv2.c +++ b/bsps/shared/dev/irq/arm-gicv2.c @@ -39,6 +39,7 @@ #include #include +#include #include /* @@ -133,7 +134,7 @@ rtems_status_code bsp_interrupt_raise_on( uint32_t cpu_index ) { - if (vector >= 16) { + if (vector > ARM_GIC_IRQ_SGI_LAST) { return RTEMS_UNSATISFIED; } @@ -356,18 +357,11 @@ rtems_status_code bsp_interrupt_set_affinity( rtems_interrupt_attributes attr; rtems_status_code sc; - memset( &attr, 0, sizeof( attr ) ); + attr.can_set_affinity = false; sc = bsp_interrupt_get_attributes( vector, &attr ); + _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL ); - if ( sc ) { - return sc; - } - - if ( vector <= ARM_GIC_IRQ_PPI_LAST ) { - return RTEMS_UNSATISFIED; - } - - if ( attr.can_set_affinity == 0 ) { + if ( !attr.can_set_affinity ) { return RTEMS_UNSATISFIED; } @@ -385,20 +379,13 @@ rtems_status_code bsp_interrupt_get_affinity( rtems_interrupt_attributes attr; rtems_status_code sc; - memset( &attr, 0, sizeof( attr ) ); + attr.can_get_affinity = false; sc = bsp_interrupt_get_attributes( vector, &attr ); - - if ( sc ) { - return sc; - } - - if ( vector <= ARM_GIC_IRQ_PPI_LAST ) { - return RTEMS_UNSATISFIED; - } + _Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL ); targets = gic_id_get_targets(dist, vector); - if ( attr.can_get_affinity == 0 ) { + if ( !attr.can_get_affinity ) { return RTEMS_UNSATISFIED; }