Revision 963ad94853000ab100f5ff19eea80095660d41b4 authored by Nikolay Aleksandrov on 22 July 2015, 11:03:40 UTC, committed by David S. Miller on 26 July 2015, 23:27:22 UTC
Since slave_changelink support was added there have been a few race
conditions when using br_setport() since some of the port functions it
uses require the bridge lock. It is very easy to trigger a lockup due to
some internal spin_lock() usage without bh disabled, also it's possible to
get the bridge into an inconsistent state.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Fixes: 3ac636b8591c ("bridge: implement rtnl_link_ops->slave_changelink")
Reviewed-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 4851643
History
File Mode Size
tests
Kconfig -rw-r--r-- 2.9 KB
Makefile -rw-r--r-- 880 bytes
acl.c -rw-r--r-- 3.7 KB
async-thread.c -rw-r--r-- 9.2 KB
async-thread.h -rw-r--r-- 2.9 KB
backref.c -rw-r--r-- 51.1 KB
backref.h -rw-r--r-- 2.7 KB
btrfs_inode.h -rw-r--r-- 8.7 KB
check-integrity.c -rw-r--r-- 98.1 KB
check-integrity.h -rw-r--r-- 1.3 KB
compression.c -rw-r--r-- 28.2 KB
compression.h -rw-r--r-- 2.8 KB
ctree.c -rw-r--r-- 151.9 KB
ctree.h -rw-r--r-- 136.2 KB
delayed-inode.c -rw-r--r-- 52.0 KB
delayed-inode.h -rw-r--r-- 4.8 KB
delayed-ref.c -rw-r--r-- 22.9 KB
delayed-ref.h -rw-r--r-- 8.9 KB
dev-replace.c -rw-r--r-- 29.3 KB
dev-replace.h -rw-r--r-- 1.8 KB
dir-item.c -rw-r--r-- 12.8 KB
disk-io.c -rw-r--r-- 119.3 KB
disk-io.h -rw-r--r-- 5.6 KB
export.c -rw-r--r-- 7.5 KB
export.h -rw-r--r-- 301 bytes
extent-tree.c -rw-r--r-- 271.8 KB
extent-tree.h -rw-r--r-- 0 bytes
extent_io.c -rw-r--r-- 141.2 KB
extent_io.h -rw-r--r-- 14.2 KB
extent_map.c -rw-r--r-- 11.6 KB
extent_map.h -rw-r--r-- 2.4 KB
file-item.c -rw-r--r-- 25.8 KB
file.c -rw-r--r-- 76.2 KB
free-space-cache.c -rw-r--r-- 90.5 KB
free-space-cache.h -rw-r--r-- 4.9 KB
hash.c -rw-r--r-- 1.0 KB
hash.h -rw-r--r-- 1.2 KB
inode-item.c -rw-r--r-- 11.7 KB
inode-map.c -rw-r--r-- 14.4 KB
inode-map.h -rw-r--r-- 455 bytes
inode.c -rw-r--r-- 261.3 KB
ioctl.c -rw-r--r-- 132.9 KB
locking.c -rw-r--r-- 8.0 KB
locking.h -rw-r--r-- 2.1 KB
lzo.c -rw-r--r-- 10.3 KB
math.h -rw-r--r-- 1.1 KB
ordered-data.c -rw-r--r-- 29.3 KB
ordered-data.h -rw-r--r-- 6.8 KB
orphan.c -rw-r--r-- 1.7 KB
print-tree.c -rw-r--r-- 10.6 KB
print-tree.h -rw-r--r-- 906 bytes
props.c -rw-r--r-- 9.7 KB
props.h -rw-r--r-- 1.3 KB
qgroup.c -rw-r--r-- 60.3 KB
qgroup.h -rw-r--r-- 3.3 KB
raid56.c -rw-r--r-- 64.5 KB
raid56.h -rw-r--r-- 2.1 KB
rcu-string.h -rw-r--r-- 1.5 KB
reada.c -rw-r--r-- 24.5 KB
relocation.c -rw-r--r-- 109.7 KB
root-tree.c -rw-r--r-- 12.6 KB
scrub.c -rw-r--r-- 110.9 KB
send.c -rw-r--r-- 141.1 KB
send.h -rw-r--r-- 2.9 KB
struct-funcs.c -rw-r--r-- 4.5 KB
super.c -rw-r--r-- 59.5 KB
sysfs.c -rw-r--r-- 21.0 KB
sysfs.h -rw-r--r-- 3.0 KB
transaction.c -rw-r--r-- 61.6 KB
transaction.h -rw-r--r-- 7.0 KB
tree-defrag.c -rw-r--r-- 3.3 KB
tree-log.c -rw-r--r-- 139.0 KB
tree-log.h -rw-r--r-- 2.8 KB
ulist.c -rw-r--r-- 6.7 KB
ulist.h -rw-r--r-- 2.0 KB
uuid-tree.c -rw-r--r-- 8.0 KB
volumes.c -rw-r--r-- 178.0 KB
volumes.h -rw-r--r-- 15.7 KB
xattr.c -rw-r--r-- 13.4 KB
xattr.h -rw-r--r-- 1.5 KB
zlib.c -rw-r--r-- 10.5 KB

back to top