lkml.org 
[lkml]   [2005]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Notifier chains are unsafe
On Wed, 2 Nov 2005, Keith Owens wrote:

> On Tue, 1 Nov 2005 16:20:43 -0500 (EST),
> Alan Stern <stern@rowland.harvard.edu> wrote:
> >You mean the RCU-style update? It will hang when a callout routine tries
> >to deregister itself as it is running, although we could add a new
> >unregister_self API to handle that. Just check for num_callers equal to 1
> >instead of 0.
>
> A callout on an atomic notifer chain has no business calling the
> register/unregister functions. It makes no sense for an atomic context
> to call a routine that can sleep or block.

Ah, but what if the unregister function for atomic chains is implemented
in such a way that it doesn't sleep or block? That's what Chandra and I
have been discussing.

On the other hand, it's still true that for blocking chains, unregister
will have to acquire a write semaphore. We won't want callouts on
blocking chains (which already own the read semaphore) trying to
unregister themselves.

And in any case, it's cleaner for callouts never to unregister themselves.
That's why I tend to prefer the block_enable/disable solution.

Alan Stern

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

\
 
 \ /
  Last update: 2005-11-02 17:05    [W:0.636 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site