• Herbert Xu's avatar
    [NET]: Allow netdev REGISTER/CHANGENAME events to fail · fcc5a03a
    Herbert Xu authored
    This patch adds code to allow errors to be passed up from event
    handlers of NETDEV_REGISTER and NETDEV_CHANGENAME.  It also adds
    the notifier_from_errno/notifier_to_errnor helpers to pass the
    errno value up to the notifier caller.
    
    If an error is detected when a device is registered, it causes
    that operation to fail.  A NETDEV_UNREGISTER will be sent to
    all event handlers.
    
    Similarly if NETDEV_CHANGENAME fails the original name is restored
    and a new NETDEV_CHANGENAME event is sent.
    
    As such all event handlers must be idempotent with respect to
    these events.
    
    When an event handler is registered NETDEV_REGISTER events are
    sent for all devices currently registered.  Should any of them
    fail, we will send NETDEV_GOING_DOWN/NETDEV_DOWN/NETDEV_UNREGISTER
    events to that handler for the devices which have already been
    registered with it.  The handler registration itself will fail.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fcc5a03a
dev.c 98.8 KB