From nobody Thu Dec 29 19:43:35 2022 X-Original-To: dev-commits-src-all@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 4Njf2c0L07z2l4l7; Thu, 29 Dec 2022 19:43:36 +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 4Njf2b6Q5jz3Mqb; Thu, 29 Dec 2022 19:43:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1672343015; 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=mMBKMwvtRthXx6Y2p8yCSHHtYBZP+6sumIc0rYX+rjU=; b=tCN/mZMLyJuv4qCpxV+6dmew85EXZqK+NWQtrXritODBr7Z+0NdQmtrN8guBiU0U0zWFPa Glb/NsqZ/qW3W+JuAkJAce96jQXSG1HPQVP/n7kKUfIeng5QkqvDLRynKfTzg/QM4itUtN lD/NjL7u7EvMpVYhweP30r9OigZcBU+tl1Y4H8YDsxTUhpYdZQu/3d2olMiZJ08n8ll4X7 yug8UtvBG7tHX3siibtvnQ5bWCMZmHLNnD9xKoB5vMx9SQehY56UlmLrZmfhyJpYMQtK0X zVXVyU1MmlyG0AFGxV2Jcyzj7xaYxNfVUXx/j7M2scbIXN9iUiy49kZsBA3ZjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1672343015; 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=mMBKMwvtRthXx6Y2p8yCSHHtYBZP+6sumIc0rYX+rjU=; b=hW3q94Lh49ZtAEfPWdHc6BOOuazPMYNcMEM5qw/0c/U1M/AOHT4j8dOuHQ150qaHwJiWLA TsbPwRJGudgbtAmMQllJV//S7DdWHPO9LOxSQcbL0EEW8av1FvwPhziGsEOgoRhEUHcqal Z/jOR9GtBu5tcA7pRIn60rJIqOijNLohxioItWxJiCoLVVHozLaIxaaTpuG98nX8H2DryO wcPiI24LsmaY9WToOcKxm3BadYYZ2GAFI9aoevVC+LL0tEXfQWPrHWdn2+Ug/3aDLQb3TK BucOuGT3oPGA68Trb8CH6s3ds2fwOb5RUopWaS+iuJjaWu3nsifn1KSolOTmWA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1672343015; a=rsa-sha256; cv=none; b=QB70+gV+8NCJRx5W2K97JkwRgJqr9yAG/4Jkd+6HmwWa0+7Xg4c0VFbuee4D2wMIkdF5wr mZq/AQUd10jUghn7nz2JUK+oxFyCxW2YbpOdQ5Ps9Omr+zli33CEzTOVqJDEjF064QNbuo sNes1PZznfhCrGA2WEOkcvHXSKb9L2l9E5EgozRVtefC+66Jb+G//ZOVTfHI9BkMgroHJb R+CzZBw2CtSdyWucS23P/IBX1QV/LWw1tWyDc7hUXtYlnsT81SVyxzylHh+ObE0klMS/Hr l4UTNiFfi6Q1ZEGw9XtAwntrwPJZKbUkNA9d1kbzKhgL5Osie1XRYSx0/fhTZA== 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 4Njf2b5TcXzg4M; Thu, 29 Dec 2022 19:43:35 +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 2BTJhZUW047061; Thu, 29 Dec 2022 19:43:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2BTJhZL2047060; Thu, 29 Dec 2022 19:43:35 GMT (envelope-from git) Date: Thu, 29 Dec 2022 19:43:35 GMT Message-Id: <202212291943.2BTJhZL2047060@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 7063b9974f8a - main - ccr: Retire ccr_softc member in struct adapter. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7063b9974f8a39d860b7abd03884324e71994f65 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=7063b9974f8a39d860b7abd03884324e71994f65 commit 7063b9974f8a39d860b7abd03884324e71994f65 Author: John Baldwin AuthorDate: 2022-12-29 19:39:28 +0000 Commit: John Baldwin CommitDate: 2022-12-29 19:39:28 +0000 ccr: Retire ccr_softc member in struct adapter. Prior to Conrad's changes to replace session integer IDs with a pointer to the driver-specific state in commit 1b0909d51a8aa, the driver had to find the softc pointer from the adapter before it could locate the ccr_session structure for a completed request. Since Conrad's changes, the ccr_session pointer can now be obtained directly from the crp. Add a backpoint from ccr_session back to ccr_softc and use this in place of the ccr_softc member in cxgbe's struct adapter. Sponsored by: Chelsio Communications --- sys/dev/cxgbe/adapter.h | 1 - sys/dev/cxgbe/crypto/t4_crypto.c | 81 ++++++++++++++++++++-------------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/sys/dev/cxgbe/adapter.h b/sys/dev/cxgbe/adapter.h index 665de371a2a2..5460462c5f51 100644 --- a/sys/dev/cxgbe/adapter.h +++ b/sys/dev/cxgbe/adapter.h @@ -940,7 +940,6 @@ struct adapter { void *iwarp_softc; /* (struct c4iw_dev *) */ struct iw_tunables iwt; void *iscsi_ulp_softc; /* (struct cxgbei_data *) */ - void *ccr_softc; /* (struct ccr_softc *) */ struct l2t_data *l2t; /* L2 table */ struct smt_data *smt; /* Source MAC Table */ struct tid_info tids; diff --git a/sys/dev/cxgbe/crypto/t4_crypto.c b/sys/dev/cxgbe/crypto/t4_crypto.c index 81f4f670a159..c4d0bbf868a9 100644 --- a/sys/dev/cxgbe/crypto/t4_crypto.c +++ b/sys/dev/cxgbe/crypto/t4_crypto.c @@ -177,43 +177,6 @@ struct ccr_port { counter_u64_t stats_completed; }; -struct ccr_session { -#ifdef INVARIANTS - int pending; -#endif - enum { HASH, HMAC, CIPHER, ETA, GCM, CCM } mode; - struct ccr_port *port; - union { - struct ccr_session_hmac hmac; - struct ccr_session_gmac gmac; - struct ccr_session_ccm_mac ccm_mac; - }; - struct ccr_session_cipher cipher; - struct mtx lock; - - /* - * A fallback software session is used for certain GCM/CCM - * requests that the hardware can't handle such as requests - * with only AAD and no payload. - */ - crypto_session_t sw_session; - - /* - * Pre-allocate S/G lists used when preparing a work request. - * 'sg_input' contains an sglist describing the entire input - * buffer for a 'struct cryptop'. 'sg_output' contains an - * sglist describing the entire output buffer. 'sg_ulptx' is - * used to describe the data the engine should DMA as input - * via ULPTX_SGL. 'sg_dsgl' is used to describe the - * destination that cipher text and a tag should be written - * to. - */ - struct sglist *sg_input; - struct sglist *sg_output; - struct sglist *sg_ulptx; - struct sglist *sg_dsgl; -}; - struct ccr_softc { struct adapter *adapter; device_t dev; @@ -253,6 +216,44 @@ struct ccr_softc { struct sysctl_ctx_list ctx; }; +struct ccr_session { +#ifdef INVARIANTS + int pending; +#endif + enum { HASH, HMAC, CIPHER, ETA, GCM, CCM } mode; + struct ccr_softc *sc; + struct ccr_port *port; + union { + struct ccr_session_hmac hmac; + struct ccr_session_gmac gmac; + struct ccr_session_ccm_mac ccm_mac; + }; + struct ccr_session_cipher cipher; + struct mtx lock; + + /* + * A fallback software session is used for certain GCM/CCM + * requests that the hardware can't handle such as requests + * with only AAD and no payload. + */ + crypto_session_t sw_session; + + /* + * Pre-allocate S/G lists used when preparing a work request. + * 'sg_input' contains an sglist describing the entire input + * buffer for a 'struct cryptop'. 'sg_output' contains an + * sglist describing the entire output buffer. 'sg_ulptx' is + * used to describe the data the engine should DMA as input + * via ULPTX_SGL. 'sg_dsgl' is used to describe the + * destination that cipher text and a tag should be written + * to. + */ + struct sglist *sg_input; + struct sglist *sg_output; + struct sglist *sg_ulptx; + struct sglist *sg_dsgl; +}; + /* * Crypto requests involve two kind of scatter/gather lists. * @@ -1964,7 +1965,6 @@ ccr_attach(device_t dev) return (ENXIO); } sc->cid = cid; - sc->adapter->ccr_softc = sc; /* * The FID must be the first RXQ for port 0 regardless of @@ -2043,7 +2043,6 @@ ccr_detach(device_t dev) } sglist_free(sc->sg_iv_aad); free(sc->iv_aad_buf, M_CCR); - sc->adapter->ccr_softc = NULL; return (0); } @@ -2425,6 +2424,7 @@ ccr_newsession(device_t dev, crypto_session_t cses, } sc = device_get_softc(dev); + s->sc = sc; mtx_lock(&sc->lock); if (sc->detaching) { @@ -2652,7 +2652,7 @@ static int do_cpl6_fw_pld(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m) { - struct ccr_softc *sc = iq->adapter->ccr_softc; + struct ccr_softc *sc; struct ccr_session *s; const struct cpl_fw6_pld *cpl; struct cryptop *crp; @@ -2672,6 +2672,7 @@ do_cpl6_fw_pld(struct sge_iq *iq, const struct rss_header *rss, else error = 0; + sc = s->sc; #ifdef INVARIANTS mtx_lock(&s->lock); s->pending--;