From dab1fe97e1899eb3aba08d02786ec75b7fa68384 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=81ukasz=20Stelmach?= Date: Wed, 15 Sep 2021 14:54:18 +0200 Subject: [PATCH] logger: flush data from stdio writers under mutex MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Operations during flushing logs delivered via stdio need to be performed with the mutex held. Change-Id: I4655b0af75172f8f22b797c0caadd28cb4619cf0 Suggested-by: Mateusz Majewski Signed-off-by: Łukasz Stelmach --- kernel/logger.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/logger.c b/kernel/logger.c index 48dbf4a..202703c 100644 --- a/kernel/logger.c +++ b/kernel/logger.c @@ -806,10 +806,14 @@ static int logger_release(struct inode *ignored, struct file *file) kfree(reader); } else { struct logger_writer *writer = file->private_data; - + struct logger_log *log = writer->log; bool from_stdio = writer->tag && writer->prio >= 2; - if (from_stdio && writer->b_off > 0) + + if (from_stdio && writer->b_off > 0){ + mutex_lock(&log->mutex); flush_thread_data(file); + mutex_unlock(&log->mutex); + } kfree(writer->tag); kfree(writer->buffer); -- 2.34.1