linux/net/batman-adv
Linus Lüssing 72822225bd batman-adv: Fix rcu_barrier() miss due to double call_rcu() in TT code
rcu_barrier() only waits for the currently scheduled rcu functions
to finish - it won't wait for any function scheduled via another
call_rcu() within an rcu scheduled function.

Unfortunately our batadv_tt_orig_list_entry_free_ref() does just that,
via a batadv_orig_node_free_ref() call, leading to our rcu_barrier()
call potentially missing such a batadv_orig_node_free_ref().

This patch fixes this issue by calling the batadv_orig_node_free_rcu()
directly from the rcu callback, removing the unnecessary, additional
call_rcu() layer here.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Acked-by: Antonio Quartulli <ordex@autistici.org>
2013-05-17 09:54:28 +02:00
..
bat_algo.h
bat_iv_ogm.c
bitarray.c
bitarray.h
bridge_loop_avoidance.c net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
bridge_loop_avoidance.h
debugfs.c
debugfs.h
distributed-arp-table.c batman-adv: make DAT drop ARP requests targeting local clients 2013-05-09 12:39:45 +02:00
distributed-arp-table.h
gateway_client.c batman-adv: use seq_puts instead of seq_printf when the format is constant 2013-03-27 10:29:55 +01:00
gateway_client.h
gateway_common.c
gateway_common.h
hard-interface.c batman-adv: free an hard-interface before adding it 2013-03-27 10:29:53 +01:00
hard-interface.h batman-adv: Don't always delete softif when last slave was removed 2013-03-27 10:27:32 +01:00
hash.c
hash.h
icmp_socket.c
icmp_socket.h
Kconfig
main.c batman-adv: reorder clean up routine in order to avoid race conditions 2013-05-09 12:39:45 +02:00
main.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-22 20:32:51 -04:00
Makefile batman-adv: update Makefile copyright years 2013-03-27 10:29:54 +01:00
network-coding.c batman-adv: check return value of pskb_trim_rcsum() 2013-05-09 12:39:44 +02:00
network-coding.h
originator.c batman-adv: Fix rcu_barrier() miss due to double call_rcu() in TT code 2013-05-17 09:54:28 +02:00
originator.h batman-adv: Fix rcu_barrier() miss due to double call_rcu() in TT code 2013-05-17 09:54:28 +02:00
packet.h batman-adv: Fix endianness errors for network coding 2013-03-27 10:27:31 +01:00
ring_buffer.c
ring_buffer.h
routing.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-30 03:55:20 -04:00
routing.h
send.c
send.h
soft-interface.c batman-adv: fix global protection fault during soft_iface destruction 2013-04-22 20:40:48 -04:00
soft-interface.h batman-adv: Allow to use rntl_link for device creation/deletion 2013-03-27 10:27:34 +01:00
sysfs.c batman-adv: Don't always delete softif when last slave was removed 2013-03-27 10:27:32 +01:00
sysfs.h
translation-table.c batman-adv: Fix rcu_barrier() miss due to double call_rcu() in TT code 2013-05-17 09:54:28 +02:00
translation-table.h
types.h
unicast.c
unicast.h
vis.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-04-22 20:32:51 -04:00
vis.h