Torsten Duwe 870229
From e669b4dedd899e8e4cad5ef91721d3387a3844fc Mon Sep 17 00:00:00 2001
Torsten Duwe 870229
From: Marco Chiappero <marco.chiappero@intel.com>
Torsten Duwe 870229
Date: Wed, 17 Nov 2021 14:30:56 +0000
Torsten Duwe 870229
Subject: [PATCH] crypto: qat - do not rely on min version
Torsten Duwe 870229
Git-commit: e669b4dedd899e8e4cad5ef91721d3387a3844fc
Torsten Duwe 870229
Patch-mainline: v5.17-rc1
Torsten Duwe 870229
References: jsc#PED-1073
Torsten Duwe 870229
Torsten Duwe 870229
Remove min_iov_compat_ver field as for now all versions are compatible.
Torsten Duwe 870229
Torsten Duwe 870229
Compatibility is determined by a series of rules and dynamic conditions
Torsten Duwe 870229
such as specific configurations.
Torsten Duwe 870229
In any case the minimum version requirement for compatibility is
Torsten Duwe 870229
an inadequate and obsolete approach which should be removed.
Torsten Duwe 870229
Torsten Duwe 870229
At this time compatibility can be assured across the currently available
Torsten Duwe 870229
versions.
Torsten Duwe 870229
Torsten Duwe 870229
Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
Torsten Duwe 870229
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Torsten Duwe 870229
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Torsten Duwe 870229
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Torsten Duwe 870229
Signed-off-by: Torsten Duwe <duwe@suse.de>
Torsten Duwe 870229
Torsten Duwe 870229
---
Torsten Duwe 870229
 drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c |  2 --
Torsten Duwe 870229
 .../crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c   |  2 --
Torsten Duwe 870229
 .../qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c      |  2 --
Torsten Duwe 870229
 drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c |  2 --
Torsten Duwe 870229
 .../crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c |  2 --
Torsten Duwe 870229
 .../crypto/qat/qat_common/adf_accel_devices.h  |  1 -
Torsten Duwe 870229
 .../crypto/qat/qat_common/adf_pfvf_pf_proto.c  | 18 ++++++------------
Torsten Duwe 870229
 .../crypto/qat/qat_common/adf_pfvf_vf_msg.c    |  7 ++-----
Torsten Duwe 870229
 .../qat/qat_dh895xcc/adf_dh895xcc_hw_data.c    |  2 --
Torsten Duwe 870229
 .../qat_dh895xccvf/adf_dh895xccvf_hw_data.c    |  2 --
Torsten Duwe 870229
 10 files changed, 8 insertions(+), 32 deletions(-)
Torsten Duwe 870229
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c b/drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c
Torsten Duwe 870229
index 2a878d98f81aa..4658b7bf76da1 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c
Torsten Duwe 870229
@@ -4,7 +4,6 @@
Torsten Duwe 870229
 #include <adf_accel_devices.h>
Torsten Duwe 870229
 #include <adf_common_drv.h>
Torsten Duwe 870229
 #include <adf_gen4_hw_data.h>
Torsten Duwe 870229
-#include <adf_pfvf_msg.h>
Torsten Duwe 870229
 #include "adf_4xxx_hw_data.h"
Torsten Duwe 870229
 #include "icp_qat_hw.h"
Torsten Duwe 870229
 
Torsten Duwe 870229
@@ -257,7 +256,6 @@ void adf_init_hw_data_4xxx(struct adf_hw_device_data *hw_data)
Torsten Duwe 870229
 	hw_data->pfvf_ops.enable_comms = adf_pfvf_comms_disabled;
Torsten Duwe 870229
 	hw_data->pfvf_ops.get_vf2pf_sources = get_vf2pf_sources;
Torsten Duwe 870229
 	hw_data->disable_iov = adf_disable_sriov;
Torsten Duwe 870229
-	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 870229
 
Torsten Duwe 870229
 	adf_gen4_init_hw_csr_ops(&hw_data->csr_ops);
Torsten Duwe 870229
 }
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c b/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c
Torsten Duwe 870229
index 94a11e72edae1..3987a44fa164b 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c
Torsten Duwe 870229
@@ -4,7 +4,6 @@
Torsten Duwe 870229
 #include <adf_common_drv.h>
Torsten Duwe 870229
 #include <adf_gen2_hw_data.h>
Torsten Duwe 870229
 #include <adf_gen2_pfvf.h>
Torsten Duwe 870229
-#include <adf_pfvf_msg.h>
Torsten Duwe 870229
 #include "adf_c3xxx_hw_data.h"
Torsten Duwe 870229
 #include "icp_qat_hw.h"
