summaryrefslogtreecommitdiffstats
path: root/fs/pstore
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2016-10-19 10:23:41 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-12-17 21:55:12 +0100
commit7f0324fb34c4736bf12ae8a5137e6913772749cc (patch)
treedb63906729c6d3155ec5ecbd0b34c1f6c9e81363 /fs/pstore
parent466570dc30cf556a0f27c9d823341e249b2000a9 (diff)
downloadlinux-stable-7f0324fb34c4736bf12ae8a5137e6913772749cc.tar.gz
linux-stable-7f0324fb34c4736bf12ae8a5137e6913772749cc.tar.bz2
linux-stable-7f0324fb34c4736bf12ae8a5137e6913772749cc.zip
pstore: Convert console write to use ->write_buf
[ Upstream commit 70ad35db3321a6d129245979de4ac9d06eed897c ] Maybe I'm missing something, but I don't know why it needs to copy the input buffer to psinfo->buf and then write. Instead we can write the input buffer directly. The only implementation that supports console message (i.e. ramoops) already does it for ftrace messages. For the upcoming virtio backend driver, it needs to protect psinfo->buf overwritten from console messages. If it could use ->write_buf method instead of ->write, the problem will be solved easily. Cc: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'fs/pstore')
-rw-r--r--fs/pstore/platform.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index 588461bb2dd4..e97e7d74e134 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -392,8 +392,8 @@ static void pstore_console_write(struct console *con, const char *s, unsigned c)
} else {
spin_lock_irqsave(&psinfo->buf_lock, flags);
}
- memcpy(psinfo->buf, s, c);
- psinfo->write(PSTORE_TYPE_CONSOLE, 0, &id, 0, 0, 0, c, psinfo);
+ psinfo->write_buf(PSTORE_TYPE_CONSOLE, 0, &id, 0,
+ s, 0, c, psinfo);
spin_unlock_irqrestore(&psinfo->buf_lock, flags);
s += c;
c = e - s;