Hello, I accidentally noticed a really strange patch in our master branch and then found it also in other branches, e.g. SLE12 (but not in e.g. SLE11-SP4): patches.fixes/bridge-module-get-put.patch The purpose of this patch is to disallow unloading bridge module if there is at least one bridge device. This causes various problems: 1. It deviates from upstream kernel behaviour which allows unloading the module (removing all existing bridge devices). There should be a good reason for such difference in behaviour and I don't find the reasoning in bsc#267651 convincing. 2. It is inconsistent with to other types of virtual devices: "rmmod bonding" removes all bonding devices, "rmmod 8021q" removes all vlan devices etc. Why should bridge be different? 3. The patch is in fact broken as it only takes/drops the reference if the bridge device is added/deleted using the old ioctl interface (brctl command) but not if it is done using netlink (ip and most likely also wicked). This can result in refcount leak: 12sp0:~ # modprobe bridge 12sp0:~ # brctl addbr br1 12sp0:~ # ip link del br1 12sp0:~ # lsmod | grep '^bridge' bridge 123100 1 or even negative refcount: 12sp0:~ # modprobe bridge 12sp0:~ # ip link add br1 type bridge 12sp0:~ # brctl delbr br1 12sp0:~ # lsmod | grep '^bridge' bridge 123100 -1 This is definitely wrong. I'm afraid we can't get rid of the patch in SLE12 and SLE12-SP1 but I would like to drop it from master/stable so that it doesn't get into future releases (including SLE12-SP2). Does anyone have a strong argument for keeping (and fixing) the patch? Michal Kubeček -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org