Torsten Duwe 870229
 
Torsten Duwe 870229
@@ -137,7 +136,6 @@ void adf_init_hw_data_c3xxx(struct adf_hw_device_data *hw_data)
Torsten Duwe 870229
 	hw_data->reset_device = adf_reset_flr;
Torsten Duwe 870229
 	hw_data->set_ssm_wdtimer = adf_gen2_set_ssm_wdtimer;
Torsten Duwe 870229
 	hw_data->disable_iov = adf_disable_sriov;
Torsten Duwe 870229
-	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 870229
 
Torsten Duwe 870229
 	adf_gen2_init_pf_pfvf_ops(&hw_data->pfvf_ops);
Torsten Duwe 870229
 	adf_gen2_init_hw_csr_ops(&hw_data->csr_ops);
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c b/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
Torsten Duwe 870229
index 4c43a0d93fa60..85122013534de 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
Torsten Duwe 870229
@@ -4,7 +4,6 @@
Torsten Duwe 870229
 #include <adf_common_drv.h>
Torsten Duwe 870229
 #include <adf_gen2_hw_data.h>
Torsten Duwe 870229
 #include <adf_gen2_pfvf.h>
Torsten Duwe 870229
-#include <adf_pfvf_msg.h>
Torsten Duwe 870229
 #include <adf_pfvf_vf_msg.h>
Torsten Duwe 870229
 #include "adf_c3xxxvf_hw_data.h"
Torsten Duwe 870229
 
Torsten Duwe 870229
@@ -85,7 +84,6 @@ void adf_init_hw_data_c3xxxiov(struct adf_hw_device_data *hw_data)
Torsten Duwe 870229
 	hw_data->get_misc_bar_id = get_misc_bar_id;
Torsten Duwe 870229
 	hw_data->get_sku = get_sku;
Torsten Duwe 870229
 	hw_data->enable_ints = adf_vf_void_noop;
Torsten Duwe 870229
-	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 870229
 	hw_data->dev_class->instances++;
Torsten Duwe 870229
 	adf_devmgr_update_class_index(hw_data);
Torsten Duwe 870229
 	adf_gen2_init_vf_pfvf_ops(&hw_data->pfvf_ops);
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c b/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c
Torsten Duwe 870229
index 3cb1a88d97aec..a76e33d7a215a 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c
Torsten Duwe 870229
@@ -4,7 +4,6 @@
Torsten Duwe 870229
 #include <adf_common_drv.h>
Torsten Duwe 870229
 #include <adf_gen2_hw_data.h>
Torsten Duwe 870229
 #include <adf_gen2_pfvf.h>
Torsten Duwe 870229
-#include <adf_pfvf_msg.h>
Torsten Duwe 870229
 #include "adf_c62x_hw_data.h"
Torsten Duwe 870229
 #include "icp_qat_hw.h"
Torsten Duwe 870229
 
Torsten Duwe 870229
@@ -139,7 +138,6 @@ void adf_init_hw_data_c62x(struct adf_hw_device_data *hw_data)
Torsten Duwe 870229
 	hw_data->reset_device = adf_reset_flr;
Torsten Duwe 870229
 	hw_data->set_ssm_wdtimer = adf_gen2_set_ssm_wdtimer;
Torsten Duwe 870229
 	hw_data->disable_iov = adf_disable_sriov;
Torsten Duwe 870229
-	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 870229
 
Torsten Duwe 870229
 	adf_gen2_init_pf_pfvf_ops(&hw_data->pfvf_ops);
Torsten Duwe 870229
 	adf_gen2_init_hw_csr_ops(&hw_data->csr_ops);
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c b/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
Torsten Duwe 870229
index c4b23e2cd5796..99c56405f88fb 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
Torsten Duwe 870229
@@ -4,7 +4,6 @@
Torsten Duwe 870229
 #include <adf_common_drv.h>
Torsten Duwe 870229
 #include <adf_gen2_hw_data.h>
Torsten Duwe 870229
 #include <adf_gen2_pfvf.h>
Torsten Duwe 870229
-#include <adf_pfvf_msg.h>
Torsten Duwe 870229
 #include <adf_pfvf_vf_msg.h>
Torsten Duwe 870229
 #include "adf_c62xvf_hw_data.h"
Torsten Duwe 870229
 
Torsten Duwe 870229
@@ -85,7 +84,6 @@ void adf_init_hw_data_c62xiov(struct adf_hw_device_data *hw_data)
Torsten Duwe 870229
 	hw_data->get_misc_bar_id = get_misc_bar_id;
Torsten Duwe 870229
 	hw_data->get_sku = get_sku;
