summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43
diff options
context:
space:
mode:
authorJiri Bohac <jbohac@suse.cz>2009-10-28 22:23:54 -0700
committerDavid S. Miller <davem@davemloft.net>2009-10-28 22:23:54 -0700
commitd9d5283228d0c752f199c901fff6e1405dc91bcb (patch)
treea21bf48e33cff976c50ef4f77dcc012cdcac4871 /drivers/net/wireless/b43
parent03f191bab77c0148e458dbbd0a37241be2a2faf9 (diff)
downloadop-kernel-dev-d9d5283228d0c752f199c901fff6e1405dc91bcb.zip
op-kernel-dev-d9d5283228d0c752f199c901fff6e1405dc91bcb.tar.gz
bonding: fix a race condition in calls to slave MII ioctls
In mii monitor mode, bond_check_dev_link() calls the the ioctl handler of slave devices. It stores the ndo_do_ioctl function pointer to a static (!) ioctl variable and later uses it to call the handler with the IOCTL macro. If another thread executes bond_check_dev_link() at the same time (even with a different bond, which none of the locks prevent), a race condition occurs. If the two racing slaves have different drivers, this may result in one driver's ioctl handler being called with a pointer to a net_device controlled with a different driver, resulting in unpredictable breakage. Unless I am overlooking something, the "static" must be a copy'n'paste error (?). Signed-off-by: Jiri Bohac <jbohac@suse.cz> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/b43')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud