summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Sommer <jan.sommer@dlr.de>2020-05-31 16:22:56 +0200
committerChris Johns <chrisj@rtems.org>2020-06-11 13:29:18 +1000
commitc954003fa05d462aedd6cae1c36395d3fba25d60 (patch)
tree03cc3234e8b720597ee170bba53c76312abeea63
parentbsp/pc386: Define interrupt stack frame for smp (diff)
downloadrtems-c954003fa05d462aedd6cae1c36395d3fba25d60.tar.bz2
bsps/pc386: Fix Clock_isr for SMP
- Do not forward Clock_isr through Clock_driver_support_at_tick as this will cause every processor to send IPIs with Clock_isr therby creating an infinie loop - Instead the processor handling the clock interrupt causes all other processors to call rtems_timecounter_tick to update their tick count
-rw-r--r--bsps/i386/pc386/clock/ckinit.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bsps/i386/pc386/clock/ckinit.c b/bsps/i386/pc386/clock/ckinit.c
index 2222d6e4b4..09afe73cde 100644
--- a/bsps/i386/pc386/clock/ckinit.c
+++ b/bsps/i386/pc386/clock/ckinit.c
@@ -73,7 +73,7 @@ extern volatile uint32_t Clock_driver_ticks;
Processor_mask targets; \
_Processor_mask_Assign(&targets, _SMP_Get_online_processors()); \
_Processor_mask_Clear(&targets, _SMP_Get_current_processor()); \
- _SMP_Multicast_action(&targets, Clock_isr, NULL); \
+ _SMP_Multicast_action(&targets, rtems_timecounter_tick, NULL); \
} while (0)
#endif