Messages in this thread | | | From | Kees Cook <> | Date | Tue, 15 Nov 2016 15:21:25 -0800 | Subject | Re: [RFC/PATCH 2/2] pstore: Convert console write to use ->write_buf |
| |
On Tue, Oct 18, 2016 at 6:23 PM, Namhyung Kim <namhyung@kernel.org> wrote: > 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.
Agreed, this looks like needless bounce-buffering. Thanks!
-Kees
> > Cc: Stefan Hajnoczi <stefanha@redhat.com> > Signed-off-by: Namhyung Kim <namhyung@kernel.org> > --- > fs/pstore/platform.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c > index 14984d902a99..960d66251bab 100644 > --- a/fs/pstore/platform.c > +++ b/fs/pstore/platform.c > @@ -584,8 +584,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; > -- > 2.9.3 >
-- Kees Cook Nexus Security
| |