| From a749523d49988c978f9c0a7ec9a842f7f77464bc Mon Sep 17 00:00:00 2001 |
| From: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> |
| Date: Fri, 3 Jul 2009 08:30:10 -0500 |
| Subject: [PATCH] net: NOHZ: local_softirq_pending with tickless |
| |
| commit b6ecb93388d2dea47182a7afe3a4f4de80a6d0e6 in tip. |
| |
| On one of my machines with tickless kernel and plip I get messages : |
| |
| NOHZ: local_softirq_pending 08 |
| |
| always when using plip (on other machine with tickless kernel and plip I |
| get no errors). Thebug happens both on 2.6.21 and 2.6.22-rc1 |
| |
| This patch fixes that. Note that plip calls netif_rx neither from hardware |
| interrupt nor from ksoftirqd, so there is no one who would wake |
| ksoftirqd then. netif_tx calls only |
| __raise_softirq_irqoff(NET_RX_SOFTIRQ), which sets softirq bit, but |
| doesn't wake ksoftirqd. |
| |
| [ tglx: Removed the remaining users of __raise_softirq_irqoff() as well. ] |
| |
| Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> |
| Signed-off-by: Ingo Molnar <mingo@elte.hu> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| |
| diff --git a/net/core/dev.c b/net/core/dev.c |
| index 7dd1d06..e96dccf 100644 |
| --- a/net/core/dev.c |
| +++ b/net/core/dev.c |
| @@ -3050,7 +3050,7 @@ out: |
| |
| softnet_break: |
| __get_cpu_var(netdev_rx_stat).time_squeeze++; |
| - __raise_softirq_irqoff(NET_RX_SOFTIRQ); |
| + raise_softirq_irqoff(NET_RX_SOFTIRQ); |
| goto out; |
| } |
| |
| -- |
| 1.7.1.1 |
| |