netdev
[Top] [All Lists]

Re: [PATCH] [1/2] kernel error reporting (revised)

To: Jim Keniston <jkenisto@xxxxxxxxxx>
Subject: Re: [PATCH] [1/2] kernel error reporting (revised)
From: Andrew Morton <akpm@xxxxxxxx>
Date: Tue, 15 Jul 2003 12:51:21 -0700
Cc: jmorris@xxxxxxxxxxxxxxxx, davem@xxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx, jgarzik@xxxxxxxxx, alan@xxxxxxxxxxxxxxxxxxx, rddunlap@xxxxxxxx, kuznet@xxxxxxxxxxxxx, jkenisto@xxxxxxxxxx
In-reply-to: <3F143D0A.A052F0B6@us.ibm.com>
References: <Mutt.LNX.4.44.0307131052420.2146-100000@excalibur.intercode.com.au> <3F143D0A.A052F0B6@us.ibm.com>
Sender: netdev-bounce@xxxxxxxxxxx
Jim Keniston <jkenisto@xxxxxxxxxx> wrote:
>
> +int kernel_error_event_iov(const struct iovec *iov, unsigned int nseg,
> +     u32 groups)
> +{
> ...
> +
> +     return netlink_broadcast(kerror_nl, skb, 0, ~0, GFP_ATOMIC);

This appears to be deadlocky when called from interrupt handlers.

netlink_broadcast() does read_lock(&nl_table_lock).  But nl_table_lock is
not an irq-safe lock.

Possibly netlink_broadcast() can be made callable from hardirq context, but
it looks to be non trivial.  The various error and delivery handlers need
to be reviewed, the kfree_skb() calls should be thought about, etc.


<Prev in Thread] Current Thread [Next in Thread>