• Alan Stern's avatar
    [PATCH] Notifier chain update: API changes · e041c683
    Alan Stern authored
    The kernel's implementation of notifier chains is unsafe.  There is no
    protection against entries being added to or removed from a chain while the
    chain is in use.  The issues were discussed in this thread:
    
        http://marc.theaimsgroup.com/?l=linux-kernel&m=113018709002036&w=2
    
    We noticed that notifier chains in the kernel fall into two basic usage
    classes:
    
    	"Blocking" chains are always called from a process context
    	and the callout routines are allowed to sleep;
    
    	"Atomic" chains can be called from an atomic context and
    	the callout routines are not allowed to sleep.
    
    We decided to codify this distinction and make it part of the API.  Therefore
    this set of patches introduces three new, parallel APIs: one for blocking
    notifiers, one for atomic notifiers, and one for "raw" notifiers (which is
    really just the old API under a new name).  New kinds of data structures are
    used for the heads of the chains, and new routines are defined for
    registration, unregistration...
    e041c683
adb.h 2.78 KB