From: Matt Mackall <mpm@selenic.com>
To: Hollis Blanchard <hollisb@us.ibm.com>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH 2 of 2] netconsole: add write-only tty driver
Date: Sun, 30 Nov 2008 11:28:57 -0600 [thread overview]
Message-ID: <1228066137.3196.64.camel@calx> (raw)
In-Reply-To: <1a5d52ff499998079f4b.1227820262@localhost.localdomain>
On Thu, 2008-11-27 at 15:11 -0600, Hollis Blanchard wrote:
> This allows userspace to output to netconsole via the /dev/console device,
> which is very useful to see initscript output, for example. There is only one
> netconsole TTY device, and TTY output goes to all receivers specified for
> console output.
>
> Input via /dev/console is still not implemented, however.
>
> Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
>
> diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
> --- a/drivers/net/netconsole.c
> +++ b/drivers/net/netconsole.c
> @@ -43,6 +43,7 @@
> #include <linux/netpoll.h>
> #include <linux/inet.h>
> #include <linux/configfs.h>
> +#include <linux/tty.h>
>
> MODULE_AUTHOR("Maintainer: Matt Mackall <mpm@selenic.com>");
> MODULE_DESCRIPTION("Console driver for network interfaces");
> @@ -98,6 +99,8 @@ struct netconsole_target {
> int enabled;
> struct netpoll np;
> };
> +
> +static struct tty_driver *netconsole_tty_driver;
>
> #ifdef CONFIG_NETCONSOLE_DYNAMIC
>
> @@ -728,15 +731,74 @@ static void netconsole_write_msg(const c
> spin_unlock_irqrestore(&target_list_lock, flags);
> }
>
> +static int netconsole_tty_open(struct tty_struct *tty, struct file *filp)
> +{
> + return 0;
> +}
> +
> +static void netconsole_tty_close(struct tty_struct *tty, struct file *filp)
> +{
> +}
> +
> +static int netconsole_tty_write(struct tty_struct *tty, const unsigned char *buf, int count)
> +{
> + netconsole_write_msg(buf, count);
> + return count;
> +}
> +
> +static int netconsole_tty_write_room(struct tty_struct *tty)
> +{
> + return MAX_PRINT_CHUNK;
> +}
> +
> +static const struct tty_operations netconsole_tty_ops = {
> + .open = netconsole_tty_open,
> + .close = netconsole_tty_close,
> + .write = netconsole_tty_write,
> + .write_room = netconsole_tty_write_room,
> +};
> +
> +static int __init netconsole_tty_init(void)
> +{
> + netconsole_tty_driver = alloc_tty_driver(1);
> + if (!netconsole_tty_driver)
> + return -ENOMEM;
> +
> + netconsole_tty_driver->owner = THIS_MODULE;
> + netconsole_tty_driver->driver_name = "netcon";
> + netconsole_tty_driver->name = "netcon";
> + netconsole_tty_driver->minor_start = 0;
> + netconsole_tty_driver->type = TTY_DRIVER_TYPE_SYSTEM;
> + netconsole_tty_driver->init_termios = tty_std_termios;
> + netconsole_tty_driver->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL;
> + netconsole_tty_driver->init_termios.c_ispeed = 9600;
> + netconsole_tty_driver->init_termios.c_ospeed = 9600;
> + netconsole_tty_driver->flags = TTY_DRIVER_REAL_RAW;
> + tty_set_operations(netconsole_tty_driver, &netconsole_tty_ops);
> +
> + if (tty_register_driver(netconsole_tty_driver))
> + printk(KERN_ERR "Couldn't register netconsole tty driver\n");
> +
> + return 0;
> +}
> +device_initcall(netconsole_tty_init);
I agree with Evgeniy that this should be merged into the existing init
function. Otherwise there's reader ambiguity about the ordering.
Otherwise this looks good.
--
Mathematics is the supreme nostalgia of our time.
next prev parent reply other threads:[~2008-11-30 17:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-27 21:11 [PATCH 0 of 2] implement tty driver for netconsole Hollis Blanchard
2008-11-27 21:11 ` [PATCH 1 of 2] netconsole: don't require struct console to send data Hollis Blanchard
2008-11-30 17:21 ` Matt Mackall
2008-11-27 21:11 ` [PATCH 2 of 2] netconsole: add write-only tty driver Hollis Blanchard
2008-11-27 21:47 ` Evgeniy Polyakov
2008-11-28 5:25 ` Hollis Blanchard
2008-11-30 17:28 ` Matt Mackall [this message]
2008-11-27 23:09 ` [PATCH 0 of 2] implement tty driver for netconsole Matt Mackall
2008-11-30 5:39 ` David Miller
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=1228066137.3196.64.camel@calx \
--to=mpm@selenic.com \
--cc=hollisb@us.ibm.com \
--cc=netdev@vger.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 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).