On Thursday, 9 January 2025 11:10:40 CET Andrew Strohman wrote: > But this got me thinking about the unlikely scenario where the soft if > netdevice is > destroyed before this work is run. I would prefer when you would call cancel_work_sync when metric stuff should be stopped. I was expecting to see this somewhere around batadv_v_elp_iface_disable after the cancel_work_sync but it seems like it is missing there (or in a similar place) void batadv_v_elp_iface_disable(struct batadv_hard_iface *hard_iface) { cancel_delayed_work_sync(&hard_iface->bat_v.elp_wq); + cancel_work_sync(&hard_iface->bat_v.metric_work); dev_kfree_skb(hard_iface->bat_v.elp_skb); hard_iface->bat_v.elp_skb = NULL; } The Fixes line for this patch would be: Fixes: 5c3245172c01 ("batman-adv: ELP - compute the metric based on the estimated throughput") Kind regards, Sven