Mailinglist Archive: opensuse-kernel (76 mails)

< Previous Next >
[opensuse-kernel] strange (and broken) patch in our kernels
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@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-kernel+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups