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

Commit 1a241a57 authored by Marek Lindner's avatar Marek Lindner
Browse files

batman-adv: free neighbors when an interface is deactivated



hardif_disable_interface() calls purge_orig_ref() to immediately free
all neighbors associated with the interface that is going down.
purge_orig_neighbors() checked if the interface status is IF_INACTIVE
which is set to IF_NOT_IN_USE shortly before calling purge_orig_ref().

Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
parent f987ed6e
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -224,10 +224,15 @@ static bool purge_orig_neighbors(struct bat_priv *bat_priv,
		if ((time_after(jiffies,
		if ((time_after(jiffies,
			neigh_node->last_valid + PURGE_TIMEOUT * HZ)) ||
			neigh_node->last_valid + PURGE_TIMEOUT * HZ)) ||
		    (neigh_node->if_incoming->if_status == IF_INACTIVE) ||
		    (neigh_node->if_incoming->if_status == IF_INACTIVE) ||
		    (neigh_node->if_incoming->if_status == IF_NOT_IN_USE) ||
		    (neigh_node->if_incoming->if_status == IF_TO_BE_REMOVED)) {
		    (neigh_node->if_incoming->if_status == IF_TO_BE_REMOVED)) {


			if (neigh_node->if_incoming->if_status ==
			if ((neigh_node->if_incoming->if_status ==
							IF_TO_BE_REMOVED)
								IF_INACTIVE) ||
			    (neigh_node->if_incoming->if_status ==
							IF_NOT_IN_USE) ||
			    (neigh_node->if_incoming->if_status ==
							IF_TO_BE_REMOVED))
				bat_dbg(DBG_BATMAN, bat_priv,
				bat_dbg(DBG_BATMAN, bat_priv,
					"neighbor purge: originator %pM, "
					"neighbor purge: originator %pM, "
					"neighbor: %pM, iface: %s\n",
					"neighbor: %pM, iface: %s\n",