diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-06 08:39:01 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-26 07:54:25 +0200 |
commit | 1b3b5b8428fbfee9253a978c9d63ef47663e23bb (patch) | |
tree | 352c2cfe404461dfd984f699658c96601bf9c9cf /bsps/shared/irq | |
parent | bsps/irq: Move get/set affinity to separate file (diff) | |
download | rtems-1b3b5b8428fbfee9253a978c9d63ef47663e23bb.tar.bz2 |
bsps/irq: Canonicalize get/set affinity errors
Bring the error conditions and status in line with
rtems_task_get_affinity() and rtems_task_set_affinity().
Update #3269.
Diffstat (limited to 'bsps/shared/irq')
-rw-r--r-- | bsps/shared/irq/irq-affinity.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bsps/shared/irq/irq-affinity.c b/bsps/shared/irq/irq-affinity.c index f750d6b174..d2214cf6ec 100644 --- a/bsps/shared/irq/irq-affinity.c +++ b/bsps/shared/irq/irq-affinity.c @@ -47,13 +47,17 @@ rtems_status_code rtems_interrupt_set_affinity( Processor_mask set; Processor_mask_Copy_status status; + if ( affinity == NULL ) { + return RTEMS_INVALID_ADDRESS; + } + if (!bsp_interrupt_is_valid_vector(vector)) { return RTEMS_INVALID_ID; } status = _Processor_mask_From_cpu_set_t(&set, affinity_size, affinity); - if (status != PROCESSOR_MASK_COPY_LOSSLESS) { - return RTEMS_INVALID_SIZE; + if ( !_Processor_mask_Is_at_most_partial_loss( status ) ) { + return RTEMS_INVALID_NUMBER; } #if defined(RTEMS_SMP) @@ -71,6 +75,10 @@ rtems_status_code rtems_interrupt_get_affinity( Processor_mask set; Processor_mask_Copy_status status; + if ( affinity == NULL ) { + return RTEMS_INVALID_ADDRESS; + } + if (!bsp_interrupt_is_valid_vector(vector)) { return RTEMS_INVALID_ID; } |