Netdev List
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeedm@mellanox.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org, Raed Salem <raeds@mellanox.com>,
	Saeed Mahameed <saeedm@mellanox.com>
Subject: [net 01/13] net/mlx5: IPSec, Fix the SA context hash key
Date: Mon, 19 Nov 2018 15:41:16 -0800	[thread overview]
Message-ID: <20181119234128.6948-2-saeedm@mellanox.com> (raw)
In-Reply-To: <20181119234128.6948-1-saeedm@mellanox.com>

From: Raed Salem <raeds@mellanox.com>

The commit "net/mlx5: Refactor accel IPSec code" introduced a
bug where asynchronous short time change in hash key value
by create/release SA context might happen during an asynchronous
hash resize operation this could cause a subsequent remove SA
context operation to fail as the key value used during resize is
not the same key value used when remove SA context operation is
invoked.

This commit fixes the bug by defining the SA context hash key
such that it includes only fields that never change during the
lifetime of the SA context object.

Fixes: d6c4f0298cec ("net/mlx5: Refactor accel IPSec code")
Signed-off-by: Raed Salem <raeds@mellanox.com>
Reviewed-by: Aviad Yehezkel <aviadye@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
index 515e3d6de051..5a22c5874f3b 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/ipsec.c
@@ -83,8 +83,14 @@ struct mlx5_fpga_ipsec_rule {
 };
 
 static const struct rhashtable_params rhash_sa = {
-	.key_len = FIELD_SIZEOF(struct mlx5_fpga_ipsec_sa_ctx, hw_sa),
-	.key_offset = offsetof(struct mlx5_fpga_ipsec_sa_ctx, hw_sa),
+	/* Keep out "cmd" field from the key as it's
+	 * value is not constant during the lifetime
+	 * of the key object.
+	 */
+	.key_len = FIELD_SIZEOF(struct mlx5_fpga_ipsec_sa_ctx, hw_sa) -
+		   FIELD_SIZEOF(struct mlx5_ifc_fpga_ipsec_sa_v1, cmd),
+	.key_offset = offsetof(struct mlx5_fpga_ipsec_sa_ctx, hw_sa) +
+		      FIELD_SIZEOF(struct mlx5_ifc_fpga_ipsec_sa_v1, cmd),
 	.head_offset = offsetof(struct mlx5_fpga_ipsec_sa_ctx, hash),
 	.automatic_shrinking = true,
 	.min_size = 1,
-- 
2.19.1

  reply	other threads:[~2018-11-20 10:08 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-19 23:41 [pull request][net 00/13] Mellanox, mlx5 fixes 2018-11-19 Saeed Mahameed
2018-11-19 23:41 ` Saeed Mahameed [this message]
2018-11-20  9:25   ` [net 01/13] net/mlx5: IPSec, Fix the SA context hash key Sergei Shtylyov
2018-11-20 17:18     ` David Miller
2018-11-19 23:41 ` [net 02/13] net/mlx5e: IPoIB, Reset QP after channels are closed Saeed Mahameed
2018-11-19 23:41 ` [net 03/13] net/mlx5e: Don't match on vlan non-existence if ethertype is wildcarded Saeed Mahameed
2018-11-19 23:41 ` [net 04/13] net/mlx5e: Claim TC hw offloads support only under a proper build config Saeed Mahameed
2018-11-19 23:41 ` [net 05/13] net/mlx5e: Always use the match level enum when parsing TC rule match Saeed Mahameed
2018-11-19 23:41 ` [net 06/13] net/mlx5e: Adjust to max number of channles when re-attaching Saeed Mahameed
2018-11-19 23:41 ` [net 07/13] net/mlx5e: Apply the correct check for supporting TC esw rules split Saeed Mahameed
2018-11-19 23:41 ` [net 08/13] net/mlx5e: RX, verify received packet size in Linear Striding RQ Saeed Mahameed
2018-11-19 23:41 ` [net 09/13] net/mlx5e: Fix selftest for small MTUs Saeed Mahameed
2018-11-19 23:41 ` [net 10/13] net/mlx5e: Fix a bug in turning off FEC policy in unsupported speeds Saeed Mahameed
2018-11-19 23:41 ` [net 11/13] net/mlx5e: Fix wrong field name in FEC related functions Saeed Mahameed
2018-11-19 23:41 ` [net 12/13] net/mlx5e: Removed unnecessary warnings in FEC caps query Saeed Mahameed
2018-11-19 23:41 ` [net 13/13] net/mlx5e: Fix failing ethtool query on FEC query error Saeed Mahameed
2018-11-20  3:34 ` [pull request][net 00/13] Mellanox, mlx5 fixes 2018-11-19 David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181119234128.6948-2-saeedm@mellanox.com \
    --to=saeedm@mellanox.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=raeds@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox