From nobody Wed Feb 5 00:54:38 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Ynhb33bCbz5mn0Z; Wed, 05 Feb 2025 00:54:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ynhb26zkVz3bZb; Wed, 05 Feb 2025 00:54:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738716879; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o2C3f14XE+OtP6tUgRXHwLigaekgW+WxyMqe1tRid9I=; b=vVJ3Up6mP/+DmKd3cHxwI21fn4U51Gh4qIX0ltyR+NqUvYeJZKSu349w/eVbcJM9nfaxaM Ln3syHYTJjQJhi3YZXmZa7dBqqbzJbPE/m48oW4lE1ffIpzyBiS3e3bcQiy3AUHtyjiD76 32xD2n+LRdhl06cCRBoCBQC3oz1jFqnfQ6OITbsdDykwtVXbgCZ2Tonecz7KdyPiQDzdHX 8jV3aA8GCSrt4b7Q8NkNttw/3VXr2YW6uE7iJ7KWhsaVhzG7tQfCZXROOAT5YpbpNbusOP BQQiJ1aMoXvGf34XA+ujBxCcxN2CN0oPn0KmDsjpYipbDGXTgbp8grt2Sb+imw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738716879; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o2C3f14XE+OtP6tUgRXHwLigaekgW+WxyMqe1tRid9I=; b=HjPpLWyGwNfYGsylF9ZePJsXMeF5dUxKMO9CcBLCeysWcPQ+3k+jvmdMH5NWD+6fA3ie6Q oUrBN5ZedVlnRmIo6dZnPuQ6GBnhABuOoUF6srDESDPOfkeH2N3L0vxx2EQ/n4tMqZwYCL qiZEjIsdaIJTKb/RJpF8Ga4sO0dIlIIiKCSvYbz20PF+THDc8mJNTMzgoidcR2tI6Rhgmx ft9fiE1NZ4y8kzUMa2p2mxawteW4NvkdOFzCGEAXVYuPsj87+4hT/uti/7zHyEJ1hvxdNV OUozyrmBKVB9SgZaR9MDMF/5tNuNFn+Ca7Nl5g7ra2PDymo0aS9kpNuZfrXtuA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1738716879; a=rsa-sha256; cv=none; b=yd5rNmyQtZK+syQQnlVRslcBCSza1GAyG8K28+R0MWjGzQCmojiVT6vy+3o/adQQQW3TWf 14QwL9ckEpt7kP9nkVyAb80kS7s+JD25Dpj21G3oRBcCUUmVZsRRh8ligzuz1JG+piSfNT eCxgP/mmElO39mZJN49BP1vg46Hc7e5qe/fvzIKnRc2keQA/UdQ4zavDWYSGNgwYPxWLAn Gl4j6IFUKUY5Odme4bN0Y7YlbBvl/KhnYaTVdPkYvloNTsihkU25bSICzREeGVEMVXuEQY 66j3bb90DiTzTrMKpA8vCnnNAZzLxhOx9IjnNaeUliUJjmWgLk9+/qqPThBYug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ynhb26bVGzTVk; Wed, 05 Feb 2025 00:54:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5150scvW050785; Wed, 5 Feb 2025 00:54:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5150sc6Y050782; Wed, 5 Feb 2025 00:54:38 GMT (envelope-from git) Date: Wed, 5 Feb 2025 00:54:38 GMT Message-Id: <202502050054.5150sc6Y050782@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 164dec88e8fa - main - netlink: rename functions that manipulate group membership of a pcb List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 164dec88e8facbeb29fd85f0156d041c9491d21d Auto-Submitted: auto-generated The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=164dec88e8facbeb29fd85f0156d041c9491d21d commit 164dec88e8facbeb29fd85f0156d041c9491d21d Author: Gleb Smirnoff AuthorDate: 2025-02-05 00:36:14 +0000 Commit: Gleb Smirnoff CommitDate: 2025-02-05 00:54:21 +0000 netlink: rename functions that manipulate group membership of a pcb Use nlp_ prefix for them, cause they operate on single pcb. Use words "join" and "leave" instead of "add" and "del", cause we aren't creating or destroying groups, we are just joining or leaving. Really assert locks instead of just having "locked" suffix. --- sys/netlink/netlink_domain.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/sys/netlink/netlink_domain.c b/sys/netlink/netlink_domain.c index 0567537d1d1d..e71ea1ce1e09 100644 --- a/sys/netlink/netlink_domain.c +++ b/sys/netlink/netlink_domain.c @@ -138,9 +138,10 @@ nl_port_lookup(uint32_t port_id) } static void -nl_add_group_locked(struct nlpcb *nlp, unsigned int group_id) +nlp_join_group(struct nlpcb *nlp, unsigned int group_id) { MPASS(group_id < NLP_MAX_GROUPS); + NLCTL_WLOCK_ASSERT(); /* TODO: add family handler callback */ if (!nlp_unconstrained_vnet(nlp)) @@ -150,28 +151,32 @@ nl_add_group_locked(struct nlpcb *nlp, unsigned int group_id) } static void -nl_del_group_locked(struct nlpcb *nlp, unsigned int group_id) +nlp_leave_group(struct nlpcb *nlp, unsigned int group_id) { MPASS(group_id < NLP_MAX_GROUPS); + NLCTL_WLOCK_ASSERT(); BIT_CLR(NLP_MAX_GROUPS, group_id, &nlp->nl_groups); } static bool -nl_isset_group_locked(struct nlpcb *nlp, unsigned int group_id) +nlp_memberof_group(struct nlpcb *nlp, unsigned int group_id) { MPASS(group_id < NLP_MAX_GROUPS); + NLCTL_LOCK_ASSERT(); return (BIT_ISSET(NLP_MAX_GROUPS, group_id, &nlp->nl_groups)); } static uint32_t -nl_get_groups_compat(struct nlpcb *nlp) +nlp_get_groups_compat(struct nlpcb *nlp) { uint32_t groups_mask = 0; + NLCTL_LOCK_ASSERT(); + for (int i = 0; i < 32; i++) { - if (nl_isset_group_locked(nlp, i + 1)) + if (nlp_memberof_group(nlp, i + 1)) groups_mask |= (1 << i); } @@ -216,7 +221,7 @@ nl_send_group(struct nl_writer *nw) if ((nw->group.priv == 0 || priv_check_cred( nlp->nl_socket->so_cred, nw->group.priv) == 0) && nlp->nl_proto == nw->group.proto && - nl_isset_group_locked(nlp, nw->group.id)) { + nlp_memberof_group(nlp, nw->group.id)) { if (nlp_last != NULL) { struct nl_buf *copy; @@ -287,9 +292,9 @@ nl_bind_locked(struct nlpcb *nlp, struct sockaddr_nl *snl) } for (int i = 0; i < 32; i++) { if (snl->nl_groups & ((uint32_t)1 << i)) - nl_add_group_locked(nlp, i + 1); + nlp_join_group(nlp, i + 1); else - nl_del_group_locked(nlp, i + 1); + nlp_leave_group(nlp, i + 1); } return (0); @@ -384,7 +389,7 @@ nl_assign_port(struct nlpcb *nlp, uint32_t port_id) NLCTL_WLOCK(); NLP_LOCK(nlp); - snl.nl_groups = nl_get_groups_compat(nlp); + snl.nl_groups = nlp_get_groups_compat(nlp); error = nl_bind_locked(nlp, &snl); NLP_UNLOCK(nlp); NLCTL_WUNLOCK(); @@ -848,9 +853,9 @@ nl_ctloutput(struct socket *so, struct sockopt *sopt) NLCTL_WLOCK(); if (sopt->sopt_name == NETLINK_ADD_MEMBERSHIP) - nl_add_group_locked(nlp, optval); + nlp_join_group(nlp, optval); else - nl_del_group_locked(nlp, optval); + nlp_leave_group(nlp, optval); NLCTL_WUNLOCK(); break; case NETLINK_CAP_ACK: @@ -883,7 +888,7 @@ nl_ctloutput(struct socket *so, struct sockopt *sopt) switch (sopt->sopt_name) { case NETLINK_LIST_MEMBERSHIPS: NLCTL_RLOCK(); - optval = nl_get_groups_compat(nlp); + optval = nlp_get_groups_compat(nlp); NLCTL_RUNLOCK(); error = sooptcopyout(sopt, &optval, sizeof(optval)); break;