From nobody Tue Feb 14 18:03:57 2023 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 4PGTby29G3z3pnRt; Tue, 14 Feb 2023 18:03:58 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PGTby1cXVz3h0Z; Tue, 14 Feb 2023 18:03:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1676397838; 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=kvMjKwrBo5ZRoAfj7gdAot6XdeYaXz9NZsKGuw97jxU=; b=rZrDvXGPZAKL64k3YVzx6bXJtC0IgdPLkzdQcALdpLV9/9oep0i+J6zv3dm95tXiqzBo+v Lh1kfUYYDjLNe9PBksaEfmuiwU4f1tXydRyVJu0iloPOpKZ9cH/FxWO8Z3zrS2Zm26Vdhs QNy+aDVPEkcf2tTirfmjK1XBuxAl3JFNS6GAwz3YbIULD+5RDgqEWoQqJBrI/+SVsqzyr0 MYO9EPZoAoQ51fLdhaulQ0GrbCzkya39sTHyDEn95ZhYyjZL9RllDtdcgwDuS4auSvfDvu TS/uBZKPlA4teEpKnCcg0L2aqQSZ26QSujvRlOTLh6i5ekgl+OjreVVQCvy78Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1676397838; 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=kvMjKwrBo5ZRoAfj7gdAot6XdeYaXz9NZsKGuw97jxU=; b=K8x6DVIbbjUaN50QNlLBvjJgvlBdPirPFQtoDS5jHdijoVdPIaYVDVjFgJnr5kwRH2zgbA bDp3L+NhQDF2T6r+GEhuLrZVNJ7nKxqrTP2A9kKfLctsRgpzLlcTwIuBCuuYF7PcHkzFMi HliVjmdN2o2hmaJexC+n/7v/c6KVkoDy10SmmrBFJcFCilg1AWrs9gqb/Wir1K1dx1Am4a MN14pyvNOwyMzMwuZ/cxEvRwtlX5tqoJtF2THJdAaHngpu3yFyRyJaEZyFCcQPTLynhwsg 9pogByvhBboNnVe8SmR/E7EuFjZQdK3hDcGDhdYzOxXAdM6EkrLBya1KQey8sw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1676397838; a=rsa-sha256; cv=none; b=Q0ZPCgFdjfqswV8eT+KLNk1IGVPQrUb4Pz1FnLUauexeDuRcOl7m5gzTOIrRnxP+4PuJPg 78dYDq0mWcLbKuW6PQvOqgVphyIvKwrqUTNuKdoDGkF8RgUz7VokjiuWfPy+IIE3h6rGuj XFBnp2CC99/HjQe2cVA6aVhb8vywZ82d6VRUjFN/XTnUAINeI6pXWMHyG90jkAoHnj2+gu dlVDP+QYwr/+6Dv2qcn0fFr08os7FTpBh4RBPUSxbY69jVovCOk3VbkTBJlK4oNtmI+wlS Vq24RvMc53lYOOPfm93AFSYgB7VJ4kO+cMr8TtCiy0lUb0D9+ReTzQWAtYkLmg== 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 4PGTby0dY6z17TH; Tue, 14 Feb 2023 18:03:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 31EI3vC2059090; Tue, 14 Feb 2023 18:03:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 31EI3vin059089; Tue, 14 Feb 2023 18:03:57 GMT (envelope-from git) Date: Tue, 14 Feb 2023 18:03:57 GMT Message-Id: <202302141803.31EI3vin059089@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: a22561501ff8 - main - net: use pfil_mbuf_{in,out} where we always have an mbuf 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: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: 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: a22561501ff807b227305617ea2fb46072ce8b06 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=a22561501ff807b227305617ea2fb46072ce8b06 commit a22561501ff807b227305617ea2fb46072ce8b06 Author: Gleb Smirnoff AuthorDate: 2023-02-14 18:02:49 +0000 Commit: Gleb Smirnoff CommitDate: 2023-02-14 18:02:49 +0000 net: use pfil_mbuf_{in,out} where we always have an mbuf This finalizes what has been started in 0b70e3e78b0. Reviewed by: kp, mjg Differential revision: https://reviews.freebsd.org/D37976 --- sys/dev/virtio/network/if_vtnet.c | 6 +----- sys/net/if_bridge.c | 32 +++++++++++++++++++------------- sys/net/if_enc.c | 8 ++++++-- sys/net/if_ethersubr.c | 5 ++--- sys/netinet/ip_output.c | 3 +-- 5 files changed, 29 insertions(+), 25 deletions(-) diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c index 505a62b01b4e..41eaa6a56086 100644 --- a/sys/dev/virtio/network/if_vtnet.c +++ b/sys/dev/virtio/network/if_vtnet.c @@ -2137,12 +2137,8 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) if (PFIL_HOOKED_IN(sc->vtnet_pfil)) { pfil_return_t pfil; - pfil = pfil_run_hooks(sc->vtnet_pfil, &m, ifp, PFIL_IN, - NULL); + pfil = pfil_mbuf_in(sc->vtnet_pfil, &m, ifp, NULL); switch (pfil) { - case PFIL_REALLOCED: - m = pfil_mem2mbuf(m->m_data); - break; case PFIL_DROPPED: case PFIL_CONSUMED: continue; diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 5a4954e84869..9f99434dd4e0 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -3365,7 +3365,7 @@ bridge_pfil(struct mbuf **mp, struct ifnet *bifp, struct ifnet *ifp, int dir) /* Run the packet through pfil before stripping link headers */ if (PFIL_HOOKED_OUT(V_link_pfil_head) && V_pfil_ipfw != 0 && dir == PFIL_OUT && ifp != NULL) { - switch (pfil_run_hooks(V_link_pfil_head, mp, ifp, dir, NULL)) { + switch (pfil_mbuf_out(V_link_pfil_head, mp, ifp, NULL)) { case PFIL_DROPPED: return (EACCES); case PFIL_CONSUMED: @@ -3419,17 +3419,20 @@ bridge_pfil(struct mbuf **mp, struct ifnet *bifp, struct ifnet *ifp, int dir) * in_if -> bridge_if -> out_if */ if (V_pfil_bridge && dir == PFIL_OUT && bifp != NULL && (rv = - pfil_run_hooks(V_inet_pfil_head, mp, bifp, dir, NULL)) != + pfil_mbuf_out(V_inet_pfil_head, mp, bifp, NULL)) != PFIL_PASS) break; - if (V_pfil_member && ifp != NULL && (rv = - pfil_run_hooks(V_inet_pfil_head, mp, ifp, dir, NULL)) != - PFIL_PASS) - break; + if (V_pfil_member && ifp != NULL) { + rv = (dir == PFIL_OUT) ? + pfil_mbuf_out(V_inet_pfil_head, mp, ifp, NULL) : + pfil_mbuf_in(V_inet_pfil_head, mp, ifp, NULL); + if (rv != PFIL_PASS) + break; + } if (V_pfil_bridge && dir == PFIL_IN && bifp != NULL && (rv = - pfil_run_hooks(V_inet_pfil_head, mp, bifp, dir, NULL)) != + pfil_mbuf_in(V_inet_pfil_head, mp, bifp, NULL)) != PFIL_PASS) break; @@ -3467,17 +3470,20 @@ bridge_pfil(struct mbuf **mp, struct ifnet *bifp, struct ifnet *ifp, int dir) #ifdef INET6 case ETHERTYPE_IPV6: if (V_pfil_bridge && dir == PFIL_OUT && bifp != NULL && (rv = - pfil_run_hooks(V_inet6_pfil_head, mp, bifp, dir, NULL)) != + pfil_mbuf_out(V_inet6_pfil_head, mp, bifp, NULL)) != PFIL_PASS) break; - if (V_pfil_member && ifp != NULL && (rv = - pfil_run_hooks(V_inet6_pfil_head, mp, ifp, dir, NULL)) != - PFIL_PASS) - break; + if (V_pfil_member && ifp != NULL) { + rv = (dir == PFIL_OUT) ? + pfil_mbuf_out(V_inet6_pfil_head, mp, ifp, NULL) : + pfil_mbuf_in(V_inet6_pfil_head, mp, ifp, NULL); + if (rv != PFIL_PASS) + break; + } if (V_pfil_bridge && dir == PFIL_IN && bifp != NULL && (rv = - pfil_run_hooks(V_inet6_pfil_head, mp, bifp, dir, NULL)) != + pfil_mbuf_in(V_inet6_pfil_head, mp, bifp, NULL)) != PFIL_PASS) break; break; diff --git a/sys/net/if_enc.c b/sys/net/if_enc.c index da6ce7a1a815..b5ea1c68692c 100644 --- a/sys/net/if_enc.c +++ b/sys/net/if_enc.c @@ -247,7 +247,7 @@ enc_hhook(int32_t hhook_type, int32_t hhook_id, void *udata, void *ctx_data, struct enc_softc *sc; struct ifnet *ifp, *rcvif; struct pfil_head *ph; - int pdir; + int pdir, ret; sc = (struct enc_softc *)udata; ifp = sc->sc_ifp; @@ -307,7 +307,11 @@ enc_hhook(int32_t hhook_type, int32_t hhook_id, void *udata, void *ctx_data, /* Make a packet looks like it was received on enc(4) */ rcvif = (*ctx->mp)->m_pkthdr.rcvif; (*ctx->mp)->m_pkthdr.rcvif = ifp; - if (pfil_run_hooks(ph, ctx->mp, ifp, pdir, ctx->inp) != PFIL_PASS) { + if (pdir == PFIL_IN) + ret = pfil_mbuf_in(ph, ctx->mp, ifp, ctx->inp); + else + ret = pfil_mbuf_out(ph, ctx->mp, ifp, ctx->inp); + if (ret != PFIL_PASS) { *ctx->mp = NULL; /* consumed by filter */ return (EACCES); } diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index 8bc66497e161..34ff4ac22e7f 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -474,8 +474,7 @@ ether_output_frame(struct ifnet *ifp, struct mbuf *m) return (0); if (PFIL_HOOKED_OUT(V_link_pfil_head)) - switch (pfil_run_hooks(V_link_pfil_head, &m, ifp, PFIL_OUT, - NULL)) { + switch (pfil_mbuf_out(V_link_pfil_head, &m, ifp, NULL)) { case PFIL_DROPPED: return (EACCES); case PFIL_CONSUMED: @@ -853,7 +852,7 @@ ether_demux(struct ifnet *ifp, struct mbuf *m) /* Do not grab PROMISC frames in case we are re-entered. */ if (PFIL_HOOKED_IN(V_link_pfil_head) && !(m->m_flags & M_PROMISC)) { - i = pfil_run_hooks(V_link_pfil_head, &m, ifp, PFIL_IN, NULL); + i = pfil_mbuf_in(V_link_pfil_head, &m, ifp, NULL); if (i != 0 || m == NULL) return; } diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 739138a6f791..e62935b247da 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -116,14 +116,13 @@ ip_output_pfil(struct mbuf **mp, struct ifnet *ifp, int flags, struct mbuf *m; struct in_addr odst; struct ip *ip; - int pflags = PFIL_OUT; m = *mp; ip = mtod(m, struct ip *); /* Run through list of hooks for output packets. */ odst.s_addr = ip->ip_dst.s_addr; - switch (pfil_run_hooks(V_inet_pfil_head, mp, ifp, pflags, inp)) { + switch (pfil_mbuf_out(V_inet_pfil_head, mp, ifp, inp)) { case PFIL_DROPPED: *error = EACCES; /* FALLTHROUGH */