diff options
-rw-r--r-- | kernel/printk/nmi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/printk/nmi.c b/kernel/printk/nmi.c index 16bab471c7e2..152533edc56f 100644 --- a/kernel/printk/nmi.c +++ b/kernel/printk/nmi.c | |||
@@ -67,7 +67,8 @@ static int vprintk_nmi(const char *fmt, va_list args) | |||
67 | again: | 67 | again: |
68 | len = atomic_read(&s->len); | 68 | len = atomic_read(&s->len); |
69 | 69 | ||
70 | if (len >= sizeof(s->buffer)) { | 70 | /* The trailing '\0' is not counted into len. */ |
71 | if (len >= sizeof(s->buffer) - 1) { | ||
71 | atomic_inc(&nmi_message_lost); | 72 | atomic_inc(&nmi_message_lost); |
72 | return 0; | 73 | return 0; |
73 | } | 74 | } |
@@ -79,7 +80,7 @@ again: | |||
79 | if (!len) | 80 | if (!len) |
80 | smp_rmb(); | 81 | smp_rmb(); |
81 | 82 | ||
82 | add = vsnprintf(s->buffer + len, sizeof(s->buffer) - len, fmt, args); | 83 | add = vscnprintf(s->buffer + len, sizeof(s->buffer) - len, fmt, args); |
83 | 84 | ||
84 | /* | 85 | /* |
85 | * Do it once again if the buffer has been flushed in the meantime. | 86 | * Do it once again if the buffer has been flushed in the meantime. |