From f469496323f36dd737f35e260cffb1c0e8c46a40 Mon Sep 17 00:00:00 2001 From: shenchenkai Date: Fri, 22 Oct 2021 16:35:22 +0800 Subject: [PATCH] Description:[fix] clean hilog/hievent ring buffer after memory verification failed Change-Id: Ia6d1d3ee95bea7519dd09307e4e26ba8b4c63553 Signed-off-by: shenchenkai --- drivers/staging/hievent/hievent_driver.c | 7 +++++++ drivers/staging/hilog/hilog.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/drivers/staging/hievent/hievent_driver.c b/drivers/staging/hievent/hievent_driver.c index f6b378766abc..8d0d015efc7b 100644 --- a/drivers/staging/hievent/hievent_driver.c +++ b/drivers/staging/hievent/hievent_driver.c @@ -178,6 +178,13 @@ static ssize_t hievent_read(struct file *file, char __user *user_buf, retval = header.len + sizeof(header); out: + if (retval == -ENOMEM) { + // clean ring buffer + hievent_dev.write_offset = 0; + hievent_dev.head_offset = 0; + hievent_dev.size = 0; + hievent_dev.count = 0; + } (void)mutex_unlock(&hievent_dev.mtx); return retval; diff --git a/drivers/staging/hilog/hilog.c b/drivers/staging/hilog/hilog.c index dae5ab074cc8..56030e5456e2 100644 --- a/drivers/staging/hilog/hilog.c +++ b/drivers/staging/hilog/hilog.c @@ -187,6 +187,13 @@ static ssize_t hilog_read(struct file *file, hilog_buffer_dec(header.len); retval = header.len + sizeof(header); out: + if (retval == -ENOMEM) { + // clean ring buffer + hilog_dev.wr_off = 0; + hilog_dev.hdr_off = 0; + hilog_dev.size = 0; + hilog_dev.count = 0; + } (void)mutex_unlock(&hilog_dev.mtx); return retval; -- Gitee