Subject: linux-next: manual merge of the mlx5-next tree with the net-next tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 15 Sep 2022 10:15:16 +1000

Hi all,

Today's linux-next merge of the mlx5-next tree got conflicts in:

  include/linux/mlx5/device.h
  include/linux/mlx5/mlx5_ifc.h

between commit:

  8385c51ff5bc ("net/mlx5: Introduce MACsec Connect-X offload hardware bits and structures")

from the net-next tree and commits:

  6182534c2678 ("net/mlx5: Add NVMEoTCP caps, HW bits, 128B CQE and enumerations")
  4ced81c02b03 ("net/mlx5: Add IFC bits and enums for crypto key")

from the mlx5-next tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc include/linux/mlx5/device.h
index 2927810f172b,1288aee9d9aa..000000000000
--- a/include/linux/mlx5/device.h
+++ b/include/linux/mlx5/device.h
@@@ -1197,10 -1226,11 +1226,12 @@@ enum mlx5_cap_type 
  	MLX5_CAP_VDPA_EMULATION = 0x13,
  	MLX5_CAP_DEV_EVENT = 0x14,
  	MLX5_CAP_IPSEC,
+ 	MLX5_CAP_DEV_NVMEOTCP = 0x19,
  	MLX5_CAP_DEV_SHAMPO = 0x1d,
 +	MLX5_CAP_MACSEC = 0x1f,
  	MLX5_CAP_GENERAL_2 = 0x20,
  	MLX5_CAP_PORT_SELECTION = 0x25,
+ 	MLX5_CAP_ADV_VIRTUALIZATION = 0x26,
  	/* NUM OF CAP Types */
  	MLX5_CAP_NUM
  };
@@@ -1447,9 -1485,14 +1486,17 @@@ enum mlx5_qcam_feature_groups 
  #define MLX5_CAP_DEV_SHAMPO(mdev, cap)\
  	MLX5_GET(shampo_cap, mdev->caps.hca_cur[MLX5_CAP_DEV_SHAMPO], cap)
  
 +#define MLX5_CAP_MACSEC(mdev, cap)\
 +	MLX5_GET(macsec_cap, (mdev)->caps.hca[MLX5_CAP_MACSEC]->cur, cap)
 +
+ #define MLX5_CAP_DEV_NVMEOTCP(mdev, cap)\
+ 	MLX5_GET(nvmeotcp_cap, \
+ 		 (mdev)->caps.hca[MLX5_CAP_DEV_NVMEOTCP]->cur, cap)
+ 
+ #define MLX5_CAP64_DEV_NVMEOTCP(mdev, cap)\
+ 	MLX5_GET64(nvmeotcp_cap, \
+ 		   (mdev)->caps.hca[MLX5_CAP_DEV_NVMEOTCP]->cur, cap)
+ 
  enum {
  	MLX5_CMD_STAT_OK			= 0x0,
  	MLX5_CMD_STAT_INT_ERR			= 0x1,
diff --cc include/linux/mlx5/mlx5_ifc.h
index 8decbf9a7bdd,3fb7b0d6cbb5..000000000000
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@@ -3323,7 -3382,8 +3410,9 @@@ union mlx5_ifc_hca_cap_union_bits 
  	struct mlx5_ifc_device_mem_cap_bits device_mem_cap;
  	struct mlx5_ifc_virtio_emulation_cap_bits virtio_emulation_cap;
  	struct mlx5_ifc_shampo_cap_bits shampo_cap;
 +	struct mlx5_ifc_macsec_cap_bits macsec_cap;
+ 	struct mlx5_ifc_nvmeotcp_cap_bits nvmeotcp_cap;
+ 	struct mlx5_ifc_crypto_cap_bits crypto_cap;
  	u8         reserved_at_0[0x8000];
  };
  
@@@ -11506,8 -11588,9 +11624,10 @@@ enum 
  	MLX5_GENERAL_OBJECT_TYPES_ENCRYPTION_KEY = 0xc,
  	MLX5_GENERAL_OBJECT_TYPES_IPSEC = 0x13,
  	MLX5_GENERAL_OBJECT_TYPES_SAMPLER = 0x20,
+ 	MLX5_GENERAL_OBJECT_TYPES_NVMEOTCP_TAG_BUFFER_TABLE = 0x21,
  	MLX5_GENERAL_OBJECT_TYPES_FLOW_METER_ASO = 0x24,
 +	MLX5_GENERAL_OBJECT_TYPES_MACSEC = 0x27,
