summaryrefslogtreecommitdiff
path: root/bsps
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-06 08:39:01 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-09 15:29:43 +0200
commitef1e1ed8b3becc2b7d993f8a3eec98eee50a60b7 (patch)
treee681004c013f3890cfd6504ab22ae7925fd51ef0 /bsps
parent03ec60ade5f430fdd0be21bba256bfb0e0cbf390 (diff)
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')
-rw-r--r--bsps/shared/irq/irq-affinity.c12
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;
}