Messages in this thread |  | | | Subject | Re: [PATCH v3] printk: Have printk() never buffer its data | | From | Joe Perches <> | | Date | Tue, 26 Jun 2012 09:30:55 -0700 |
| |
On Tue, 2012-06-26 at 18:07 +0200, Kay Sievers wrote: []
Just a couple trivial notes:
> diff --git a/kernel/printk.c b/kernel/printk.c [] > @@ -1795,6 +1831,7 @@ static u32 console_idx; > */ > void console_unlock(void) > { > + static char text[LOG_LINE_MAX];
Is this static to avoid excessive stack? Might be useful to note that.
> static u64 seen_seq; > unsigned long flags; > bool wake_klogd = false; > @@ -1807,10 +1844,37 @@ void console_unlock(void) > > console_may_schedule = 0; > > + /* flush buffered message fragment immediately to console */ > + raw_spin_lock_irqsave(&logbuf_lock, flags); > + if (cont_cons_len && (cont_cons < cont_cons_len || !cont_len)) { > + size_t textlen = 0; > + size_t len; > + > + len = cont_cons_len - cont_cons; > + if (!cont_cons) > + textlen = print_time(cont_ts_nsec, text); > + memcpy(text + textlen, cont_buf + cont_cons, len);
This could overrun the 512 bytes of text yes?
|  |