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.