Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22508401 authored by Sven Eckelmann's avatar Sven Eckelmann Committed by Greg Kroah-Hartman
Browse files

Staging: batman-adv: Always protect list_for_each_entry_rcu with RCU



receive_bat_packet is not called with rcu_read_lock so we must ensure by
ourself that we protect list_for_each_entry_rcu using the correct RCU
locks.

Signed-off-by: default avatarSven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent af2ac7bf
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -563,6 +563,7 @@ void receive_bat_packet(struct ethhdr *ethhdr,
		batman_packet->tq, batman_packet->ttl, batman_packet->version,
		has_directlink_flag);

	rcu_read_lock();
	list_for_each_entry_rcu(batman_if, &if_list, list) {
		if (batman_if->if_status != IF_ACTIVE)
			continue;
@@ -585,6 +586,7 @@ void receive_bat_packet(struct ethhdr *ethhdr,
		if (compare_orig(ethhdr->h_source, broadcast_addr))
			is_broadcast = 1;
	}
	rcu_read_unlock();

	if (batman_packet->version != COMPAT_VERSION) {
		bat_dbg(DBG_BATMAN, bat_priv,