bonding: fix rx_handler locking
authorJiri Pirko <jpirko@redhat.com>
Tue, 22 Mar 2011 02:38:12 +0000 (02:38 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 23 Mar 2011 19:45:10 +0000 (12:45 -0700)
commit35d48903e9781975e823b359ee85c257c9ff5c1c
tree889a517bd0ccfbf64978ca9f8b5e70225a268d87
parentcda6587c21a887254c8ed4b58da8fcc4040ab557
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 <nicolas.2p.debian@gmail.com>
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Tested-by: Nicolas de Pesloüan <nicolas.2p.debian@free.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c
drivers/net/bonding/bonding.h