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