bonding: fix rx_handler locking
This prevents possible race between bond_enslave and bond_handle_frame
as reported by Nicolas by moving rx_handler register/unregister.
slave->bond is added to hold pointer to master bonding sructure. That
way dev->master is no longer used in bond_handler_frame.
Also, this removes "BUG: scheduling while atomic" message
Reported-by: Nicolas de Pesloüan <[email protected]>
Signed-off-by: Jiri Pirko <[email protected]>
Signed-off-by: Andy Gospodarek <[email protected]>
Tested-by: Nicolas de Pesloüan <[email protected]>
Signed-off-by: David S. Miller <[email protected]>