[rtems commit] bsps/irq: Fix interrupt server init (SMP)
Sebastian Huber
sebh at rtems.org
Thu Feb 7 10:14:12 UTC 2019
Module: rtems
Branch: master
Commit: 4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0
Changeset: http://git.rtems.org/rtems/commit/?id=4e686261d88a2aa1a01b3237e15ba0ac7ccadcf0
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Thu Feb 7 11:13:01 2019 +0100
bsps/irq: Fix interrupt server init (SMP)
---
bsps/shared/irq/irq-server.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/bsps/shared/irq/irq-server.c b/bsps/shared/irq/irq-server.c
index f94f0dc..7a2bc55 100644
--- a/bsps/shared/irq/irq-server.c
+++ b/bsps/shared/irq/irq-server.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2009, 2017 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2009, 2019 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -550,15 +550,18 @@ rtems_status_code rtems_interrupt_server_initialize(
#if defined(RTEMS_SMP)
sc = rtems_scheduler_ident_by_processor(cpu_index, &scheduler);
- _Assert(sc == RTEMS_SUCCESSFUL);
+ if (sc != RTEMS_SUCCESSFUL) {
+ /* Do not start an interrupt server on a processor without a scheduler */
+ continue;
+ }
sc = rtems_task_set_scheduler(s->server, scheduler, priority);
_Assert(sc == RTEMS_SUCCESSFUL);
+ /* Set the task to processor affinity on a best-effort basis */
CPU_ZERO(&cpu);
CPU_SET(cpu_index, &cpu);
- sc = rtems_task_set_affinity(s->server, sizeof(cpu), &cpu);
- _Assert(sc == RTEMS_SUCCESSFUL);
+ (void) rtems_task_set_affinity(s->server, sizeof(cpu), &cpu);
#endif
sc = rtems_task_start(
More information about the vc
mailing list