Skip to content

Commit 552930e

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 <jinliangw@google.com>
1 parent 3506e7d commit 552930e

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
@@ -1885,6 +1885,22 @@ static int remove_peer(struct peer *peer)
18851885
return -EPROTO;
18861886
}
18871887

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

18901906
// Clear it

0 commit comments

Comments
 (0)