openwrt / routing

OpenWrt Routing Packages
330 stars 369 forks source link

openwrt-22.03: batman-adv: Fix lock assert after fragmentation change #1017

Closed ecsv closed 1 year ago

ecsv commented 1 year ago

Maintainer: @simonwunderlich Compile tested: x86_64 Run tested: x86_64

The automatic recalculation of the maximum allowed MTU is usually triggered by code sections which are already rtnl lock protected by callers outside of batman-adv. But when the fragmentation setting is changed via batman-adv's own batadv genl family, then the rtnl lock is not yet taken.

But dev_set_mtu requires that the caller holds the rtnl lock because it uses netdevice notifiers. And this code will then fail the check for this lock:

RTNL: assertion failed at net/core/dev.c (1953)

Fixes: e7ee4c55ded3 ("batman-adv: update to version 2023.2")