]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
batman-adv: stop tp_meter sessions during mesh teardown
authorJiexun Wang <wangjiexun2025@gmail.com>
Mon, 27 Apr 2026 06:43:34 +0000 (14:43 +0800)
committerSven Eckelmann <sven@narfation.org>
Sat, 2 May 2026 19:58:53 +0000 (21:58 +0200)
commit3d3cf6a7314aca4df0a6dde28ce784a2a30d0166
tree853960c869a4a86af027cdf0a58926b0107a70af
parent3243543592425beec83d453793e9d27caa0d8e66
batman-adv: stop tp_meter sessions during mesh teardown

TP meter sessions remain linked on bat_priv->tp_list after the netlink
request has already finished. When the mesh interface is removed,
batadv_mesh_free() currently tears down the mesh without first draining
these sessions.

A running sender thread or a late incoming tp_meter packet can then keep
processing against a mesh instance which is already shutting down.
Synchronize tp_meter with the mesh lifetime by stopping all active
sessions from batadv_mesh_free() and waiting for sender threads to exit
before teardown continues.

Fixes: 33a3bb4a3345 ("batman-adv: throughput meter implementation")
Cc: stable@kernel.org
Reported-by: Yuan Tan <yuantan098@gmail.com>
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Reported-by: Xin Liu <bird@lzu.edu.cn>
Co-developed-by: Luxing Yin <tr0jan@lzu.edu.cn>
Signed-off-by: Luxing Yin <tr0jan@lzu.edu.cn>
Signed-off-by: Jiexun Wang <wangjiexun2025@gmail.com>
Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
net/batman-adv/main.c
net/batman-adv/tp_meter.c
net/batman-adv/tp_meter.h
net/batman-adv/types.h