diff options
author | Satyam Sharma <satyam@infradead.org> | 2007-08-11 02:30:31 +0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-11 03:48:03 +0400 |
commit | 0cc120bea1d4ba3893a26c70d271e89f928b8a97 (patch) | |
tree | 5ff99a2211acc2886889b994d1dd3b9e7b1ce892 /drivers/net/netconsole.c | |
parent | d2b60881e28072109601c373abd1085499ccfef0 (diff) | |
download | linux-0cc120bea1d4ba3893a26c70d271e89f928b8a97.tar.xz |
[NET] netconsole: Use netif_running() in write_msg()
Based upon initial work by Keiichi Kii <k-keiichi@bx.jp.nec.com>.
Avoid unnecessarily disabling interrupts and calling netpoll_send_udp() if the
corresponding local interface is not up.
Signed-off-by: Satyam Sharma <satyam@infradead.org>
Acked-by: Keiichi Kii <k-keiichi@bx.jp.nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netconsole.c')
-rw-r--r-- | drivers/net/netconsole.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index e56aa6c9743f..75cb76139ddc 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -75,16 +75,16 @@ static void write_msg(struct console *con, const char *msg, unsigned int len) int frag, left; unsigned long flags; - local_irq_save(flags); - - for (left = len; left;) { - frag = min(left, MAX_PRINT_CHUNK); - netpoll_send_udp(&np, msg, frag); - msg += frag; - left -= frag; + if (netif_running(np.dev)) { + local_irq_save(flags); + for (left = len; left;) { + frag = min(left, MAX_PRINT_CHUNK); + netpoll_send_udp(&np, msg, frag); + msg += frag; + left -= frag; + } + local_irq_restore(flags); } - - local_irq_restore(flags); } static struct console netconsole = { |