linux/net/batman-adv
Sven Eckelmann 10a7796576 batman-adv: Fix double-hold of meshif when getting enabled
It was originally meant to replace the dev_hold with netdev_hold. But this
was missed in batadv_hardif_enable_interface(). As result, there was an
imbalance and a hang when trying to remove the mesh-interface with
(previously) active hard-interfaces:

  unregister_netdevice: waiting for batadv0 to become free. Usage count = 3

Fixes: 00b3553081 ("batman-adv: adopt netdev_hold() / netdev_put()")
Suggested-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot+ff3aa851d46ab82953a3@syzkaller.appspotmail.com
Reported-by: syzbot+4036165fc595a74b09b2@syzkaller.appspotmail.com
Reported-by: syzbot+c35d73ce910d86c0026e@syzkaller.appspotmail.com
Reported-by: syzbot+48c14f61594bdfadb086@syzkaller.appspotmail.com
Reported-by: syzbot+f37372d86207b3bb2941@syzkaller.appspotmail.com
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20250414-double_hold_fix-v5-1-10e056324cde@narfation.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-04-15 17:56:47 -07:00
..
Kconfig lib/crc: remove CONFIG_LIBCRC32C 2025-04-04 11:31:42 -07:00
Makefile batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
bat_algo.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
bat_algo.h
bat_iv_ogm.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-03-20 21:38:01 +01:00
bat_iv_ogm.h
bat_v.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
bat_v.h
bat_v_elp.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
bat_v_elp.h batman-adv: Drop unmanaged ELP metric worker 2025-01-22 21:46:42 +01:00
bat_v_ogm.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-03-20 21:38:01 +01:00
bat_v_ogm.h
bitarray.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
bitarray.h
bridge_loop_avoidance.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
bridge_loop_avoidance.h
distributed-arp-table.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
distributed-arp-table.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
fragmentation.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
fragmentation.h
gateway_client.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
gateway_client.h
gateway_common.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
gateway_common.h
hard-interface.c batman-adv: Fix double-hold of meshif when getting enabled 2025-04-15 17:56:47 -07:00
hard-interface.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
hash.c
hash.h
log.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
log.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
main.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
main.h batman-adv: Switch to bitmap helper for aggregation handling 2025-02-22 11:36:25 +01:00
mesh-interface.c This feature/cleanup patchset includes the following patches: 2025-03-18 12:10:20 +01:00
mesh-interface.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
multicast.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
multicast.h
multicast_forw.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
netlink.c batman-adv: add missing newlines for log macros 2025-02-23 11:18:36 +01:00
netlink.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
network-coding.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
network-coding.h
originator.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
originator.h
routing.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
routing.h
send.c batman-adv: Use actual packet count for aggregated packets 2025-02-22 11:36:25 +01:00
send.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
tp_meter.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
tp_meter.h
trace.c
trace.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
translation-table.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
translation-table.h batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
tvlv.c batman-adv: Use consistent name for mesh interface 2025-02-22 11:36:22 +01:00
tvlv.h
types.h batman-adv: Switch to bitmap helper for aggregation handling 2025-02-22 11:36:25 +01:00