[PATCH v1 6/9] bsps/pc386: Fix Clock_isr for SMP

Jan Sommer jan.sommer at dlr.de
Sun May 31 14:22:56 UTC 2020


- 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 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
 
-- 
2.12.3



More information about the devel mailing list