• Pavel Emelyanov's avatar
    [NET]: Remove notifier block from chain when register_netdevice_notifier fails · c67625a1
    Pavel Emelyanov authored
    Commit fcc5a03a:
    
    	[NET]: Allow netdev REGISTER/CHANGENAME events to fail
    
    makes the register_netdevice_notifier() handle the error from the
    NETDEV_REGISTER event, sent to the registering block.
    
    The bad news is that in this case the notifier block is 
    not removed from the list, but the error is returned to the 
    caller. In case the caller is in module init function and 
    handles this error this can abort the module loading. The
    notifier block will be then removed from the kernel, but 
    will be left in the list. Oops :(
    
    I think that the notifier block should be removed from the
    chain in case of error, regardless whether this error is 
    handled by the caller or not. In the worst case (the error 
    is _not_ handled) module will not receive the events any 
    longer.
    Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
    Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c67625a1
dev.c 108 KB