crypto: qat - do not rely on min version
authorMarco Chiappero <marco.chiappero@intel.com>
Wed, 17 Nov 2021 14:30:56 +0000 (14:30 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 26 Nov 2021 05:20:48 +0000 (16:20 +1100)
Remove min_iov_compat_ver field as for now all versions are compatible.

Compatibility is determined by a series of rules and dynamic conditions
such as specific configurations.
In any case the minimum version requirement for compatibility is
an inadequate and obsolete approach which should be removed.

At this time compatibility can be assured across the currently available
versions.

Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c
drivers/crypto/qat/qat_c3xxx/adf_c3xxx_hw_data.c
drivers/crypto/qat/qat_c3xxxvf/adf_c3xxxvf_hw_data.c
drivers/crypto/qat/qat_c62x/adf_c62x_hw_data.c
drivers/crypto/qat/qat_c62xvf/adf_c62xvf_hw_data.c
drivers/crypto/qat/qat_common/adf_accel_devices.h
drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c
drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c
drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c
drivers/crypto/qat/qat_dh895xccvf/adf_dh895xccvf_hw_data.c

index 2a878d98f81aaf2301e7459a4b56f97b56555b85..4658b7bf76da1b1d642a434bb9c2d4c50c55ed6c 100644 (file)
@@ -4,7 +4,6 @@
 #include <adf_accel_devices.h>
 #include <adf_common_drv.h>
 #include <adf_gen4_hw_data.h>
-#include <adf_pfvf_msg.h>
 #include "adf_4xxx_hw_data.h"
 #include "icp_qat_hw.h"
 
@@ -257,7 +256,6 @@ void adf_init_hw_data_4xxx(struct adf_hw_device_data *hw_data)
        hw_data->pfvf_ops.enable_comms = adf_pfvf_comms_disabled;
        hw_data->pfvf_ops.get_vf2pf_sources = get_vf2pf_sources;
        hw_data->disable_iov = adf_disable_sriov;
-       hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
 
        adf_gen4_init_hw_csr_ops(&hw_data->csr_ops);
 }
index 94a11e72edae16d1b72e496369bdd0ff7f85b88e..3987a44fa164b6789246fb5ec988074bfcd1ea44 100644 (file)
@@ -4,7 +4,6 @@
 #include <adf_common_drv.h>
 #include <adf_gen2_hw_data.h>
 #include <adf_gen2_pfvf.h>
-#include <adf_pfvf_msg.h>
 #include "adf_c3xxx_hw_data.h"
 #include "icp_qat_hw.h"
 
@@ -137,7 +136,6 @@ void adf_init_hw_data_c3xxx(struct adf_hw_device_data *hw_data)
        hw_data->reset_device = adf_reset_flr;
        hw_data->set_ssm_wdtimer = adf_gen2_set_ssm_wdtimer;
        hw_data->disable_iov = adf_disable_sriov;
-       hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
 
        adf_gen2_init_pf_pfvf_ops(&hw_data->pfvf_ops);
        adf_gen2_init_hw_csr_ops(&hw_data->csr_ops);
index 4c43a0d93fa60f6e1f4a19b2f0df2409667ebff3..85122013534de1a1e64b6f7df79ffd21d919ebf2 100644 (file)
@@ -4,7 +4,6 @@
 #include <adf_common_drv.h>
 #include <adf_gen2_hw_data.h>
 #include <adf_gen2_pfvf.h>
-#include <adf_pfvf_msg.h>
 #include <adf_pfvf_vf_msg.h>
 #include "adf_c3xxxvf_hw_data.h"
 
@@ -85,7 +84,6 @@ void adf_init_hw_data_c3xxxiov(struct adf_hw_device_data *hw_data)
        hw_data->get_misc_bar_id = get_misc_bar_id;
        hw_data->get_sku = get_sku;
        hw_data->enable_ints = adf_vf_void_noop;
