Re: [PATCH RFC batadv v2 4/5] batman-adv: limit numbers of parallel learned BLA backbones

Sven Eckelmann <[email protected]>
Newsgroups org.open-mesh.lists.batman
Message-ID <6472795.lOV4Wx5bFT@ripper>
On Tuesday, 19 May 2026 09:02:18 CEST Sven Eckelmann wrote:
> @@ -505,6 +507,11 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, const u8 *orig,
>                    "%s(): not found (%pM, %d), creating new entry\n", __func__,
>                    orig, batadv_print_vid(vid));
>  
> +       bla_backbone_max_learned = READ_ONCE(bat_priv->bla_backbone_max_learned);
> +       bla_backbone_learned = atomic_read(&bat_priv->bla_backbone_learned);
> +       if (bla_backbone_max_learned && bla_backbone_learned >= bla_backbone_max_learned)
> +               return NULL;
> +
>         entry = kzalloc_obj(*entry, GFP_ATOMIC);
>         if (!entry)
>                 return NULL;

@Simon: remark from Sashiko, should we actually exempt own_gateway?


@@ -508,10 +508,12 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, const u8 *orig,
 		   "%s(): not found (%pM, %d), creating new entry\n", __func__,
 		   orig, batadv_print_vid(vid));
 
-	bla_backbone_max_learned = READ_ONCE(bat_priv->bla_backbone_max_learned);
-	bla_backbone_learned = atomic_read(&bat_priv->bla_backbone_learned);
-	if (bla_backbone_max_learned && bla_backbone_learned >= bla_backbone_max_learned)
-		return NULL;
+	if (!own_backbone) {
+		bla_backbone_max_learned = READ_ONCE(bat_priv->bla_backbone_max_learned);
+		bla_backbone_learned = atomic_read(&bat_priv->bla_backbone_learned);
+		if (bla_backbone_max_learned && bla_backbone_learned >= bla_backbone_max_learned)
+			return NULL;
+	}
 
 	entry = kzalloc_obj(*entry, GFP_ATOMIC);
 	if (!entry)
@@ -539,7 +541,10 @@ batadv_bla_get_backbone_gw(struct batadv_priv *bat_priv, const u8 *orig,
 	if (unlikely(hash_added != 0)) {
 		/* hash failed, free the structure */
 		kfree(entry);
-		atomic_dec(&bat_priv->bla_backbone_learned);
+
+		if (!own_backbone)
+			atomic_dec(&bat_priv->bla_backbone_learned);
+
 		return NULL;
 	}
 
Regards,
	Sven
signature.asc (application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE-----

iHUEABYKAB0WIQS81G/PswftH/OW8cVND3cr0xT1ywUCagwpHAAKCRBND3cr0xT1
ywRUAQC6metEDP9gn57XIfn2U4N+q8G6tOQigVgwtSeAsafyagD9GmP1uTNe3zGk
sbJQ5dezcamNypu7xzfFYPkY/PPMTQM=
=cR/x
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.