From 552930e1ab3226bcd6769a4de62b23062a83cd3e Mon Sep 17 00:00:00 2001 From: Jinliang Wang Date: Tue, 23 Sep 2025 22:56:00 -0700 Subject: [PATCH] mctpd: remove MCTP endpoints behind MCTP bridge Tested: The bridged MCTP endpoints are removed when interface is removed or when MCTP bridge EID is removed. Signed-off-by: Jinliang Wang --- src/mctpd.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/mctpd.c b/src/mctpd.c index 820db9c..d5f28c1 100644 --- a/src/mctpd.c +++ b/src/mctpd.c @@ -1885,6 +1885,22 @@ static int remove_peer(struct peer *peer) return -EPROTO; } + // Remove peers after MCTP bridge + for (uint8_t i = 0; i < peer->pool_size; i++) { + // Avoids overflow + if (peer->pool_start > 255 - i) + break; + uint8_t eid = peer->pool_start + i; + if (n->peers[eid]) { + int rc = remove_peer(n->peers[eid]); + if (rc) { + bug_warn( + "Failed to remove bridged peer: net %u eid %u, rc = %d", + n->net, eid, rc); + } + } + } + unpublish_peer(peer); // Clear it