Torsten Duwe 870229
 	hw_data->enable_ints = adf_vf_void_noop;
Torsten Duwe 870229
-	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 870229
 	hw_data->dev_class->instances++;
Torsten Duwe 870229
 	adf_devmgr_update_class_index(hw_data);
Torsten Duwe 870229
 	adf_gen2_init_vf_pfvf_ops(&hw_data->pfvf_ops);
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_common/adf_accel_devices.h b/drivers/crypto/qat/qat_common/adf_accel_devices.h
Torsten Duwe 870229
index b05b217df24c4..a1809a7d1c90d 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_common/adf_accel_devices.h
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_common/adf_accel_devices.h
Torsten Duwe 870229
@@ -209,7 +209,6 @@ struct adf_hw_device_data {
Torsten Duwe 870229
 	u8 num_accel;
Torsten Duwe 870229
 	u8 num_logical_accel;
Torsten Duwe 870229
 	u8 num_engines;
Torsten Duwe 870229
-	u8 min_iov_compat_ver;
Torsten Duwe 870229
 };
Torsten Duwe 870229
 
Torsten Duwe 870229
 /* CSR write macro */
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c b/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c
Torsten Duwe 870229
index c0844fbd896c0..db5bbb9db32e3 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c
Torsten Duwe 870229
@@ -40,7 +40,6 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 vf_nr,
Torsten Duwe 870229
 				u32 msg, u32 *response)
