Re: Notifier chains are unsafe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2 Nov 2005, Keith Owens wrote:

> On Tue, 1 Nov 2005 16:20:43 -0500 (EST), 
> Alan Stern <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux