On Tue, Oct 18, 2016 at 6:23 PM, Namhyung Kim <[email protected]> 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 <[email protected]> > Signed-off-by: Namhyung Kim <[email protected]> > --- > 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

