forked from Imagelibrary/rtems
bsps/irq: Fix interrupt server init (SMP)
This commit is contained in:
@@ -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
|
* embedded brains GmbH
|
||||||
* Dornierstr. 4
|
* Dornierstr. 4
|
||||||
@@ -550,15 +550,18 @@ rtems_status_code rtems_interrupt_server_initialize(
|
|||||||
|
|
||||||
#if defined(RTEMS_SMP)
|
#if defined(RTEMS_SMP)
|
||||||
sc = rtems_scheduler_ident_by_processor(cpu_index, &scheduler);
|
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);
|
sc = rtems_task_set_scheduler(s->server, scheduler, priority);
|
||||||
_Assert(sc == RTEMS_SUCCESSFUL);
|
_Assert(sc == RTEMS_SUCCESSFUL);
|
||||||
|
|
||||||
|
/* Set the task to processor affinity on a best-effort basis */
|
||||||
CPU_ZERO(&cpu);
|
CPU_ZERO(&cpu);
|
||||||
CPU_SET(cpu_index, &cpu);
|
CPU_SET(cpu_index, &cpu);
|
||||||
sc = rtems_task_set_affinity(s->server, sizeof(cpu), &cpu);
|
(void) rtems_task_set_affinity(s->server, sizeof(cpu), &cpu);
|
||||||
_Assert(sc == RTEMS_SUCCESSFUL);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sc = rtems_task_start(
|
sc = rtems_task_start(
|
||||||
|
|||||||
Reference in New Issue
Block a user