-       hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
        hw_data->dev_class->instances++;
        adf_devmgr_update_class_index(hw_data);
        adf_gen2_init_vf_pfvf_ops(&hw_data->pfvf_ops);
index 3cb1a88d97aec5d1c3bb0d29f259d7c2159ec162..a76e33d7a215ac344a1326a59992ad836e0a6293 100644 (file)
@@ -4,7 +4,6 @@
 #include <adf_common_drv.h>
 #include <adf_gen2_hw_data.h>
 #include <adf_gen2_pfvf.h>
-#include <adf_pfvf_msg.h>
 #include "adf_c62x_hw_data.h"
 #include "icp_qat_hw.h"
 
@@ -139,7 +138,6 @@ void adf_init_hw_data_c62x(struct adf_hw_device_data *hw_data)
        hw_data->reset_device = adf_reset_flr;
        hw_data->set_ssm_wdtimer = adf_gen2_set_ssm_wdtimer;
        hw_data->disable_iov = adf_disable_sriov;
-       hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
 
        adf_gen2_init_pf_pfvf_ops(&hw_data->pfvf_ops);
        adf_gen2_init_hw_csr_ops(&hw_data->csr_ops);
index c4b23e2cd57966f211251fbd1bccdeb4c3068462..99c56405f88fb51368c0dc79452fee21aaf63250 100644 (file)
@@ -4,7 +4,6 @@
 #include <adf_common_drv.h>
 #include <adf_gen2_hw_data.h>
 #include <adf_gen2_pfvf.h>
-#include <adf_pfvf_msg.h>
 #include <adf_pfvf_vf_msg.h>
 #include "adf_c62xvf_hw_data.h"
 
@@ -85,7 +84,6 @@ void adf_init_hw_data_c62xiov(struct adf_hw_device_data *hw_data)
        hw_data->get_misc_bar_id = get_misc_bar_id;
        hw_data->get_sku = get_sku;
        hw_data->enable_ints = adf_vf_void_noop;
-       hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
        hw_data->dev_class->instances++;
        adf_devmgr_update_class_index(hw_data);
        adf_gen2_init_vf_pfvf_ops(&hw_data->pfvf_ops);
index b05b217df24c47ca4123fd5e1562b0f16c7e173d..a1809a7d1c90dbcb4001e1079d9fdd182f064574 100644 (file)
@@ -209,7 +209,6 @@ struct adf_hw_device_data {
        u8 num_accel;
        u8 num_logical_accel;
        u8 num_engines;
-       u8 min_iov_compat_ver;
 };
 
 /* CSR write macro */
