From nobody Fri Sep 4 05:19:45 2026 Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com [209.85.210.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 186FD378D9A for ; Fri, 4 Sep 2026 01:34:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485661; cv=none; b=pN68mycXB48usTgDLn8XfhvX0RgiKWBEoJPTOUEVDJqmcR6xcFkOtv1myW8RrD3U4YKLFwzEICz6MRZo7ExpHIJ3Paq5CqIfyTzbLp05Z7jqi8hr8xaPb0Lw/vrc5ikAzLCRgGcKzUUqaugafnKK/lT2rEFLmPmmOx3h/G8wKHQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485661; c=relaxed/simple; bh=mp+W/NanRi6LcS0jIyEjAdqNQV6N3tjeFQnIyxmGDfA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ir4h/rG+9gn+MbpRzkes8Hu6l3GDDx1or2O4W9IGJnbcvZVDwzUs4w62shvBirJIeanqCe2v2vYZANCNnV1StHSOV3YGhkNBziU6PAkOsQEL7CNNXpI9PSM0g5ti9EFd+OUHppZsWhdcXE6KeRcB7fR3mfcpVpIn8rqaTTzCJtA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gqkZ6vA+; arc=none smtp.client-ip=209.85.210.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gqkZ6vA+" Received: by mail-ot1-f41.google.com with SMTP id 46e09a7af769-7e9fc3de7ceso252431a34.1 for ; Thu, 03 Sep 2026 18:34:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788485659; x=1789090459; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xnSRfmxyuoGSVIEIapT3+f2N+j9Dyvafdc53a5iR7kI=; b=gqkZ6vA+bxBYWvZXv5QDaxrG+jr6Uj3iDEU0d7h3LLScyxpyG+FtRg60BqZ+G+wdQ9 j7PL9IsGXeBoWlQfZ4b+I7gJ9AbGFg6XVRf6NyJbg/H3ZYuwLLrBnvhf5HZIgLNPWO2e iwXfeGrkGR6Da1FaCacMKtUk4zxwTtHDeyaqMzwN0JCg5XX4EC2z5DxHfF1Y+bnDcWTo 19yNJSqELtsmr89POnKIipq/WnqGFnnCXe8hRnZIbtAsQzprPDOHwUpjT4iMK0P2pB4o HjWJQKAApjOgd1iIwciv7adGzVnBP5sLe34ysDaNoCaClk02KVoLjihF58htQZJivcwk Ue9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788485659; x=1789090459; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=xnSRfmxyuoGSVIEIapT3+f2N+j9Dyvafdc53a5iR7kI=; b=mL01a/6wI6GegL0igMOJUQnV8xhGR4TFfp3TPFDBbt+3ET14QX+RgvxaApzXeQLMma s0niYXysgVpws/YvT0bzYheObD24JJnLzCBZejmFSzgUQNOKuD8Y6GPAp0A7SBcwsJm9 uS7+/waEc04X9gzPWaH5ff6xKpP5lipB2A5vQiJAPVncivuUK/Aitu2LJoqohkJFQilq 4Yo7aX+zYWrXcBeMoMRNfSkywoeqndGy91w1CbWKefZLV8DHpmasYuVbAd3o4oBQwnaH PavxDy0n0KepJEeoCyYDeD7trqpWjRSAQroRQUqd9bKD2yG6sW3/If3vw+BGTcP/vBg4 hvoA== X-Forwarded-Encrypted: i=1; AKwUvBwCwkz/b2p7N5owce7WHtDmG2zkeI2KhmJQnmJJr5KTYnRLXkD6TSQRdJwdhzHyA0HemHJDz/cwDPwSz8k=@vger.kernel.org X-Gm-Message-State: AFuF++llSQLVd3yTmZgN71tb6PQEdofPrYWmvYlrr4cZU4canbjezBTF SehXe2eG0L9mcaiiHpWJYe8GqgIEEI6iA0IWGqIBKAJAhZoNDjBoqIEH X-Gm-Gg: AYBFou3sT5bRfqsmzgUFFUmTh/Vm9JXvxIZQ1VLxFmzm+0R3WXyKxsDzPaR8dvVfT3Z 53lXkjLS/FNkSiXQQEUpvigOAPZwpoSvlc49pGAaJ0oLNoy/9aQuvLLk/NYXec9uvdPw7MSsQP0 Af+k5MQrg0zwt5iJSaklQCHG1CdDBFqKF+4YuotD1WolBPIHydQiYOoq5CeLFA6XJwFo0SxHY4o pIbQrybs4987DWG4r+7UIYVHEgZ59LEYh2SbdTD/S9rvmxG0rGu++RobyivkZul4Fovo6re054P MWig0QntH8gSdn7u0n9BKjQ9gKGHo2nl+SqmVWwkDkPiGjJwYgyrp0DFXTL162gyiU3UxH96Riy LFTx3P71FQ8msHAViubHZDPnuhZckNUxa/YbLYicH348+gG+4uXyU92ZuSGk9SQ375JwIw73Ly2 iqnrvWzAlRQd+0AbYV8Xd2AGEseaUzz6VL1UQwG+NlyZRs+fAZ7q0iibMd9w== X-Received: by 2002:a05:6830:838d:b0:7d7:4fc7:21a with SMTP id 46e09a7af769-7fa1ff66b12mr2869051a34.13.1788485658946; Thu, 03 Sep 2026 18:34:18 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:40::]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7f9f470a34fsm1740895a34.3.2026.09.03.18.34.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2026 18:34:18 -0700 (PDT) From: Daniel Zahka Date: Thu, 03 Sep 2026 18:33:59 -0700 Subject: [PATCH net-next 1/4] psp: refactor psp_dev_tx_key_del() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260903-psp-prep-v1-1-d47e9c4c375d@gmail.com> References: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> In-Reply-To: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> To: Jakub Kicinski , Willem de Bruijn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Andrew Lunn Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.13.0 No functional changes. Lift the list deletion and tx spi validation code into callers. Deferred key deletion code paths will need similar checks that a tx key needs removal from the underlying device, but will diverge when it comes to list handling and when to call psp_dev_ops::tx_key_del(). Also, move the predicate for tx key deletion into a helper for readability and reuse in later patches. Signed-off-by: Daniel Zahka --- net/psp/psp.h | 6 ++++++ net/psp/psp_main.c | 7 +++++-- net/psp/psp_sock.c | 11 ++++++----- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/net/psp/psp.h b/net/psp/psp.h index 86eeba823ced..8acf9ca84b55 100644 --- a/net/psp/psp.h +++ b/net/psp/psp.h @@ -53,4 +53,10 @@ static inline bool psp_dev_is_registered(struct psp_dev = *psd) return !!psd->ops; } =20 +static inline bool psp_assoc_needs_tx_key_del(struct psp_assoc *pas) +{ + lockdep_assert_held(&pas->psd->lock); + return pas->tx.spi; +} + #endif /* __PSP_PSP_H */ diff --git a/net/psp/psp_main.c b/net/psp/psp_main.c index c9c1a8826b7f..2556f0d46ef4 100644 --- a/net/psp/psp_main.c +++ b/net/psp/psp_main.c @@ -147,8 +147,11 @@ void psp_dev_unregister(struct psp_dev *psd) =20 list_splice_init(&psd->active_assocs, &psd->prev_assocs); list_splice_init(&psd->prev_assocs, &psd->stale_assocs); - list_for_each_entry_safe(pas, next, &psd->stale_assocs, assocs_list) - psp_dev_tx_key_del(psd, pas); + list_for_each_entry_safe(pas, next, &psd->stale_assocs, assocs_list) { + if (psp_assoc_needs_tx_key_del(pas)) + psp_dev_tx_key_del(psd, pas); + list_del(&pas->assocs_list); + } =20 list_for_each_entry_safe(entry, entry_tmp, &psd->assoc_dev_list, dev_list) { diff --git a/net/psp/psp_sock.c b/net/psp/psp_sock.c index 1a2a6b7516b0..045389671d7f 100644 --- a/net/psp/psp_sock.c +++ b/net/psp/psp_sock.c @@ -85,9 +85,7 @@ static int psp_dev_tx_key_add(struct psp_dev *psd, struct= psp_assoc *pas, =20 void psp_dev_tx_key_del(struct psp_dev *psd, struct psp_assoc *pas) { - if (pas->tx.spi) - psd->ops->tx_key_del(psd, pas); - list_del(&pas->assocs_list); + psd->ops->tx_key_del(psd, pas); } =20 static void psp_assoc_free(struct work_struct *work) @@ -96,8 +94,11 @@ static void psp_assoc_free(struct work_struct *work) struct psp_dev *psd =3D pas->psd; =20 mutex_lock(&psd->lock); - if (psp_dev_is_registered(psd)) - psp_dev_tx_key_del(psd, pas); + if (psp_dev_is_registered(psd)) { + if (psp_assoc_needs_tx_key_del(pas)) + psp_dev_tx_key_del(psd, pas); + list_del(&pas->assocs_list); + } mutex_unlock(&psd->lock); psp_dev_put(psd); kfree(pas); --=20 2.52.0 From nobody Fri Sep 4 05:19:45 2026 Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBD23374A0E for ; Fri, 4 Sep 2026 01:34:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485666; cv=none; b=C5gKwMMWSsaQNFiBNLOFOn11dHOkx1lkhYCpYll/7HBMLY6/61u2imS7gav3UYRtootdrS1544p5KxUqrrMWKMY5dl1loqI/12NAm/dOuh4bnuHJzcZILcFgwLR2AChJi30sv2aKF4rgFYdlpAqNU8wv8x6MfxjjmKoyrRZmP1s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485666; c=relaxed/simple; bh=GM8/BdcwHHDlK8fXJoRjxtrO0P68RwvXZANwkAZwyEc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LQYv03DmMBH6xK5SP5oC6ecz3T9kIcp/pVJLHh8Ky7+S35xzcxCuzvfiDaQSeO/tmEkCH0VcDXOAoBbu6IHPMxJTdFTcJG8lKMUl2j0/TGtsFfJ/Wb+B6kO/Dt3BgrDZ9qdCOvyuhXeWm9ANXYWuikgAQHHnq2wFVreuZSw27OI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=B1xv2Rva; arc=none smtp.client-ip=209.85.167.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="B1xv2Rva" Received: by mail-oi1-f173.google.com with SMTP id 5614622812f47-4b21f09ea42so422333b6e.2 for ; Thu, 03 Sep 2026 18:34:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788485661; x=1789090461; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7PoxR83fGLuNsJ934ewOiy/11x/6BnghjXL+0BJ5Kwc=; b=B1xv2RvarlTI7Hb2agNNNAZbSiMyabEzyjghkdY3pJQF7uyVMZWU4y/NAoaqcZtAk9 Dw/K3k/Ul3ZfZTdoBkJ+aREw+43ftsbpnqB0xJFNSC9AgMznWnROpxVb4TjGrBHx9jt2 1Z3pREj64B+HWSVSiq3pa0N5Q7SguNs6+qenfaBwuV1938sMZLCXqs63troMALBOQVMu cwk7TQ6+/DGLYmxeidK+7l6cVvulqMqIxZXoMdtRwvdah2na8uFYPLhjM/BuORK/hcIw VMAGVGapl/5bVKkZIHH5J1XyPqxlndmWjnydywFCcOH3QbMnBalUOjJI1CxkybF4R1l0 yoTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788485661; x=1789090461; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7PoxR83fGLuNsJ934ewOiy/11x/6BnghjXL+0BJ5Kwc=; b=oJZyDAXJNwxvVbSmCb3MvNHOoecqRuuHGmwK7nXYWTp0oSxhuRfpKwOCLKshJMywK3 XanirZsfoOC2Ae+JkcrmvHkkQ7QWSKtJONrFu23/esCS3ekbFzhtzk91T6HRIQydevsL GG+okk2b3SoXdA1Gco7Pd1zzUJeahpQCQrXheLhKNXFDXhuQ3sbor8r+VowfsK9nG0UF ANwbT8jz6R68DvLZecpaUr7j5IM5kKmID5h7LG5n88Smfj74eb++sZSVwIcXLrfG6mEE c2j9lD6KB5n1lwXN0i2yYO7zbOLu/1DI7l7E7p1BYRcob+CHUOI+PIqxtwKUjMALMMNh +rRw== X-Forwarded-Encrypted: i=1; AKwUvBwYpxRYocjvctpGhAbzgZlkoMI/J42rCWZMBDqBK/khh2GmGCRuEbWkzmL9UL6khyYoyOtSRc8fyfHHkM4=@vger.kernel.org X-Gm-Message-State: AFuF++mSpk1UDcE16f1j/FhiwlwSxNz60yAD/+8KxE2E6jSYTuv/9h7C pfJY+5DAEAML6cvz4TkS5DfV2HfZpqgxkc3Thh2DiuYhRONEvByzTOd1 X-Gm-Gg: AYBFou0jO9jrPkq419ERqJizSWQ5INH1Xd63+RE5JuHCSoQXkmwfvoZTEPUuoTD5YWL F9XcDce7jLnp2qYFRJYOgHPDzDOq+HJZCMpMKY4ZinGT8a/WZeMGd9OZaFmJ6Xo2eiqkzOmxkzA 1lijuC5HB3dySX1we8JzpPoWczS/Z1A+6SyYcwnaR8C8RhngyDRa+WqfrJd00RtP7FIVWN8jLzq uj5rt/tqFdNb2pmObOrAkOXalVhLo5W7LWBld8E686D687+9ZviKkfFOuePlF1T+EE2k97avl2f cxBLwNdhDAC5WAC+wQfOH6fj01Eo5+ndJw3gXwIKIzbB0OpqJNgW8zvxgsplga3GFy84/WFrA/5 +15tDZrCw8ZxshXyacFwxhq9vE58vRv1pGJiBO7PibO0+icjy8xz2hUjuIcWSYUzbX4a77rqFRe LRb1TD9HS6sQeQ6pQ/9achbqgA9jA7u60dwThFokvHKe3Em4BPy+8hdIXIPNvMcZ8MyV/6 X-Received: by 2002:a05:6808:e8b:b0:4b9:a829:f00a with SMTP id 5614622812f47-4b9a829f91dmr560749b6e.22.1788485661343; Thu, 03 Sep 2026 18:34:21 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:71::]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4b971b97c72sm1056345b6e.15.2026.09.03.18.34.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2026 18:34:20 -0700 (PDT) From: Daniel Zahka Date: Thu, 03 Sep 2026 18:34:00 -0700 Subject: [PATCH net-next 2/4] psp: move code from psp_sock_assoc_set_tx() into helper functions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260903-psp-prep-v1-2-d47e9c4c375d@gmail.com> References: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> In-Reply-To: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> To: Jakub Kicinski , Willem de Bruijn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Andrew Lunn Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.13.0 No functional changes. Lift code that needs to be called from both initial tx establishment and tx rekeying into functions that can be reused in both paths. The plaintext in recv queue checks and mss adjustment only run on initial tx keying. The dummy psp_assoc machinery will be used in both paths. psp_dev_tx_key_add() absorbs the dummy assoc machinery, as its main purpose is to populate the device specific psp_assoc:drv_data. psp_assoc_set_tx() exists so that a future change can allow psp_dev_tx_key_add() to be skipped entirely for devices that don't use an SADB, while copying of the tx spi and key into the assoc needs to happen regardless of SADB vs. no SADB. Signed-off-by: Daniel Zahka --- net/psp/psp_sock.c | 102 ++++++++++++++++++++++++++++++++++---------------= ---- 1 file changed, 65 insertions(+), 37 deletions(-) diff --git a/net/psp/psp_sock.c b/net/psp/psp_sock.c index 045389671d7f..36eb06faa54a 100644 --- a/net/psp/psp_sock.c +++ b/net/psp/psp_sock.c @@ -78,9 +78,28 @@ static struct psp_assoc *psp_assoc_dummy(struct psp_asso= c *pas) } =20 static int psp_dev_tx_key_add(struct psp_dev *psd, struct psp_assoc *pas, + struct psp_key_parsed *key, struct netlink_ext_ack *extack) { - return psd->ops->tx_key_add(psd, pas, extack); + struct psp_assoc *dummy; + int err; + + /* Pass a fake association to drivers to make sure they don't + * try to store pointers to it. For re-keying we'll need to + * re-allocate the assoc structures. + */ + dummy =3D psp_assoc_dummy(pas); + if (!dummy) + return -ENOMEM; + + memcpy(&dummy->tx, key, sizeof(*key)); + err =3D psd->ops->tx_key_add(psd, dummy, extack); + if (!err) + memcpy(pas->drv_data, dummy->drv_data, + psd->caps->assoc_drv_spc); + + kfree(dummy); + return err; } =20 void psp_dev_tx_key_del(struct psp_dev *psd, struct psp_assoc *pas) @@ -156,6 +175,20 @@ int psp_sock_assoc_set_rx(struct sock *sk, struct psp_= assoc *pas, return err; } =20 +static int psp_assoc_set_tx(struct psp_dev *psd, struct psp_assoc *pas, + struct psp_key_parsed *key, + struct netlink_ext_ack *extack) +{ + int err; + + err =3D psp_dev_tx_key_add(psd, pas, key, extack); + if (err) + return err; + + memcpy(&pas->tx, key, sizeof(*key)); + return 0; +} + static int psp_sock_recv_queue_check(struct sock *sk, struct psp_assoc *pa= s) { struct psp_skb_ext *pse; @@ -175,12 +208,40 @@ static int psp_sock_recv_queue_check(struct sock *sk,= struct psp_assoc *pas) return 0; } =20 +static int +psp_sock_set_tx_key(struct sock *sk, struct psp_dev *psd, struct psp_assoc= *pas, + struct psp_key_parsed *key, struct netlink_ext_ack *extack) +{ + struct inet_connection_sock *icsk; + int err; + + err =3D psp_sock_recv_queue_check(sk, pas); + if (err) { + NL_SET_ERR_MSG(extack, + "Socket has incompatible segments already in the recv queue"); + return err; + } + + err =3D psp_assoc_set_tx(psd, pas, key, extack); + if (err) + return err; + + WRITE_ONCE(sk->sk_validate_xmit_skb, psp_validate_xmit); + tcp_write_collapse_fence(sk); + pas->upgrade_seq =3D tcp_sk(sk)->rcv_nxt; + + icsk =3D inet_csk(sk); + icsk->icsk_ext_hdr_len +=3D psp_sk_overhead(sk); + icsk->icsk_sync_mss(sk, icsk->icsk_pmtu_cookie); + + return err; +} + int psp_sock_assoc_set_tx(struct sock *sk, struct psp_dev *psd, u32 version, struct psp_key_parsed *key, struct netlink_ext_ack *extack) { - struct inet_connection_sock *icsk; - struct psp_assoc *pas, *dummy; + struct psp_assoc *pas; int err; =20 lock_sock(sk); @@ -208,40 +269,7 @@ int psp_sock_assoc_set_tx(struct sock *sk, struct psp_= dev *psd, goto exit_unlock; } =20 - err =3D psp_sock_recv_queue_check(sk, pas); - if (err) { - NL_SET_ERR_MSG(extack, "Socket has incompatible segments already in the = recv queue"); - goto exit_unlock; - } - - /* Pass a fake association to drivers to make sure they don't - * try to store pointers to it. For re-keying we'll need to - * re-allocate the assoc structures. - */ - dummy =3D psp_assoc_dummy(pas); - if (!dummy) { - err =3D -ENOMEM; - goto exit_unlock; - } - - memcpy(&dummy->tx, key, sizeof(*key)); - err =3D psp_dev_tx_key_add(psd, dummy, extack); - if (err) - goto exit_free_dummy; - - memcpy(pas->drv_data, dummy->drv_data, psd->caps->assoc_drv_spc); - memcpy(&pas->tx, key, sizeof(*key)); - - WRITE_ONCE(sk->sk_validate_xmit_skb, psp_validate_xmit); - tcp_write_collapse_fence(sk); - pas->upgrade_seq =3D tcp_sk(sk)->rcv_nxt; - - icsk =3D inet_csk(sk); - icsk->icsk_ext_hdr_len +=3D psp_sk_overhead(sk); - icsk->icsk_sync_mss(sk, icsk->icsk_pmtu_cookie); - -exit_free_dummy: - kfree(dummy); + err =3D psp_sock_set_tx_key(sk, psd, pas, key, extack); exit_unlock: release_sock(sk); return err; --=20 2.52.0 From nobody Fri Sep 4 05:19:45 2026 Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17132375F65 for ; Fri, 4 Sep 2026 01:34:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485666; cv=none; b=aRZ4MhY+4IPkqObe5l7AdDjzvb62r0uTs2k5ix7usCHYSxloqgBbUJk/Z15LbOCyzS7d01oUgGZHMLZeaJLICMAE+XfWmaMUQaQm3b37kHyjFdRsYif6hJMfIUsb/AP1DLWQuOUf0TeN92vUUY3klKt2JXUsuRoe9p9CxFiMX48= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485666; c=relaxed/simple; bh=1vwLz1EGRsKiIvUCEaao5Sd859cQRuwJZcfrmgdHaVw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CvuvCDQbJEv7uJSbo6f07FqOjyJc0gSPyYHAA+LCQ2PfJO2H06gJDLNBvHpB9N2IwTDsRbnwPJ6GT7cVoWqvfOkYrXj6KjK04pQA9yC8IN7c2QUZ382xcLT7dw+uMfGmdgGZqYo0589RZ2D5TBeiU5puTEztkA5PLSFaisxUj08= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=o6N92wRs; arc=none smtp.client-ip=209.85.167.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="o6N92wRs" Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-4af173320f9so358989b6e.2 for ; Thu, 03 Sep 2026 18:34:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788485664; x=1789090464; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hpZj4z1owQ+RYAnRDS+RDtSbTp7EykdRTXIHu5JR10c=; b=o6N92wRsLWmbbdc7ePp8DeUtCtcvxRUx+dOfEMXfLI/ZKYAc3DEeokl94aZNCHBpgZ U3MNUJyCbNNCHG0Bn4Y+XGSzM/2fVNGcave1dutFiTNRPJ6xLDh3U93KFFo7T3JnTWv9 yRSDExh3r30lvSdUDmaIi5cejqj53WC8JJyLl+n6g8Nvkpj5n1iI4ZBvyu2VS8sFWojr dKYq/rj5YoAw4ZrzTjp/OuvdEFvsKNQIXNy9y6tJcRtBvJo3rHrHV11WfleqtznVW6dm PiUuSOmaSWX5R/UXoFJXG9oC8FiTZbQAJBKbl9Rkb2b2twwGCPeeWalSJqRNCFaD8DLS iL4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788485664; x=1789090464; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=hpZj4z1owQ+RYAnRDS+RDtSbTp7EykdRTXIHu5JR10c=; b=d4F6xinsWj66hTXvnxB4QVOHF7T1r0onhuIHYWm1gGx84jco3NWBcS8Ds8G0s47BZm E1VRjzB0gwW1ddNfa58j64rAsM1WHlMcb/qI/vtFVxV8+0XHBCGSzTkDbgYykYA4poiv d77uMo7dmvXMHk1SWJFg382uQ6v6WcEweiec08704L7AbTSEzKcBjUHaXIUI2z6DGeyU +Day+tJrxvGGbE1B384/aNb7B0SbgaYLi5eoP411GJmDpZ9fVnJV8HWqNZxHK8Idr/K3 YXIaFDrZijJlQyB9s08z+FEJiZY3fqo/risIb20C8UvVeSXwZZYCxRSkPRM6QmV4qq4v MW0w== X-Forwarded-Encrypted: i=1; AKwUvByqUy3NBEKAE52swx+MJYrv6J+vR9rin1NbU4fRAkNKiEcn3hvs9BDufs0tsX5w0e0K4jAcobpU0hqIcdg=@vger.kernel.org X-Gm-Message-State: AFuF++lcLYh/6wf0iRPvnnCUrC1z/Dp6y0SRl226hwO4ztUZO/g6dMg5 lfIoy+R84DYmAkXHjje8zHrWP2jTX6PzvqZ9z2hFSqpB7Ofs2xa833LO X-Gm-Gg: AYBFou1F9KKi8gebRR9OgOILmeXeQVqGkLB96d6TamuDf8QFPjiCM+SRrqb6VSGZx+r AqrJPybwUW3rCFQdhLUVsBHLNPSCfVq8x/MmkDrnF68NKaTzdiUMrUmtBCZax6iGoptpa9w0qHz y9IoCSj4oeU04rPTDgcf4wNHuA2XNl7dnobSY0d1UcozxAOwu1TX/kNNVsu+5Hxasck/Oh71u98 3Q4qMEs6cRYOAiI67Yrxg+5D866EYUqid/lrfCfbMJ5QM73gty26BsSLoKFMsq7kBM9hr8bLoUK znifDfpnz/q6Wk+eC9eLkiwZw/wvVfoYwcvrfdSIS6yrIMa3WloBZnQS6ThS313jZbY3adRXmWf ThqAOCNaxMu13aynQvgJ59yNDmgWahycPZla8nHwy+tnzTaAWfzy7izD+5j1cwxZhXIJZ1zHO5U d7ac1u3/HS+5bwuqkRHnCO1j1pugV/x5UZ5eNcLHkmgA+I/beJAazdDwB9DhBp+nRLl99r X-Received: by 2002:a05:6820:7094:10b0:6b7:a12:75d5 with SMTP id 006d021491bc7-6b70a127c1cmr1849103eaf.27.1788485663674; Thu, 03 Sep 2026 18:34:23 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:40::]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6b6dd07214bsm1835951eaf.10.2026.09.03.18.34.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2026 18:34:23 -0700 (PDT) From: Daniel Zahka Date: Thu, 03 Sep 2026 18:34:01 -0700 Subject: [PATCH net-next 3/4] psp: allow drivers to omit tx key add/del ops Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260903-psp-prep-v1-3-d47e9c4c375d@gmail.com> References: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> In-Reply-To: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> To: Jakub Kicinski , Willem de Bruijn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Andrew Lunn Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.13.0 Drivers that don't use an SADB for tx key storage don't have a use for psp_dev_ops::tx_key_add and psp_dev_ops::tx_key_del. Allowing drivers to leave these as NULL gives PSP core a simple way to determine whether a driver utilizes an SADB, which in turn could affect how PSP core chooses to handle certain situations. For example: - deciding if tx key deletion needs to be delayed during a rekeying event to avoid in-flight packets using old key handles. - choosing whether or not to report device stats like SADB usage to userspace, which only make sense if the driver uses on-device key storage. Signed-off-by: Daniel Zahka --- include/net/psp/types.h | 4 ++++ net/psp/psp.h | 8 +++++++- net/psp/psp_main.c | 6 +++--- net/psp/psp_sock.c | 8 +++++--- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/include/net/psp/types.h b/include/net/psp/types.h index 87991a1ea02d..b8905efbd604 100644 --- a/include/net/psp/types.h +++ b/include/net/psp/types.h @@ -219,12 +219,16 @@ struct psp_dev_ops { * @tx_key_add: add a Tx key to the device * Install an association in the device. Core will allocate space * for the driver to use at drv_data. + * Can be left NULL if device does not store Tx keys and @tx_key_del + * is also NULL. */ int (*tx_key_add)(struct psp_dev *psd, struct psp_assoc *pas, struct netlink_ext_ack *extack); /** * @tx_key_del: remove a Tx key from the device * Remove an association from the device. + * Can be left NULL if device does not store Tx keys and @tx_key_add + * is also NULL. */ void (*tx_key_del)(struct psp_dev *psd, struct psp_assoc *pas); =20 diff --git a/net/psp/psp.h b/net/psp/psp.h index 8acf9ca84b55..bbb39e2f5b0a 100644 --- a/net/psp/psp.h +++ b/net/psp/psp.h @@ -53,10 +53,16 @@ static inline bool psp_dev_is_registered(struct psp_dev= *psd) return !!psd->ops; } =20 +static inline bool psp_dev_has_sadb(struct psp_dev *psd) +{ + lockdep_assert_held(&psd->lock); + return !!psd->ops->tx_key_del; +} + static inline bool psp_assoc_needs_tx_key_del(struct psp_assoc *pas) { lockdep_assert_held(&pas->psd->lock); - return pas->tx.spi; + return psp_dev_has_sadb(pas->psd) && pas->tx.spi; } =20 #endif /* __PSP_PSP_H */ diff --git a/net/psp/psp_main.c b/net/psp/psp_main.c index 2556f0d46ef4..91473f96ad21 100644 --- a/net/psp/psp_main.c +++ b/net/psp/psp_main.c @@ -68,9 +68,9 @@ psp_dev_create(struct net_device *netdev, !psd_ops->set_config || !psd_ops->key_rotate || !psd_ops->rx_spi_alloc || - !psd_ops->tx_key_add || - !psd_ops->tx_key_del || - !psd_ops->get_stats)) + !psd_ops->get_stats || + (!psd_ops->tx_key_add !=3D !psd_ops->tx_key_del) || + (psd_caps->assoc_drv_spc && !psd_ops->tx_key_add))) return ERR_PTR(-EINVAL); =20 psd =3D kzalloc_obj(*psd); diff --git a/net/psp/psp_sock.c b/net/psp/psp_sock.c index 36eb06faa54a..6a4becc38b55 100644 --- a/net/psp/psp_sock.c +++ b/net/psp/psp_sock.c @@ -181,9 +181,11 @@ static int psp_assoc_set_tx(struct psp_dev *psd, struc= t psp_assoc *pas, { int err; =20 - err =3D psp_dev_tx_key_add(psd, pas, key, extack); - if (err) - return err; + if (psp_dev_has_sadb(psd)) { + err =3D psp_dev_tx_key_add(psd, pas, key, extack); + if (err) + return err; + } =20 memcpy(&pas->tx, key, sizeof(*key)); return 0; --=20 2.52.0 From nobody Fri Sep 4 05:19:45 2026 Received: from mail-oi1-f179.google.com (mail-oi1-f179.google.com [209.85.167.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 326D43793D3 for ; Fri, 4 Sep 2026 01:34:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485679; cv=none; b=Nb12rPbjpnA0veQ1ivy62pw576crGRZswflmItT0qEJF3C3viiwWopGBOVmfY3aP5bG9DobcSI3BG18REt/9EvkQ2IOSEVEkY4WsfiXZHU9DPotcjicuqq8wN71nANRR/IqqW8D+BSUtzbRhtCV2OgPp4829i6+G2qmgxciT57A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788485679; c=relaxed/simple; bh=OXLSqoh1FDwPOdeniUjIOxy7ztUXSmy1LVFgVaxlxXg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C8O4+ON/5uyP9kPn7CDarubmv8PxAyeKUIfGg8FtkuSVARby+A+pG2G9421YilChEvsEIc1rrupTwz1qtge7xiA1r25ZHhVZiuYgZlFV5CCf55AOClYrU7qymSutOF3sRwXcJfrdc9tRi6o+RbZ2ZPt8OzKJJXSV1GYEtNDJ3DE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=J4IgwnWi; arc=none smtp.client-ip=209.85.167.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="J4IgwnWi" Received: by mail-oi1-f179.google.com with SMTP id 5614622812f47-4ab89cff9c7so180222b6e.2 for ; Thu, 03 Sep 2026 18:34:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788485666; x=1789090466; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=1nYD/5QHvA/tTrz7YkNk4zOJKjnO4i+yX0Rf8b9DSJo=; b=J4IgwnWioUpCnRdEiiO2BuZOl2rYWIGpSrHvWcJs5oMEjWI54OY84H5TVo+iVi95sx udYYOC+8mqcDV3cSLYyx3IFR4g3ZQYC3zghbGT+1PuwAY2kBlCVllgXY0dk0ghk+kGjX WHgjYIemkPYAMeuLjxVoQFQffkkqiLsuCcBJEx+71oc9dOBHTLvUNMZpaerJyVEVIXU2 snc/HPHqbLdOmTKxjW4qJ2SnrgKBm7+oAymIf07ELmXslManVm7tmne0Tv6X+mrzmYeS 6743tNaa2BbJ3jNdgduWdXLoP4xqpEPpNanBQn/06zsNOzV47wfIS+FYtgBEnzZKPM9S xtxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788485666; x=1789090466; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=1nYD/5QHvA/tTrz7YkNk4zOJKjnO4i+yX0Rf8b9DSJo=; b=DNV2yYdPSe/zZ8pRhtakTAJaBDrXG20Iug2MXp48eZL+6FKA3HaTE2k41g7xR0cLba rmIOIwKKOehPkgmhYt3imBLhc+ttqRRWDaDZ7h/tUZS+gNPGPi65FFf+LGVvI23rfHVZ 2L5qQUu4jnUdVa0HQDJ+LGC/XujtiTLNfjU5N4e9wKxEcrdPiNHiAMx/n6zDjF5YAdq0 xVEWXXChdUyrrUBSmL4oBseSfE1y3yD2VaXes23cwM56xPErSuA027BYNMk+nfukDODW KYKGZDC4qLkY5uGzVmJj1HZw9Opx2lGUMioVo1Ds6DcRNOFFyx2MSWe1QQN1jF0Rqa6V yyEA== X-Forwarded-Encrypted: i=1; AKwUvByCi/qRTaljnULPUwftPHXB0RXNwK4C9FSaJiL6CRjzl+D+TDsQ2AzQN8wOU2RzKkqDEOGSXzgFCc+dsNE=@vger.kernel.org X-Gm-Message-State: AFuF++nOLIVctq+RnhFgwzx5AsBDEI75gpRSxee9Cw1JZjfMPUCW188N XL6LSNVJ7QOdbdtHSwjsnFhm0lA+Kfj/MIqZKVRHVN6ml95ljsuLT2kc X-Gm-Gg: AYBFou1ZEQyXgN6vO1GBLjSox0ZXv4iw7+iHNb2WWPXLQXQS6iWkHaN9USwnHU3dLmr LNDowpdL0/LobFH7RuY/mOBkv/G+9upDGkn1w45j001oUFX7D8HhyC56HJTS2naJWzg/0XqgAWf viULO6ZW+5rdMlcdm3lc7hOgahj9vNXCRimLCNHsgH/6Mh3ZsCHSqC7BT62aoCt+AsRkSfqgr3A /btyeHS0erkpZkmUZjwGxi4I9yfkWFs6jnzhr87LCRaGuZOkMc5OSDI7QBJQNzbio2HppZ0YtU1 RJHookRmv5iJSjeJ8isKK9WxuJ0zjc2+0av5p0WwfnnstWlRb8qfxRVlgx/4Z1vW/0ZtXR6b+P3 IjhNZILuh8Hu0O3d40bgah8xOVFV33xeKVYaajY5cKXbZHRSB0mEACjD/LbEucOzt0ddJWOdla6 6cm00tgEQ6lP0ehddkK3SCHLQgbx1Q6AgJmbdNqyT8VR2PpbGjG1ngv6XL X-Received: by 2002:a05:6808:50a9:b0:4ae:f5be:fe29 with SMTP id 5614622812f47-4b965050305mr2252385b6e.5.1788485665945; Thu, 03 Sep 2026 18:34:25 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:9::]) by smtp.gmail.com with ESMTPSA id 5614622812f47-4b97124b081sm1058916b6e.9.2026.09.03.18.34.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Sep 2026 18:34:25 -0700 (PDT) From: Daniel Zahka Date: Thu, 03 Sep 2026 18:34:02 -0700 Subject: [PATCH net-next 4/4] netdevsim: psp: drop tx key ops Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260903-psp-prep-v1-4-d47e9c4c375d@gmail.com> References: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> In-Reply-To: <20260903-psp-prep-v1-0-d47e9c4c375d@gmail.com> To: Jakub Kicinski , Willem de Bruijn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Andrew Lunn Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.13.0 netdevsim has no SADB. The usage of psp_assoc_drv_data() was always obsolete given psp_validate_xmit(), so we can remove nsim_assoc_add() and nsim_assoc_del(). netdevsim::assoc_cnt can also be removed. PSP core can track the balance of tx_key_add vs tx_key_del calls in a future change. Delete psp_assoc_drv_data() because there are no more callers left in the tree. mlx5 accesses pas->drv_data directly. Signed-off-by: Daniel Zahka --- drivers/net/netdevsim/netdevsim.h | 1 - drivers/net/netdevsim/psp.c | 33 --------------------------------- include/net/psp/functions.h | 5 ----- 3 files changed, 39 deletions(-) diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netd= evsim.h index 55aec41237b9..181b6baaba7a 100644 --- a/drivers/net/netdevsim/netdevsim.h +++ b/drivers/net/netdevsim/netdevsim.h @@ -122,7 +122,6 @@ struct netdevsim { struct dentry *rereg; struct mutex rereg_lock; u32 spi; - u32 assoc_cnt; } psp; =20 struct nsim_bus_dev *nsim_bus_dev; diff --git a/drivers/net/netdevsim/psp.c b/drivers/net/netdevsim/psp.c index 6b3532b5e360..b7452c49b581 100644 --- a/drivers/net/netdevsim/psp.c +++ b/drivers/net/netdevsim/psp.c @@ -23,7 +23,6 @@ nsim_do_psp(struct sk_buff *skb, struct netdevsim *ns, struct psp_assoc *pas; struct net *net; int psp_len; - void **ptr; =20 rcu_read_lock(); pas =3D psp_skb_get_assoc_rcu(skb); @@ -37,12 +36,6 @@ nsim_do_psp(struct sk_buff *skb, struct netdevsim *ns, goto out_unlock; } =20 - ptr =3D psp_assoc_drv_data(pas); - if (*ptr !=3D ns) { - rc =3D SKB_DROP_REASON_PSP_OUTPUT; - goto out_unlock; - } - net =3D sock_net(skb->sk); if (!psp_dev_encapsulate(net, skb, pas->tx.spi, pas->version, 0)) { rc =3D SKB_DROP_REASON_PSP_OUTPUT; @@ -149,19 +142,6 @@ nsim_rx_spi_alloc(struct psp_dev *psd, u32 version, return 0; } =20 -static int nsim_assoc_add(struct psp_dev *psd, struct psp_assoc *pas, - struct netlink_ext_ack *extack) -{ - struct netdevsim *ns =3D psd->drv_priv; - void **ptr =3D psp_assoc_drv_data(pas); - - /* Copy drv_priv from psd to assoc */ - *ptr =3D psd->drv_priv; - ns->psp.assoc_cnt++; - - return 0; -} - static int nsim_key_rotate(struct psp_dev *psd, struct netlink_ext_ack *ex= tack) { struct netdevsim *ns =3D psd->drv_priv; @@ -177,15 +157,6 @@ static int nsim_key_rotate(struct psp_dev *psd, struct= netlink_ext_ack *extack) return 0; } =20 -static void nsim_assoc_del(struct psp_dev *psd, struct psp_assoc *pas) -{ - struct netdevsim *ns =3D psd->drv_priv; - void **ptr =3D psp_assoc_drv_data(pas); - - *ptr =3D NULL; - ns->psp.assoc_cnt--; -} - static void nsim_get_stats(struct psp_dev *psd, struct psp_dev_stats *stat= s) { struct netdevsim *ns =3D psd->drv_priv; @@ -204,8 +175,6 @@ static void nsim_get_stats(struct psp_dev *psd, struct = psp_dev_stats *stats) static struct psp_dev_ops nsim_psp_ops =3D { .set_config =3D nsim_psp_set_config, .rx_spi_alloc =3D nsim_rx_spi_alloc, - .tx_key_add =3D nsim_assoc_add, - .tx_key_del =3D nsim_assoc_del, .key_rotate =3D nsim_key_rotate, .get_stats =3D nsim_get_stats, }; @@ -215,7 +184,6 @@ static struct psp_dev_caps nsim_psp_caps =3D { 1 << PSP_VERSION_HDR0_AES_GMAC_128 | 1 << PSP_VERSION_HDR0_AES_GCM_256 | 1 << PSP_VERSION_HDR0_AES_GMAC_256, - .assoc_drv_spc =3D sizeof(void *), }; =20 static void __nsim_psp_uninit(struct netdevsim *ns, bool teardown) @@ -230,7 +198,6 @@ static void __nsim_psp_uninit(struct netdevsim *ns, boo= l teardown) synchronize_rcu(); psp_dev_unregister(psd); } - WARN_ON(ns->psp.assoc_cnt); } =20 void nsim_psp_uninit(struct netdevsim *ns) diff --git a/include/net/psp/functions.h b/include/net/psp/functions.h index c5c23a54774e..b23c30898389 100644 --- a/include/net/psp/functions.h +++ b/include/net/psp/functions.h @@ -24,11 +24,6 @@ int psp_dev_rcv(struct sk_buff *skb, u16 dev_id, u8 gene= ration, bool strip_icv); /* Kernel-facing API */ void psp_assoc_put(struct psp_assoc *pas); =20 -static inline void *psp_assoc_drv_data(struct psp_assoc *pas) -{ - return pas->drv_data; -} - #if IS_ENABLED(CONFIG_INET_PSP) unsigned int psp_key_size(u32 version); void psp_sk_assoc_free(struct sock *sk); --=20 2.52.0