linux/net/batman-adv
Simon Wunderlich 5a1dd8a477 batman-adv: lock crc access in bridge loop avoidance
We have found some networks in which nodes were constantly requesting
other nodes BLA claim tables to synchronize, just to ask for that again
once completed. The reason was that the crc checksum of the asked nodes
were out of sync due to missing locking and multiple writes to the same
crc checksum when adding/removing entries. Therefore the asked nodes
constantly reported the wrong crc, which caused repeating requests.

To avoid multiple functions changing a backbone gateways crc entry at
the same time, lock it using a spinlock.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Tested-by: Alfons Name <AlfonsName@web.de>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
2015-12-16 15:17:09 +08:00
..
bat_algo.h batman-adv: update copyright years for 2015 2015-05-29 10:13:35 +02:00
bat_iv_ogm.c batman-adv: rename equiv/equal or better to similar or better 2015-12-16 00:21:42 +08:00
bitarray.c batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
bitarray.h batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
bridge_loop_avoidance.c batman-adv: lock crc access in bridge loop avoidance 2015-12-16 15:17:09 +08:00
bridge_loop_avoidance.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
debugfs.c batman-adv: export single hop neighbor list via debugfs 2015-12-16 00:21:42 +08:00
debugfs.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
distributed-arp-table.c batman-adv: Remove multiple assignment per line 2015-08-25 00:12:18 +02:00
distributed-arp-table.h batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
fragmentation.c batman-adv: Use chain pointer when purging fragments 2015-12-16 15:17:09 +08:00
fragmentation.h batman-adv: Add required includes to all files 2015-06-07 17:07:19 +02:00
gateway_client.c batman-adv: fix gateway client style issues 2015-08-27 20:15:32 +02:00
gateway_client.h batman-adv: remove obsolete deleted attribute for gateway node 2015-08-27 20:15:32 +02:00
gateway_common.c batman-adv: Fix gw_bandwidth calculation on 32 bit systems 2015-08-25 00:12:22 +02:00
gateway_common.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
hard-interface.c batman-adv: add list of unique single hop neighbors per hard-interface 2015-12-16 00:21:41 +08:00
hard-interface.h batman-adv: Add required includes to all files 2015-06-07 17:07:19 +02:00
hash.c batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
hash.h batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
icmp_socket.c batman-adv: Fix kerneldoc over 80 column lines 2015-08-25 00:12:18 +02:00
icmp_socket.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
Kconfig batman-adv: Kconfig, Add missing DEBUG_FS dependency 2015-01-07 22:17:11 +01:00
main.c batman-adv: Fix typo 'wether' -> 'whether' 2015-12-16 15:17:09 +08:00
main.h batman-adv: Start new development cycle 2015-08-27 20:15:33 +02:00
Makefile batman-adv: Makefile, Sort alphabetically 2015-05-29 10:13:36 +02:00
multicast.c batman-adv: Add lockdep_asserts for documented external locks 2015-08-25 00:12:23 +02:00
multicast.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
network-coding.c batman-adv: Annotate deleting functions with external lock via lockdep 2015-08-25 00:12:23 +02:00
network-coding.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
originator.c batman-adv: export single hop neighbor list via debugfs 2015-12-16 00:21:42 +08:00
originator.h batman-adv: export single hop neighbor list via debugfs 2015-12-16 00:21:42 +08:00
packet.h batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
routing.c batman-adv: rename equiv/equal or better to similar or better 2015-12-16 00:21:42 +08:00
routing.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
send.c batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
send.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
soft-interface.c batman-adv: Add lower layer needed_(head|tail)room to own ones 2015-08-27 20:15:34 +02:00
soft-interface.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
sysfs.c batman-adv: Replace C99 int types with kernel type 2015-08-25 00:12:17 +02:00
sysfs.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
translation-table.c batman-adv: unify flags access style in tt global add 2015-12-16 15:17:08 +08:00
translation-table.h batman-adv: Remove batadv_ types forward declarations 2015-08-25 00:12:20 +02:00
types.h batman-adv: lock crc access in bridge loop avoidance 2015-12-16 15:17:09 +08:00