diff options
author | Moni Shoua <monis@mellanox.com> | 2015-02-08 11:49:32 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-09 14:03:53 -0800 |
commit | 92e584fe443995bbb84069a4d13ea8ebedb5c5c8 (patch) | |
tree | 56ec4d25143890b36edd026b8ab6ec3950d98661 /include/net | |
parent | 9dce285b70c157754d753203112cfef22770b1f9 (diff) | |
download | op-kernel-dev-92e584fe443995bbb84069a4d13ea8ebedb5c5c8.zip op-kernel-dev-92e584fe443995bbb84069a4d13ea8ebedb5c5c8.tar.gz |
net/bonding: Fix potential bad memory access during bonding events
When queuing work to send the NETDEV_BONDING_INFO netdev event, it's
possible that when the work is executed, the pointer to the slave
becomes invalid. This can happen if between queuing the event and the
execution of the work, the net-device was un-ensvaled and re-enslaved.
Fix that by queuing a work with the data of the slave instead of the
slave structure.
Fixes: 69e6113343cf ('net/bonding: Notify state change on slaves')
Reported-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: Moni Shoua <monis@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/bonding.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/bonding.h b/include/net/bonding.h index 4e17095..fda6fee 100644 --- a/include/net/bonding.h +++ b/include/net/bonding.h @@ -152,8 +152,8 @@ struct bond_parm_tbl { struct netdev_notify_work { struct delayed_work work; - struct slave *slave; struct net_device *dev; + struct netdev_bonding_info bonding_info; }; struct slave { |