From: Rob Herring <robh@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Marcel Holtmann <marcel@holtmann.org>,
Jiri Slaby <jslaby@suse.com>, Sebastian Reichel <sre@kernel.org>
Cc: Pavel Machek <pavel@ucw.cz>,
Peter Hurley <peter@hurleysoftware.com>,
NeilBrown <neil@brown.name>,
"Dr . H . Nikolaus Schaller" <hns@goldelico.com>,
Arnd Bergmann <arnd@arndb.de>,
Linus Walleij <linus.walleij@linaro.org>,
linux-bluetooth@vger.kernel.org, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [RFC PATCH 2/3] tty: serial_core: make tty_struct optional
Date: Wed, 17 Aug 2016 20:14:44 -0500 [thread overview]
Message-ID: <20160818011445.22726-3-robh@kernel.org> (raw)
In-Reply-To: <20160818011445.22726-1-robh@kernel.org>
In order to allow serial drivers to work without a tty, make calls from
drivers and serial_core work when tty_struct is NULL.
Signed-off-by: Rob Herring <robh@kernel.org>
---
drivers/tty/serial/serial_core.c | 3 ++-
drivers/tty/tty_buffer.c | 2 ++
include/linux/serial_core.h | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 9fc1533..9dd444f 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -111,7 +111,8 @@ void uart_write_wakeup(struct uart_port *port)
* closed. No cookie for you.
*/
BUG_ON(!state);
- tty_wakeup(state->port.tty);
+ if (state->port.tty)
+ tty_wakeup(state->port.tty);
}
static void uart_stop(struct tty_struct *tty)
diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
index aa80dc9..ffab8ea 100644
--- a/drivers/tty/tty_buffer.c
+++ b/drivers/tty/tty_buffer.c
@@ -528,6 +528,8 @@ static void flush_to_ldisc(struct work_struct *work)
void tty_flip_buffer_push(struct tty_port *port)
{
+ if (!port->tty)
+ return;
tty_schedule_flip(port);
}
EXPORT_SYMBOL(tty_flip_buffer_push);
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 2f44e20..a27ca1f 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -412,7 +412,7 @@ int uart_resume_port(struct uart_driver *reg, struct uart_port *port);
static inline int uart_tx_stopped(struct uart_port *port)
{
struct tty_struct *tty = port->state->port.tty;
- if (tty->stopped || port->hw_stopped)
+ if ((tty && tty->stopped) || port->hw_stopped)
return 1;
return 0;
}
--
2.9.2
next prev parent reply other threads:[~2016-08-18 1:14 UTC|newest]
Thread overview: 139+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-18 1:14 [RFC PATCH 0/3] UART slave device bus Rob Herring
2016-08-18 1:14 ` [RFC PATCH 1/3] uart bus: Introduce new bus for UART slave devices Rob Herring
2016-08-18 1:14 ` Rob Herring [this message]
2016-08-18 10:50 ` [RFC PATCH 2/3] tty: serial_core: make tty_struct optional Pavel Machek
2016-08-18 1:14 ` [RFC PATCH 3/3] tty: serial_core: add uart controller registration Rob Herring
2016-08-18 10:22 ` [RFC PATCH 0/3] UART slave device bus Greg Kroah-Hartman
2016-08-18 10:22 ` Greg Kroah-Hartman
2016-08-18 10:30 ` Marcel Holtmann
2016-08-18 10:53 ` Greg Kroah-Hartman
2016-08-18 13:53 ` Rob Herring
2016-08-18 13:15 ` Rob Herring
2016-08-18 15:04 ` One Thousand Gnomes
2016-08-18 18:33 ` Rob Herring
2016-08-19 11:03 ` One Thousand Gnomes
2016-08-25 16:40 ` Rob Herring
2016-08-25 16:40 ` Rob Herring
2016-08-26 13:12 ` One Thousand Gnomes
2016-08-18 10:39 ` H. Nikolaus Schaller
2016-08-18 10:39 ` H. Nikolaus Schaller
2016-08-18 10:47 ` Pavel Machek
2016-08-18 10:54 ` H. Nikolaus Schaller
2016-08-18 10:54 ` H. Nikolaus Schaller
2016-08-18 10:57 ` Greg Kroah-Hartman
2016-08-18 11:14 ` H. Nikolaus Schaller
2016-08-18 11:14 ` H. Nikolaus Schaller
2016-08-18 11:14 ` H. Nikolaus Schaller
2016-08-18 14:40 ` One Thousand Gnomes
2016-08-18 14:40 ` One Thousand Gnomes
2016-08-18 14:58 ` Greg Kroah-Hartman
2016-08-18 11:27 ` H. Nikolaus Schaller
2016-08-18 10:49 ` Marcel Holtmann
2016-08-18 10:55 ` Greg Kroah-Hartman
2016-08-18 11:01 ` Marcel Holtmann
2016-08-18 11:24 ` Greg Kroah-Hartman
2016-08-18 11:42 ` Pavel Machek
2016-08-18 11:42 ` Pavel Machek
2016-08-18 11:51 ` Marcel Holtmann
2016-08-18 11:51 ` Marcel Holtmann
2016-08-18 15:14 ` One Thousand Gnomes
2016-08-18 15:13 ` One Thousand Gnomes
2016-08-18 11:10 ` Pavel Machek
2016-08-18 11:18 ` H. Nikolaus Schaller
2016-08-18 11:49 ` Marcel Holtmann
2016-08-18 12:16 ` H. Nikolaus Schaller
2016-08-18 12:16 ` H. Nikolaus Schaller
2016-08-18 15:15 ` One Thousand Gnomes
2016-08-18 11:47 ` Marcel Holtmann
2016-08-18 13:01 ` Pavel Machek
2016-08-18 15:16 ` One Thousand Gnomes
2016-08-18 11:02 ` H. Nikolaus Schaller
2016-08-18 11:02 ` H. Nikolaus Schaller
2016-08-18 11:41 ` Marcel Holtmann
2016-08-18 12:07 ` H. Nikolaus Schaller
2016-08-18 12:07 ` H. Nikolaus Schaller
2016-08-18 12:07 ` H. Nikolaus Schaller
2016-08-18 11:02 ` Pavel Machek
2016-08-18 13:07 ` Linus Walleij
2016-08-18 17:31 ` Marcel Holtmann
2016-08-18 14:25 ` One Thousand Gnomes
2016-08-18 15:14 ` H. Nikolaus Schaller
2016-08-18 15:14 ` H. Nikolaus Schaller
2016-08-18 15:38 ` One Thousand Gnomes
2016-08-18 18:31 ` H. Nikolaus Schaller
2016-08-18 18:31 ` H. Nikolaus Schaller
2016-08-18 22:25 ` Rob Herring
2016-08-19 11:38 ` One Thousand Gnomes
2016-08-19 15:36 ` Sebastian Reichel
2016-08-18 20:29 ` Sebastian Reichel
2016-08-18 23:08 ` Rob Herring
2016-08-19 5:21 ` Sebastian Reichel
2016-08-19 7:29 ` H. Nikolaus Schaller
2016-08-19 7:49 ` Oleksij Rempel
2016-08-19 7:49 ` Oleksij Rempel
2016-08-19 17:50 ` H. Nikolaus Schaller
2016-08-19 20:19 ` Oleksij Rempel
2016-08-19 20:19 ` Oleksij Rempel
2016-08-20 13:34 ` One Thousand Gnomes
2016-08-21 7:50 ` H. Nikolaus Schaller
2016-08-21 7:50 ` H. Nikolaus Schaller
2016-08-22 20:39 ` Sebastian Reichel
2016-08-22 21:23 ` H. Nikolaus Schaller
2016-08-22 21:43 ` Arnd Bergmann
2016-08-22 22:42 ` Sebastian Reichel
2016-08-22 22:52 ` One Thousand Gnomes
2016-08-22 23:10 ` Sebastian Reichel
2016-08-23 7:28 ` H. Nikolaus Schaller
2016-08-27 12:01 ` Michal Suchanek
2016-08-19 11:06 ` One Thousand Gnomes
2016-08-19 17:42 ` H. Nikolaus Schaller
2016-08-19 17:42 ` H. Nikolaus Schaller
2016-08-20 13:22 ` One Thousand Gnomes
2016-08-20 13:22 ` One Thousand Gnomes
2016-08-21 7:50 ` H. Nikolaus Schaller
2016-08-21 7:50 ` H. Nikolaus Schaller
2016-08-21 7:50 ` H. Nikolaus Schaller
2016-08-21 17:09 ` One Thousand Gnomes
2016-08-21 18:23 ` H. Nikolaus Schaller
2016-08-21 18:23 ` H. Nikolaus Schaller
2016-08-22 9:09 ` One Thousand Gnomes
2016-08-22 9:33 ` Marcel Holtmann
2016-08-22 9:33 ` Marcel Holtmann
2016-08-19 11:03 ` One Thousand Gnomes
2016-08-19 11:03 ` One Thousand Gnomes
2016-08-19 14:44 ` Sebastian Reichel
2016-08-22 12:37 ` Arnd Bergmann
2016-08-22 13:38 ` Rob Herring
2016-08-22 15:24 ` Arnd Bergmann
2016-08-22 15:28 ` Marcel Holtmann
2016-08-22 15:46 ` Arnd Bergmann
2016-08-22 15:45 ` One Thousand Gnomes
2016-08-22 21:07 ` Marcel Holtmann
2016-08-22 21:35 ` One Thousand Gnomes
2016-08-22 22:03 ` Sebastian Reichel
2016-08-22 22:46 ` One Thousand Gnomes
2016-08-22 23:41 ` Sebastian Reichel
2016-08-24 12:14 ` Linus Walleij
2016-08-22 16:44 ` Rob Herring
2016-08-22 17:02 ` One Thousand Gnomes
2016-08-22 17:30 ` Rob Herring
2016-08-22 17:30 ` Rob Herring
2016-08-22 17:38 ` One Thousand Gnomes
2016-08-22 21:16 ` Marcel Holtmann
2016-08-22 21:32 ` One Thousand Gnomes
2016-08-22 22:00 ` Pavel Machek
2016-08-22 22:54 ` One Thousand Gnomes
2016-08-22 23:57 ` Sebastian Reichel
2016-08-23 0:15 ` One Thousand Gnomes
2016-08-23 0:57 ` Sebastian Reichel
2016-08-24 13:57 ` One Thousand Gnomes
2016-08-24 13:57 ` One Thousand Gnomes
2016-08-24 14:29 ` Marcel Holtmann
2016-08-24 14:29 ` Marcel Holtmann
2016-08-23 11:42 ` Marcel Holtmann
2016-08-22 23:02 ` Sebastian Reichel
2016-08-22 20:00 ` Sebastian Reichel
2016-08-22 22:00 ` Rob Herring
2016-08-22 22:00 ` Rob Herring
2016-08-22 22:18 ` Sebastian Reichel
2016-08-23 21:04 ` Rob Herring
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=20160818011445.22726-3-robh@kernel.org \
--to=robh@kernel.org \
--cc=arnd@arndb.de \
--cc=gregkh@linuxfoundation.org \
--cc=hns@goldelico.com \
--cc=jslaby@suse.com \
--cc=linus.walleij@linaro.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=neil@brown.name \
--cc=pavel@ucw.cz \
--cc=peter@hurleysoftware.com \
--cc=sre@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.