Patchwork [1,of,2] netconsole: don't require struct console to send data

login
register
mail settings
Submitter Hollis Blanchard
Date Nov. 27, 2008, 9:11 p.m.
Message ID <5b87df37a941e38bfd93.1227820261@localhost.localdomain>
Download mbox | patch
Permalink /patch/11266/
State Changes Requested
Delegated to: David Miller
Headers show

Comments

Hollis Blanchard - Nov. 27, 2008, 9:11 p.m.
This will allow callers not on the console path to use write_msg().

Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Matt Mackall - Nov. 30, 2008, 5:21 p.m.
On Thu, 2008-11-27 at 15:11 -0600, Hollis Blanchard wrote:
> This will allow callers not on the console path to use write_msg().
> 
> 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
> @@ -67,7 +67,7 @@ __setup("netconsole=", option_setup);
>  /* Linked list of all configured targets */
>  static LIST_HEAD(target_list);
>  
> -/* This needs to be a spinlock because write_msg() cannot sleep */
> +/* This needs to be a spinlock because netconsole_write_msg() cannot sleep */
>  static DEFINE_SPINLOCK(target_list_lock);
>  
>  /**
> @@ -694,7 +694,7 @@ static struct notifier_block netconsole_
>  	.notifier_call  = netconsole_netdev_event,
>  };
>  
> -static void write_msg(struct console *con, const char *msg, unsigned int len)
> +static void netconsole_write_msg(const char *msg, unsigned int len)
>  {
>  	int frag, left;
>  	unsigned long flags;
> @@ -728,10 +728,15 @@ static void write_msg(struct console *co
>  	spin_unlock_irqrestore(&target_list_lock, flags);
>  }
>  
> +static void netconsole_console_write(struct console *con, const char *msg, unsigned int len)
> +{
> +	netconsole_write_msg(msg, len);
> +}
> +
>  static struct console netconsole = {
>  	.name	= "netcon",
>  	.flags	= CON_ENABLED,
> -	.write	= write_msg,
> +	.write	= netconsole_console_write,
>  };

This looks fine functionally, but the name change strikes me as
gratuitous.
 
>  static int __init init_netconsole(void)

Patch

diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -67,7 +67,7 @@  __setup("netconsole=", option_setup);
 /* Linked list of all configured targets */
 static LIST_HEAD(target_list);
 
-/* This needs to be a spinlock because write_msg() cannot sleep */
+/* This needs to be a spinlock because netconsole_write_msg() cannot sleep */
 static DEFINE_SPINLOCK(target_list_lock);
 
 /**
@@ -694,7 +694,7 @@  static struct notifier_block netconsole_
 	.notifier_call  = netconsole_netdev_event,
 };
 
-static void write_msg(struct console *con, const char *msg, unsigned int len)
+static void netconsole_write_msg(const char *msg, unsigned int len)
 {
 	int frag, left;
 	unsigned long flags;
@@ -728,10 +728,15 @@  static void write_msg(struct console *co
 	spin_unlock_irqrestore(&target_list_lock, flags);
 }
 
+static void netconsole_console_write(struct console *con, const char *msg, unsigned int len)
+{
+	netconsole_write_msg(msg, len);
+}
+
 static struct console netconsole = {
 	.name	= "netcon",
 	.flags	= CON_ENABLED,
-	.write	= write_msg,
+	.write	= netconsole_console_write,
 };
 
 static int __init init_netconsole(void)