qcacmn: Initialize __log_window_end_ticks variable explicitly

The __log_window_end_ticks variable is implicitly initialized as
zero, which may lead to the disfunction of qdf_system_time_after
when assert_on_excessive_logging is first called with big number
jiffies. Then __log_window_count number increase until hit the
threshold, and trigger the panic.

Now initialize __log_window_end_ticks variable explicitly when
__log_window_count is initial zero in the first call of
assert_on_excessive_logging.

Change-Id: Ic5256af9235bf195b4ae5ee79bfce9ea213ea29b
CRs-Fixed: 2525529
This commit is contained in:
Li Feng
2019-09-17 10:42:37 +08:00
parent 7eb35947eb
commit 510e4e2de7

View File

@@ -313,7 +313,9 @@ static void assert_on_excessive_logging(void)
* Note: This is not thread safe, and can result in more than one reset.
* For our purposes, this is fine.
*/
if (qdf_system_time_after(now, __log_window_end_ticks)) {
if (!qdf_atomic_read(&__log_window_count)) {
__log_window_end_ticks = now + qdf_system_ticks_per_sec;
} else if (qdf_system_time_after(now, __log_window_end_ticks)) {
__log_window_end_ticks = now + qdf_system_ticks_per_sec;
qdf_atomic_set(&__log_window_count, 0);
}