On Fri, 2016-09-02 at 08:21 -0700, Eric Dumazet wrote:
Ideally the netdev_rx_handler_register() should be called only when no
further errors can be detected in the 'enslaving' process, otherwise
some live packets could come and be incorrectly processed/dropped by a
not fully initialized driver.
So it is a chicken and egg problem, if you allow
netdev_rx_handler_register() to return an error, while it is so easy
to early check what could go wrong with it.
One final point is that this patch is easy to backport to stable
versions.
bond_enslave() is a monster, and changing the rollback chain is likely
to cause backport merge conflicts.