summaryrefslogtreecommitdiffstats
path: root/bsps/arm/shared/clock/clock-generic-timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/shared/clock/clock-generic-timer.c')
-rw-r--r--bsps/arm/shared/clock/clock-generic-timer.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/bsps/arm/shared/clock/clock-generic-timer.c b/bsps/arm/shared/clock/clock-generic-timer.c
index 2d17ada0b7..e851e02104 100644
--- a/bsps/arm/shared/clock/clock-generic-timer.c
+++ b/bsps/arm/shared/clock/clock-generic-timer.c
@@ -122,21 +122,20 @@ static void arm_gt_clock_gt_init(uint64_t cval)
#if defined(RTEMS_SMP) && !defined(CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR)
static void arm_gt_clock_secondary_action(void *arg)
{
- uint64_t *cval;
+ if (!_Per_CPU_Is_boot_processor(_Per_CPU_Get())) {
+ uint64_t *cval;
- cval = arg;
- arm_gt_clock_gt_init(*cval);
- bsp_interrupt_vector_enable(arm_gt_clock_instance.irq);
+ cval = arg;
+ arm_gt_clock_gt_init(*cval);
+ bsp_interrupt_vector_enable(arm_gt_clock_instance.irq);
+ }
}
#endif
static void arm_gt_clock_secondary_initialization(uint64_t cval)
{
#if defined(RTEMS_SMP) && !defined(CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR)
- _SMP_Before_multitasking_action_broadcast(
- arm_gt_clock_secondary_action,
- &cval
- );
+ _SMP_Multicast_action(NULL, arm_gt_clock_secondary_action, &cval);
#endif
}