linux/net/batman-adv
Linus Lüssing 6bc4544021 batman-adv: mcast: shorten multicast tt/tvlv worker spinlock section
It is not necessary to hold the mla_lock spinlock during the whole
multicast tt/tvlv worker callback. Just holding it during the checks and
updates of the bat_priv stored multicast flags and mla_list is enough.

Therefore this patch splits batadv_mcast_mla_tvlv_update() in two:
batadv_mcast_mla_flags_get() at the beginning of the worker to gather
and calculate the new multicast flags, which does not need any locking
as it neither reads from nor writes to bat_priv->mcast.

And batadv_mcast_mla_flags_update() at the end of the worker which
commits the newly calculated flags and lists to bat_priv->mcast and
therefore needs the lock.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2019-05-25 12:59:54 +02:00
..
bat_algo.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_algo.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bat_iv_ogm.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_iv_ogm.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_elp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-05 14:14:19 -07:00
bat_v_elp.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bat_v_ogm.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bat_v_ogm.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bat_v.c batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
bat_v.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bitarray.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bitarray.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
bridge_loop_avoidance.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-05 14:14:19 -07:00
bridge_loop_avoidance.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
debugfs.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
debugfs.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
distributed-arp-table.c batman-adv: allow updating DAT entry timeouts on incoming ARP Replies 2019-03-25 10:01:13 +01:00
distributed-arp-table.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
fragmentation.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
fragmentation.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
gateway_client.c batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
gateway_client.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
gateway_common.c batman-adv: Fix includes for *_MAX constants 2019-05-25 12:59:53 +02:00
gateway_common.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
hard-interface.c batman-adv: Fix includes for *_MAX constants 2019-05-25 12:59:53 +02:00
hard-interface.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
hash.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
hash.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
icmp_socket.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
icmp_socket.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
Kconfig batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
log.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
log.h batman-adv: Add missing include for atomic functions 2019-05-25 12:59:53 +02:00
main.c This feature/cleanup patchset includes the following patches: 2019-05-09 09:44:17 -07:00
main.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
Makefile batman-adv: Make sysfs support optional 2019-03-25 10:01:11 +01:00
multicast.c batman-adv: mcast: shorten multicast tt/tvlv worker spinlock section 2019-05-25 12:59:54 +02:00
multicast.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
netlink.c batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
netlink.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
network-coding.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
network-coding.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
originator.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
originator.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
routing.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
routing.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
send.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
send.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
soft-interface.c batman-adv: mcast: shorten multicast tt/tvlv worker spinlock section 2019-05-25 12:59:54 +02:00
soft-interface.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
sysfs.c batman-adv: Fix includes for *_MAX constants 2019-05-25 12:59:53 +02:00
sysfs.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
tp_meter.c batman-adv: Fix includes for *_MAX constants 2019-05-25 12:59:53 +02:00
tp_meter.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
trace.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
trace.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
translation-table.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-05 14:14:19 -07:00
translation-table.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
tvlv.c batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
tvlv.h batman-adv: Use includes instead of fwdecls 2019-05-25 12:59:53 +02:00
types.h batman-adv: mcast: shorten multicast tt/tvlv worker spinlock section 2019-05-25 12:59:54 +02:00