All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven@narfation.org>
To: netdev@vger.kernel.org, Simon Wunderlich <sw@simonwunderlich.de>
Cc: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>,
	b.a.t.m.a.n@lists.open-mesh.org,
	Simon Wunderlich <sw@simonwunderlich.de>
Subject: Re: [PATCH net-next 11/15] batman-adv: tt: extract immediate purge of a local entry
Date: Tue, 08 Sep 2026 19:26:41 +0200	[thread overview]
Message-ID: <7996121.EvYhyI6sBW@sven-desktop> (raw)
In-Reply-To: <20260907081824.2474040-12-sw@simonwunderlich.de>

[-- Attachment #1: Type: text/plain, Size: 2332 bytes --]

https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260907081824.2474040-1-sw%40simonwunderlich.de?part=11


[...]
> Discovered by: opus-5 · Missed by: opus-4-7, gpt-5-6-sol, sashiko-gemini · Confirmed by: gpt-5-6-sol
> Is the "was never announced" wording in this new kernel doc a bit too
> strong?  The body of the same function documents the opposite case a few
> lines later:
> 
> net/batman-adv/translation-table.c:batadv_tt_local_remove_now() {
> 	/* batadv_tt_local_transition_new() may have committed the entry and
> 	 * thus counted it in the local table size since the
> 	 * BATADV_TT_CLIENT_NEW check in batadv_tt_local_mark_removed().
> 	 */
> 	if (!(batadv_tt_flags_get(common) & BATADV_TT_CLIENT_NEW))
> 		batadv_tt_local_size_dec(bat_priv, common->vid);
> }
> 
> batadv_tt_local_mark_removed() drops common->flags_lock before returning
> and batadv_tt_local_remove() holds no other lock, while
> batadv_tt_local_transition_new() only holds the local list_lock and
> flags_lock:
> 
> batadv_tt_local_commit_changes_nolock()
>   batadv_tt_local_transition_new()   /* clears BATADV_TT_CLIENT_NEW,
>                                         batadv_tt_local_size_inc() */
>   batadv_tt_local_update_crc()
>   atomic_inc(&bat_priv->tt.vn)
> 
> So in that window the entry can be committed, counted and announced under
> the current ttvn, and batadv_tt_local_remove_now() still unlinks it from
> bat_priv->tt.local_hash instead of leaving it BATADV_TT_CLIENT_PENDING
> until the next ttvn increment, as described by
> batadv_tt_local_set_pending_event():
> 
>  * Schedule the TT change announcement for the entry. The entry is kept in the
>  * local table until the next TTVN increment so that a consistency-check
>  * response can still be answered.
> 
> Would it make sense either to soften the new kernel doc (and the matching
> sentence in the commit message, "A client which was added after the last
> ttvn increment was never announced and can be dropped from the local table
> right away") to mention that the entry may already have been committed, or
> to fall back to the pending path when the NEW flag turns out to be cleared?

See https://patchwork.open-mesh.org/project/b.a.t.m.a.n./patch/20260908-sashiko-kdoc-v1-3-535b498f2519@narfation.org/

Regards,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2026-09-08 17:27 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-07  8:18 [PATCH net-next 00/15] pull request for net-next: batman-adv 2026-09-07 Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 01/15] batman-adv: tt: look up wifi state of incoming interface in helper Simon Wunderlich
2026-09-11  1:10   ` patchwork-bot+netdevbpf
2026-09-07  8:18 ` [PATCH net-next 02/15] batman-adv: tt: extract allocation of new local entries Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 03/15] batman-adv: tt: replace forward gotos in batadv_tt_local_add() Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 04/15] batman-adv: tt: extract refresh of existing local entries Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 05/15] batman-adv: tt: extract update of dynamic client flags Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 06/15] batman-adv: tt: extract allocation of new global entries Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 07/15] batman-adv: tt: extract merging of flags into existing " Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 08/15] batman-adv: tt: replace add_orig_entry goto in batadv_tt_global_add() Simon Wunderlich
     [not found]   ` <20260908082701.B6CCD1F00A3A@smtp.kernel.org>
2026-09-08  9:22     ` Sven Eckelmann
2026-09-07  8:18 ` [PATCH net-next 09/15] batman-adv: tt: extract removal of the superseded local entry Simon Wunderlich
2026-09-08 17:26   ` Sven Eckelmann
2026-09-07  8:18 ` [PATCH net-next 10/15] batman-adv: tt: extract marking of a removed " Simon Wunderlich
2026-09-08 17:26   ` Sven Eckelmann
2026-09-07  8:18 ` [PATCH net-next 11/15] batman-adv: tt: extract immediate purge of a " Simon Wunderlich
2026-09-08 17:26   ` Sven Eckelmann [this message]
2026-09-07  8:18 ` [PATCH net-next 12/15] batman-adv: tt: drop the cleanup label from batadv_tt_local_remove() Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 13/15] batman-adv: tt: clarify kernel doc for batadv_tt_local_set_pending_event() Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 14/15] batman-adv: bat_iv: fix ogm_neigh_is_sob parameters references Simon Wunderlich
2026-09-07  8:18 ` [PATCH net-next 15/15] batman-adv: correct batadv_hash_remove kdoc return type Simon Wunderlich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7996121.EvYhyI6sBW@sven-desktop \
    --to=sven@narfation.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sw@simonwunderlich.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.