From 603c168a0ba828efc949b398d3623ebc9a0aafa3 Mon Sep 17 00:00:00 2001 From: Zhaoyue Wang Date: Fri, 29 Nov 2024 06:34:43 +0000 Subject: [PATCH] cpukit/libmisc: fix flag in capture.c The RTEMS_CAPTURE_OVERFLOW is an overflow flag for each CPU, and its value is the same as RTEMS_CAPTURE_INIT. Executing rtems_capture_flush will set the RTEMS_CAPTURE_INIT flag to 0 in the global flags. Fixes #5184. --- cpukit/libmisc/capture/capture.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cpukit/libmisc/capture/capture.c b/cpukit/libmisc/capture/capture.c index 2228d135b8..d8378bae08 100644 --- a/cpukit/libmisc/capture/capture.c +++ b/cpukit/libmisc/capture/capture.c @@ -801,9 +801,7 @@ rtems_capture_flush (bool prime) _Thread_Iterate (rtems_capture_flush_tcb, NULL); if (prime) - capture_flags_global &= ~(RTEMS_CAPTURE_TRIGGERED | RTEMS_CAPTURE_OVERFLOW); - else - capture_flags_global &= ~RTEMS_CAPTURE_OVERFLOW; + capture_flags_global &= ~RTEMS_CAPTURE_TRIGGERED; for (cpu=0; cpu < rtems_scheduler_get_processor_maximum(); cpu++) { RTEMS_INTERRUPT_LOCK_REFERENCE( lock, &(capture_lock_on_cpu( cpu )) ) @@ -811,6 +809,7 @@ rtems_capture_flush (bool prime) rtems_interrupt_lock_acquire (lock, &lock_context_per_cpu); capture_count_on_cpu(cpu) = 0; + capture_flags_on_cpu(cpu) &= ~RTEMS_CAPTURE_OVERFLOW; if (capture_records_on_cpu(cpu).buffer) rtems_capture_buffer_flush( &capture_records_on_cpu(cpu) ); rtems_interrupt_lock_release (lock, &lock_context_per_cpu);