From 233d5112a06c941be1545dad4cb4cc71b6831174 Mon Sep 17 00:00:00 2001 From: Boojin Kim Date: Tue, 12 Feb 2019 16:38:06 +0900 Subject: [PATCH] [ERD][APR-103] [COMMON]chub: fix kernel panic by runtime error Change-Id: Iec832588624a88bebbfb2231c3f2988c6ebe0dd9 Signed-off-by: Boojin Kim --- drivers/staging/nanohub/chub_ipc.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/staging/nanohub/chub_ipc.c b/drivers/staging/nanohub/chub_ipc.c index 1b09bcc05381..f51481d01a0b 100644 --- a/drivers/staging/nanohub/chub_ipc.c +++ b/drivers/staging/nanohub/chub_ipc.c @@ -963,6 +963,7 @@ void ipc_logbuf_outprint(struct runtimelog_buf *rt_buf, u32 loop) struct ipc_logbuf *logbuf = &ipc_map->logbuf; u32 eq; u32 len; + u32 lenout; retry: eq = logbuf->eq; @@ -987,13 +988,15 @@ retry: CSP_PRINTF_INFO("%s: FW-ERR: %s", NAME_PREFIX, (char *)log); if (rt_buf) { - if (rt_buf->write_index + len + LOGFILE_NUM_SIZE > rt_buf->buffer_size) + if (rt_buf->write_index + len + LOGFILE_NUM_SIZE >= rt_buf->buffer_size) rt_buf->write_index = 0; - len = sprintf(rt_buf->buffer + rt_buf->write_index, "%10d:%s", log->size, log); - rt_buf->write_index += len; + lenout = snprintf(rt_buf->buffer + rt_buf->write_index, LOGFILE_NUM_SIZE + len, "%10d:%s\n", log->size, log); + rt_buf->write_index += lenout; + if (lenout != (LOGFILE_NUM_SIZE + len)) + pr_info("%s: %s: size-n missmatch: %d -> %d\n", NAME_PREFIX, __func__, LOGFILE_NUM_SIZE + len, lenout); } } else { - pr_err("%s: size err:%d, eq:%d, dq:%d\n", __func__, len, eq, logbuf->dq); + pr_err("%s: %s: size err:%d, eq:%d, dq:%d\n", NAME_PREFIX, __func__, len, eq, logbuf->dq); } logbuf->dq = (logbuf->dq + 1) % LOGBUF_NUM; } -- 2.20.1