Torsten Duwe 870229
 {
Torsten Duwe 870229
 	struct adf_accel_vf_info *vf_info = &accel_dev->pf.vf_info[vf_nr];
Torsten Duwe 870229
-	struct adf_hw_device_data *hw_data = accel_dev->hw_device;
Torsten Duwe 870229
 	u32 resp = 0;
Torsten Duwe 870229
 
Torsten Duwe 870229
 	switch ((msg & ADF_VF2PF_MSGTYPE_MASK) >> ADF_VF2PF_MSGTYPE_SHIFT) {
Torsten Duwe 870229
@@ -53,21 +52,16 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 vf_nr,
Torsten Duwe 870229
 			"Compatibility Version Request from VF%d vers=%u\n",
Torsten Duwe 870229
 			vf_nr + 1, vf_compat_ver);
Torsten Duwe 870229
 
Torsten Duwe 870229
-		if (vf_compat_ver < hw_data->min_iov_compat_ver) {
Torsten Duwe 870229
-			dev_err(&GET_DEV(accel_dev),
Torsten Duwe 870229
-				"VF (vers %d) incompatible with PF (vers %d)\n",
Torsten Duwe 870229
+		if (vf_compat_ver <= ADF_PFVF_COMPAT_THIS_VERSION) {
Torsten Duwe 870229
+			compat = ADF_PF2VF_VF_COMPATIBLE;
Torsten Duwe 870229
+			dev_dbg(&GET_DEV(accel_dev),
Torsten Duwe 870229
+				"VF (vers %d) compatible with PF (vers %d)\n",
Torsten Duwe 870229
 				vf_compat_ver, ADF_PFVF_COMPAT_THIS_VERSION);
Torsten Duwe 870229
-			compat = ADF_PF2VF_VF_INCOMPATIBLE;
Torsten Duwe 870229
-		} else if (vf_compat_ver > ADF_PFVF_COMPAT_THIS_VERSION) {
Torsten Duwe 870229
+		} else {
Torsten Duwe 870229
+			compat = ADF_PF2VF_VF_COMPAT_UNKNOWN;
Torsten Duwe 870229
 			dev_err(&GET_DEV(accel_dev),
Torsten Duwe 870229
 				"VF (vers %d) compat with PF (vers %d) unkn.\n",
Torsten Duwe 870229
 				vf_compat_ver, ADF_PFVF_COMPAT_THIS_VERSION);
Torsten Duwe 870229
-			compat = ADF_PF2VF_VF_COMPAT_UNKNOWN;
Torsten Duwe 870229
-		} else {
Torsten Duwe 870229
-			dev_dbg(&GET_DEV(accel_dev),
Torsten Duwe 870229
-				"VF (vers %d) compatible with PF (vers %d)\n",
Torsten Duwe 870229
-				vf_compat_ver, ADF_PFVF_COMPAT_THIS_VERSION);
Torsten Duwe 870229
-			compat = ADF_PF2VF_VF_COMPATIBLE;
Torsten Duwe 870229
 		}
Torsten Duwe 870229
 
Torsten Duwe 870229
 		resp =  ADF_PF2VF_MSGORIGIN_SYSTEM;
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c b/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c
Torsten Duwe 870229
index d5cccec03a3b3..7635818399024 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c
Torsten Duwe 870229
@@ -51,7 +51,6 @@ EXPORT_SYMBOL_GPL(adf_vf2pf_notify_shutdown);
Torsten Duwe 870229
 
Torsten Duwe 870229
 int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
Torsten Duwe 870229
 {
Torsten Duwe 870229
-	struct adf_hw_device_data *hw_data = accel_dev->hw_device;
Torsten Duwe 870229
 	u8 pf_version;
Torsten Duwe 870229
 	u32 msg = 0;
Torsten Duwe 870229
 	int compat;
Torsten Duwe 870229
@@ -80,10 +79,8 @@ int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
Torsten Duwe 870229
 	case ADF_PF2VF_VF_COMPATIBLE:
Torsten Duwe 870229
 		break;
Torsten Duwe 870229
 	case ADF_PF2VF_VF_COMPAT_UNKNOWN:
Torsten Duwe 870229
-		/* VF is newer than PF and decides whether it is compatible */
Torsten Duwe 870229
-		if (pf_version >= hw_data->min_iov_compat_ver)
Torsten Duwe 870229
-			break;
Torsten Duwe 870229
-		fallthrough;
Torsten Duwe 870229
+		/* VF is newer than PF - compatible for now */
Torsten Duwe 870229
+		break;
Torsten Duwe 870229
 	case ADF_PF2VF_VF_INCOMPATIBLE:
Torsten Duwe 870229
 		dev_err(&GET_DEV(accel_dev),
Torsten Duwe 870229
 			"PF (vers %d) and VF (vers %d) are not compatible\n",
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c b/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
Torsten Duwe 870229
index 37f43b8c29eb7..27d4cab65dd88 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
Torsten Duwe 870229
@@ -4,7 +4,6 @@
Torsten Duwe 870229
 #include <adf_common_drv.h>
Torsten Duwe 870229
 #include <adf_gen2_hw_data.h>
Torsten Duwe 870229
 #include <adf_gen2_pfvf.h>
Torsten Duwe 870229
-#include <adf_pfvf_msg.h>
Torsten Duwe 870229
 #include "adf_dh895xcc_hw_data.h"
Torsten Duwe 870229
 #include "icp_qat_hw.h"
Torsten Duwe 870229
 
Torsten Duwe 870229
@@ -216,7 +215,6 @@ void adf_init_hw_data_dh895xcc(struct adf_hw_device_data *hw_data)
Torsten Duwe 870229
 	hw_data->enable_ints = adf_enable_ints;
Torsten Duwe 870229
 	hw_data->reset_device = adf_reset_sbr;
Torsten Duwe 870229
 	hw_data->disable_iov = adf_disable_sriov;
Torsten Duwe 870229
-	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 870229
 
Torsten Duwe 870229
 	adf_gen2_init_pf_pfvf_ops(&hw_data->pfvf_ops);
Torsten Duwe 870229
 	hw_data->pfvf_ops.get_vf2pf_sources = get_vf2pf_sources;
Torsten Duwe 870229
diff --git a/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c b/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
Torsten Duwe 870229
index d3795bab37255..5489d6c022561 100644
Torsten Duwe 870229
--- a/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
Torsten Duwe 870229
+++ b/drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c
Torsten Duwe 870229
@@ -4,7 +4,6 @@
Torsten Duwe 870229
 #include <adf_common_drv.h>
Torsten Duwe 870229
 #include <adf_gen2_hw_data.h>
Torsten Duwe 870229
 #include <adf_gen2_pfvf.h>
Torsten Duwe 870229
-#include <adf_pfvf_msg.h>
Torsten Duwe 870229
 #include <adf_pfvf_vf_msg.h>
Torsten Duwe 870229
 #include "adf_dh895xccvf_hw_data.h"
Torsten Duwe 870229
 
Torsten Duwe 870229
@@ -85,7 +84,6 @@ void adf_init_hw_data_dh895xcciov(struct adf_hw_device_data *hw_data)
Torsten Duwe 870229
 	hw_data->get_misc_bar_id = get_misc_bar_id;
Torsten Duwe 870229
 	hw_data->get_sku = get_sku;
Torsten Duwe 870229
 	hw_data->enable_ints = adf_vf_void_noop;
Torsten Duwe 870229
-	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 870229
 	hw_data->dev_class->instances++;
Torsten Duwe 870229
 	adf_devmgr_update_class_index(hw_data);
Torsten Duwe 870229
 	adf_gen2_init_vf_pfvf_ops(&hw_data->pfvf_ops);
Torsten Duwe 870229
-- 
Torsten Duwe 870229
2.35.3
Torsten Duwe 870229