[rtems commit] bsps/pc386: Fix Clock_isr for SMP

Chris Johns chrisj at rtems.org
Wed Jun 17 01:55:03 UTC 2020


Module:    rtems
Branch:    master
Commit:    c954003fa05d462aedd6cae1c36395d3fba25d60
Changeset: http://git.rtems.org/rtems/commit/?id=c954003fa05d462aedd6cae1c36395d3fba25d60

Author:    Jan Sommer <jan.sommer at dlr.de>
Date:      Sun May 31 16:22:56 2020 +0200

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

---

 bsps/i386/pc386/clock/ckinit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bsps/i386/pc386/clock/ckinit.c b/bsps/i386/pc386/clock/ckinit.c
index 2222d6e..09afe73 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
 



More information about the vc mailing list