Mailinglist Archive: opensuse-kernel (76 mails)

< Previous Next >
[opensuse-kernel] strange (and broken) patch in our kernels

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.


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@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-kernel+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups