From: Douglas Anderson <dianders@chromium.org>
To: linux-aspeed@lists.ozlabs.org
Subject: [PATCH v2 1/5] serial: qcom_geni_serial: Finish supporting sysrq
Date: Tue, 30 Oct 2018 15:11:03 -0700 [thread overview]
Message-ID: <20181030221107.79758-2-dianders@chromium.org> (raw)
In-Reply-To: <20181030221107.79758-1-dianders@chromium.org>
The geni serial driver already had some sysrq code in it, but since
SUPPORT_SYSRQ wasn't defined the code didn't do anything useful.
Let's make it useful by adding that define using the same formula
found in other serial drivers.
In order to prevent deadlock, we'll take a page from the
'msm_serial.c' where the spinlock is released around
uart_handle_sysrq_char(). This seemed better than copying from
'8250_port.c' where we skip locking in the console_write function
since the '8250_port.c' method can cause lockdep warnings when
dropping into kgdb.
Signed-off-by: Douglas Anderson <dianders@chromium.org>
---
drivers/tty/serial/qcom_geni_serial.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index 1515074e18fb..b83e3554bced 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -1,6 +1,10 @@
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2017-2018, The Linux foundation. All rights reserved.
+#if defined(CONFIG_SERIAL_QCOM_GENI_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
+# define SUPPORT_SYSRQ
+#endif
+
#include <linux/clk.h>
#include <linux/console.h>
#include <linux/io.h>
@@ -495,7 +499,10 @@ static int handle_rx_console(struct uart_port *uport, u32 bytes, bool drop)
continue;
}
+ spin_unlock(&uport->lock);
sysrq = uart_handle_sysrq_char(uport, buf[c]);
+ spin_lock(&uport->lock);
+
if (!sysrq)
tty_insert_flip_char(tport, buf[c], TTY_NORMAL);
}
--
2.19.1.568.g152ad8e336-goog
next prev parent reply other threads:[~2018-10-30 22:11 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-30 22:11 [PATCH v2 0/5] serial: Finish sysrq on qcom_geni; fix sysrq vs. lockdep on 8250 Douglas Anderson
2018-10-30 22:11 ` Douglas Anderson [this message]
2018-10-30 22:11 ` [PATCH v2 2/5] serial: core: Allow processing sysrq at port unlock time Douglas Anderson
2018-10-30 22:11 ` [PATCH v2 3/5] serial: qcom_geni_serial: Process " Douglas Anderson
2018-10-30 22:11 ` [PATCH v2 4/5] serial: core: Include console.h from serial_core.h Douglas Anderson
2018-10-30 22:11 ` [PATCH v2 5/5] serial: 8250: Process sysrq at port unlock time Douglas Anderson
2018-11-07 18:23 ` [PATCH v2 0/5] serial: Finish sysrq on qcom_geni; fix sysrq vs. lockdep on 8250 Andy Shevchenko
2018-11-07 19:26 ` Doug Anderson
2018-11-07 19:54 ` Andy Shevchenko
2018-11-08 9:41 ` Petr Mladek
2018-11-09 17:07 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181030221107.79758-2-dianders@chromium.org \
--to=dianders@chromium.org \
--cc=linux-aspeed@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).