index c0844fbd896c0f658c4cab71fc4dd139ff1a536e..db5bbb9db32e3e09ac03a06ff19cad75d4a00770 100644 (file)
@@ -40,7 +40,6 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 vf_nr,
                                u32 msg, u32 *response)
 {
        struct adf_accel_vf_info *vf_info = &accel_dev->pf.vf_info[vf_nr];
-       struct adf_hw_device_data *hw_data = accel_dev->hw_device;
        u32 resp = 0;
 
        switch ((msg & ADF_VF2PF_MSGTYPE_MASK) >> ADF_VF2PF_MSGTYPE_SHIFT) {
@@ -53,21 +52,16 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u32 vf_nr,
                        "Compatibility Version Request from VF%d vers=%u\n",
                        vf_nr + 1, vf_compat_ver);
 
-               if (vf_compat_ver < hw_data->min_iov_compat_ver) {
-                       dev_err(&GET_DEV(accel_dev),
-                               "VF (vers %d) incompatible with PF (vers %d)\n",
+               if (vf_compat_ver <= ADF_PFVF_COMPAT_THIS_VERSION) {
+                       compat = ADF_PF2VF_VF_COMPATIBLE;
+                       dev_dbg(&GET_DEV(accel_dev),
+                               "VF (vers %d) compatible with PF (vers %d)\n",
                                vf_compat_ver, ADF_PFVF_COMPAT_THIS_VERSION);
-                       compat = ADF_PF2VF_VF_INCOMPATIBLE;
-               } else if (vf_compat_ver > ADF_PFVF_COMPAT_THIS_VERSION) {
+               } else {
+                       compat = ADF_PF2VF_VF_COMPAT_UNKNOWN;
                        dev_err(&GET_DEV(accel_dev),
                                "VF (vers %d) compat with PF (vers %d) unkn.\n",
                                vf_compat_ver, ADF_PFVF_COMPAT_THIS_VERSION);
-                       compat = ADF_PF2VF_VF_COMPAT_UNKNOWN;
-               } else {
-                       dev_dbg(&GET_DEV(accel_dev),
-                               "VF (vers %d) compatible with PF (vers %d)\n",
-                               vf_compat_ver, ADF_PFVF_COMPAT_THIS_VERSION);
-                       compat = ADF_PF2VF_VF_COMPATIBLE;
                }
 
                resp =  ADF_PF2VF_MSGORIGIN_SYSTEM;
index d5cccec03a3b36ddc7ef06deb24b5528c85f64db..76358183990249acb01e617591c6f732869f7331 100644 (file)
@@ -51,7 +51,6 @@ EXPORT_SYMBOL_GPL(adf_vf2pf_notify_shutdown);
 
 int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
 {
-       struct adf_hw_device_data *hw_data = accel_dev->hw_device;
        u8 pf_version;
        u32 msg = 0;
        int compat;
@@ -80,10 +79,8 @@ int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
        case ADF_PF2VF_VF_COMPATIBLE:
                break;
        case ADF_PF2VF_VF_COMPAT_UNKNOWN:
-               /* VF is newer than PF and decides whether it is compatible */
-               if (pf_version >= hw_data->min_iov_compat_ver)
-                       break;
-               fallthrough;
+               /* VF is newer than PF - compatible for now */
+               break;
        case ADF_PF2VF_VF_INCOMPATIBLE:
                dev_err(&GET_DEV(accel_dev),
                        "PF (vers %d) and VF (vers %d) are not compatible\n",
index 37f43b8c29eb71eea2da715ee1e0b2df039211cd..27d4cab65dd88eb3df8e90a5ecc003f8b4674e6c 100644 (file)
@@ -4,7 +4,6 @@
 #include <adf_common_drv.h>
 #include <adf_gen2_hw_data.h>
 #include <adf_gen2_pfvf.h>
-#include <adf_pfvf_msg.h>
 #include "adf_dh895xcc_hw_data.h"
 #include "icp_qat_hw.h"
 
@@ -216,7 +215,6 @@ void adf_init_hw_data_dh895xcc(struct adf_hw_device_data *hw_data)
        hw_data->enable_ints = adf_enable_ints;
        hw_data->reset_device = adf_reset_sbr;
        hw_data->disable_iov = adf_disable_sriov;
-       hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
 
        adf_gen2_init_pf_pfvf_ops(&hw_data->pfvf_ops);
        hw_data->pfvf_ops.get_vf2pf_sources = get_vf2pf_sources;
index d3795bab37255eb59aa491806a9d078f18f21ad6..5489d6c0225619699719176f97836b912ec3768e 100644 (file)
@@ -4,7 +4,6 @@
 #include <adf_common_drv.h>
 #include <adf_gen2_hw_data.h>
 #include <adf_gen2_pfvf.h>
-#include <adf_pfvf_msg.h>
 #include <adf_pfvf_vf_msg.h>
 #include "adf_dh895xccvf_hw_data.h"
 
@@ -85,7 +84,6 @@ void adf_init_hw_data_dh895xcciov(struct adf_hw_device_data *hw_data)
        hw_data->get_misc_bar_id = get_misc_bar_id;
        hw_data->get_sku = get_sku;
        hw_data->enable_ints = adf_vf_void_noop;
-       hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
        hw_data->dev_class->instances++;
        adf_devmgr_update_class_index(hw_data);
        adf_gen2_init_vf_pfvf_ops(&hw_data->pfvf_ops);