Since commit 70ad35db3321 ("pstore: Convert console write to use
->write_buf"), the console writer does not use the preallocated crash
dump buffer any more, so there is no reason to perform locking around it.

Signed-off-by: Kees Cook <keesc...@chromium.org>
---
 fs/pstore/platform.c | 29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index a956c7bc3f67..32340e7dd6a5 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -461,31 +461,14 @@ static void pstore_unregister_kmsg(void)
 #ifdef CONFIG_PSTORE_CONSOLE
 static void pstore_console_write(struct console *con, const char *s, unsigned 
c)
 {
-       const char *e = s + c;
+       struct pstore_record record;
 
-       while (s < e) {
-               struct pstore_record record;
-               unsigned long flags;
-
-               pstore_record_init(&record, psinfo);
-               record.type = PSTORE_TYPE_CONSOLE;
-
-               if (c > psinfo->bufsize)
-                       c = psinfo->bufsize;
+       pstore_record_init(&record, psinfo);
+       record.type = PSTORE_TYPE_CONSOLE;
 
-               if (oops_in_progress) {
-                       if (!spin_trylock_irqsave(&psinfo->buf_lock, flags))
-                               break;
-               } else {
-                       spin_lock_irqsave(&psinfo->buf_lock, flags);
-               }
-               record.buf = (char *)s;
-               record.size = c;
-               psinfo->write(&record);
-               spin_unlock_irqrestore(&psinfo->buf_lock, flags);
-               s += c;
-               c = e - s;
-       }
+       record.buf = (char *)s;
+       record.size = c;
+       psinfo->write(&record);
 }
 
 static struct console pstore_console = {
-- 
2.17.1

Reply via email to