+ 	MLX5_GENERAL_OBJECT_TYPES_INT_KEK = 0x47,
  };
  
  enum {
@@@ -11558,67 -11641,38 +11678,99 @@@ struct mlx5_ifc_modify_ipsec_obj_in_bit
  	struct mlx5_ifc_ipsec_obj_bits ipsec_object;
  };
  
 +struct mlx5_ifc_macsec_aso_bits {
 +	u8    valid[0x1];
 +	u8    reserved_at_1[0x1];
 +	u8    mode[0x2];
 +	u8    window_size[0x2];
 +	u8    soft_lifetime_arm[0x1];
 +	u8    hard_lifetime_arm[0x1];
 +	u8    remove_flow_enable[0x1];
 +	u8    epn_event_arm[0x1];
 +	u8    reserved_at_a[0x16];
 +
 +	u8    remove_flow_packet_count[0x20];
 +
 +	u8    remove_flow_soft_lifetime[0x20];
 +
 +	u8    reserved_at_60[0x80];
 +
 +	u8    mode_parameter[0x20];
 +
 +	u8    replay_protection_window[8][0x20];
 +};
 +
 +struct mlx5_ifc_macsec_offload_obj_bits {
 +	u8    modify_field_select[0x40];
 +
 +	u8    confidentiality_en[0x1];
 +	u8    reserved_at_41[0x1];
 +	u8    esn_en[0x1];
 +	u8    esn_overlap[0x1];
 +	u8    reserved_at_44[0x2];
 +	u8    confidentiality_offset[0x2];
 +	u8    reserved_at_48[0x4];
 +	u8    aso_return_reg[0x4];
 +	u8    reserved_at_50[0x10];
 +
 +	u8    esn_msb[0x20];
 +
 +	u8    reserved_at_80[0x8];
 +	u8    dekn[0x18];
 +
 +	u8    reserved_at_a0[0x20];
 +
 +	u8    sci[0x40];
 +
 +	u8    reserved_at_100[0x8];
 +	u8    macsec_aso_access_pd[0x18];
 +
 +	u8    reserved_at_120[0x60];
 +
 +	u8    salt[3][0x20];
 +
 +	u8    reserved_at_1e0[0x20];
 +
 +	struct mlx5_ifc_macsec_aso_bits macsec_aso;
 +};
 +
 +struct mlx5_ifc_create_macsec_obj_in_bits {
 +	struct mlx5_ifc_general_obj_in_cmd_hdr_bits general_obj_in_cmd_hdr;
 +	struct mlx5_ifc_macsec_offload_obj_bits macsec_object;
 +};
 +
+ struct mlx5_ifc_wrapped_dek_bits {
+ 	u8         gcm_iv[0x60];
+ 
+ 	u8         reserved_at_60[0x20];
+ 
+ 	u8         const0[0x1];
+ 	u8         key_size[0x1];
+ 	u8         reserved_at_82[0x2];
+ 	u8         key2_invalid[0x1];
+ 	u8         reserved_at_85[0x3];
+ 	u8         pd[0x18];
+ 
+ 	u8         key_purpose[0x5];
+ 	u8         reserved_at_a5[0x13];
+ 	u8         kek_id[0x8];
+ 
+ 	u8         reserved_at_c0[0x40];
+ 
+ 	u8         key1[0x8][0x20];
+ 
+ 	u8         key2[0x8][0x20];
+ 
+ 	u8         reserved_at_300[0x40];
+ 
+ 	u8         const1[0x1];
+ 	u8         reserved_at_341[0x1f];
+ 
+ 	u8         reserved_at_360[0x20];
+ 
+ 	u8         auth_tag[0x80];
+ };
+ 
  struct mlx5_ifc_encryption_key_obj_bits {
  	u8         modify_field_select[0x40];
  
@@@ -11736,10 -11846,20 +11944,21 @@@ enum 
  enum {
  	MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_TLS = 0x1,
  	MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_IPSEC = 0x2,
 +	MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_MACSEC = 0x4,
  };
  
- struct mlx5_ifc_tls_static_params_bits {
+ enum {
+ 	MLX5_TRANSPORT_STATIC_PARAMS_ACC_TYPE_TLS               = 0x1,
+ 	MLX5_TRANSPORT_STATIC_PARAMS_ACC_TYPE_NVMETCP           = 0x2,
+ 	MLX5_TRANSPORT_STATIC_PARAMS_ACC_TYPE_NVMETCP_WITH_TLS  = 0x3,
+ };
+ 
+ enum {
+ 	MLX5_TRANSPORT_STATIC_PARAMS_TI_INITIATOR  = 0x0,
+ 	MLX5_TRANSPORT_STATIC_PARAMS_TI_TARGET     = 0x1,
+ };
+ 
+ struct mlx5_ifc_transport_static_params_bits {
  	u8         const_2[0x2];
  	u8         tls_version[0x4];
  	u8         const_1[0x2];