Message ID | 20241211153955.33518-3-tjarlama@gmail.com |
---|---|
State | New |
Headers | show |
Series | Add a new command in kgdb for vmcoreinfo | expand |
Hi, On Wed, Dec 11, 2024 at 7:40 AM Amal Raj T <tjarlama@gmail.com> wrote: > > From: Amal Raj T <amalrajt@meta.com> > > The current implementation of `poll_put_char` in the serial console driver > performs LF -> CRLF replacement, which can corrupt binary data. Since kdb > is the only user of `poll_put_char`, this patch moves the LF -> CRLF > replacement logic to kdb. > > Link: https://lore.kernel.org/linux-debuggers/Zy093jVKPs9gSVx2@telecaster/ > > Signed-off-by: Amal Raj T <amalrajt@meta.com> > --- > drivers/tty/serial/serial_core.c | 2 -- > kernel/debug/kdb/kdb_io.c | 2 ++ > 2 files changed, 2 insertions(+), 2 deletions(-) Looks reasonable. If someone comes out of the woodwork and says that this breaks them then we can try to figure out a solution as talked about previously [1]. It would be nice to include a link to the previous conversation in your comment message... With the reference to the previous conversation: Reviewed-by: Douglas Anderson <dianders@chromium.org> [1] https://lore.kernel.org/r/20241115144933.GB4408@aspen.lan
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c index 74fa02b23772..8e702f3deffb 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -2738,8 +2738,6 @@ static void uart_poll_put_char(struct tty_driver *driver, int line, char ch) if (!port) return; - if (ch == '\n') - port->ops->poll_put_char(port, '\r'); port->ops->poll_put_char(port, ch); uart_port_deref(port); } diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c index 6a77f1c779c4..43a7c8ad741a 100644 --- a/kernel/debug/kdb/kdb_io.c +++ b/kernel/debug/kdb/kdb_io.c @@ -572,6 +572,8 @@ static void kdb_msg_write(const char *msg, int msg_len) len = msg_len; while (len--) { + if (*cp == '\n') + dbg_io_ops->write_char('\r'); dbg_io_ops->write_char(*cp); cp++; }