Re: [PATCH 1/8] Notifier chain update

From: Alan Stern
Date: Wed Jan 18 2006 - 17:02:35 EST


On Wed, 18 Jan 2006, David S. Miller wrote:

> From: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> Date: Wed, 18 Jan 2006 16:57:30 -0500 (EST)
>
> > On Wed, 18 Jan 2006, Benjamin LaHaise wrote:
> >
> > > A notifier callee should not be sleeping, if anything it should be putting
> > > its work onto a workqueue and completing it when it gets scheduled if it
> > > has to do something that blocks.
> >
> > Sez who? If it's not documented in the kernel source, I don't believe
> > it.
>
> Many notifiers even get run from software interrupt context,
> making sleeping illegal.
>
> For example, IPV6 addresses can get added/removed from a device
> in response to packets, and these operations trigger the
> inet6addr_chain notifier in net/ipv6/addrconf.c
>
> So sleeping in a notifier is indeed illegal.

Correction: sleeping in an atomic notifier (like inet6addr_chain) callout
is illegal.

But there are plenty of notifier chains that are always invoked in process
context and where the callout routines may indeed block.

Alan Stern

-
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/