diff options
| author | Prasad Koya <prasad@arista.com> | 2026-10-26 19:46:35 -0700 |
|---|---|---|
| committer | Dave Miller <davem@davem-thinkpadp1gen8.ibmlond.csb> | 2026-10-30 10:06:40 +0000 |
| commit | d8a4f4c59da52b7c31ae337243b8473a19a3f819 (patch) | |
| tree | 319710e988e30a920502bdbae847a364c0e8ef80 /include/linux/stackprotector.h | |
| parent | 66dfb2cacda7faae614d688943d85e75abf7f586 (diff) | |
macvlan: fix allmulti reference counting in passthru mode
Enabling allmulticast on a down passthru macvlan, bringing it up,
then toggling allmulticast off and on can underflow the lower device's
allmulti reference count.
macvlan_change_rx_flags() only propagates IFF_ALLMULTI changes while
the macvlan is up. However, the passthru path in macvlan_open() skips
taking an allmulti reference when IFF_ALLMULTI is already set.
Clearing allmulticast after opening the device therefore decrements
a reference that was never taken. With no other allmulti users, the
unsigned counter wraps from zero to UINT_MAX. The next increment
fails with -EOVERFLOW and reports "allmulti touches roof".
The issue was observed during development testing with 5.10 and 6.12
kernels. It was reproduced on Linux 6.12.68 by enabling allmulticast
on a down passthru macvlan, bringing it up, and toggling allmulticast
off and on. This triggered the “allmulti touches roof” warning.
Signed-off-by: Prasad Koya <prasad@arista.com>
Signed-off-by: Dave Miller <davem@davem-thinkpadp1gen8.ibmlond.csb>
Diffstat (limited to 'include/linux/stackprotector.h')
0 files changed, 0 insertions, 0 deletions
