Re: 2.6.23 WARNING: at kernel/softirq.c:139 local_bh_enable()

From: Evgeniy Polyakov
Date: Fri Nov 23 2007 - 06:02:16 EST


On Fri, Nov 23, 2007 at 12:21:57AM -0800, Andrew Morton (akpm@xxxxxxxxxxxxxxxxxxxx) wrote:
> > [2059664.615816] __iptables__: init4 IN=ppp0 OUT=ppp0 WARNING: at kernel/softirq.c:139 local_bh_enable()
> > [2059664.620535] [<80120364>] local_bh_enable+0x3c/0x97

> > [2059664.620657] [<8011c205>] __call_console_drivers+0x61/0x6d
> > [2059664.620669] [<8011c3fc>] release_console_sem+0x164/0x1bf
> > [2059664.620679] [<8011c81f>] vprintk+0x27a/0x2ff

> If that trace is to be beieved we're doing nefilter stuff on packets which
> were sent across netconsole.
>
> This probably isn't anything the netfilter guys have thought about. And
> probably we don't want them to. Is there some simple way in which we can
> exempt netconsole from netfilter processing?

This is not about netfilter, but about freeing skb in interrupt context,
which is not allowed, and in interrupt skbs are queued to be freed in softirq,
but netcnsole wants to flush softirq freeing queue. That is a question: why?

Removing zap_completion_queue() from find_skb() will fix the warning,
but I'm not sure this is a correct fix. I've added Matt to the Cc list.

--
Evgeniy Polyakov
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/