diff options
author | Jan Sommer <jan.sommer@dlr.de> | 2020-05-31 16:22:56 +0200 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2020-06-11 13:29:18 +1000 |
commit | c954003fa05d462aedd6cae1c36395d3fba25d60 (patch) | |
tree | 03cc3234e8b720597ee170bba53c76312abeea63 | |
parent | bsp/pc386: Define interrupt stack frame for smp (diff) | |
download | rtems-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.c | 2 |
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 |