summaryrefslogtreecommitdiff
path: root/include/linux/vmalloc.h
diff options
context:
space:
mode:
authorPrasad Koya <prasad@arista.com>2026-10-26 19:46:35 -0700
committerDave Miller <davem@davem-thinkpadp1gen8.ibmlond.csb>2026-10-30 10:06:40 +0000
commitd8a4f4c59da52b7c31ae337243b8473a19a3f819 (patch)
tree319710e988e30a920502bdbae847a364c0e8ef80 /include/linux/vmalloc.h
parent66dfb2cacda7faae614d688943d85e75abf7f586 (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/vmalloc.h')
0 files changed, 0 insertions, 0 deletions