Skip to content

Commit 8593ffa

Browse files
committed
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 <[email protected]>
1 parent ef0d2dc commit 8593ffa

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/mctpd.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,6 +1883,22 @@ static int remove_peer(struct peer *peer)
18831883
return -EPROTO;
18841884
}
18851885

1886+
// Remove peers after MCTP bridge
1887+
for (uint8_t i = 0; i < peer->pool_size; i++) {
1888+
// Avoids overflow
1889+
if (peer->pool_start > 255 - i)
1890+
break;
1891+
uint8_t eid = peer->pool_start + i;
1892+
if (n->peers[eid]) {
1893+
int rc = remove_peer(n->peers[eid]);
1894+
if (rc) {
1895+
bug_warn(
1896+
"Failed to remove bridged peer: net %u eid %u, rc = %d",
1897+
n->net, eid, rc);
1898+
}
1899+
}
1900+
}
1901+
18861902
unpublish_peer(peer);
18871903

18881904
// Clear it

0 commit comments

Comments
 (0)