Torsten Duwe 7b66f0
From c79391c696da0151c6ec8cb8a31edfa8bbe68f24 Mon Sep 17 00:00:00 2001
Torsten Duwe 7b66f0
From: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Torsten Duwe 7b66f0
Date: Wed, 17 Nov 2021 14:30:34 +0000
Torsten Duwe 7b66f0
Subject: [PATCH] crypto: qat - do not handle PFVF sources for qat_4xxx
Torsten Duwe 7b66f0
Git-commit: c79391c696da0151c6ec8cb8a31edfa8bbe68f24
Torsten Duwe 7b66f0
Patch-mainline: v5.17-rc1
Torsten Duwe 7b66f0
References: jsc#PED-1073
Torsten Duwe 7b66f0
Torsten Duwe 7b66f0
The QAT driver does not have support for PFVF interrupts for GEN4
Torsten Duwe 7b66f0
devices, therefore report the vf2pf sources as 0.
Torsten Duwe 7b66f0
This prevents a NULL pointer dereference in the function
Torsten Duwe 7b66f0
adf_msix_isr_ae() if the device triggers a spurious interrupt.
Torsten Duwe 7b66f0
Torsten Duwe 7b66f0
Fixes: 993161d36ab5 ("crypto: qat - fix handling of VF to PF interrupts")
Torsten Duwe 7b66f0
Reported-by: Adam Guerin <adam.guerin@intel.com>
Torsten Duwe 7b66f0
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Torsten Duwe 7b66f0
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Torsten Duwe 7b66f0
Signed-off-by: Torsten Duwe <duwe@suse.de>
Torsten Duwe 7b66f0
Torsten Duwe 7b66f0
---
Torsten Duwe 7b66f0
 drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c | 7 +++++++
Torsten Duwe 7b66f0
 1 file changed, 7 insertions(+)
Torsten Duwe 7b66f0
Torsten Duwe 7b66f0
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 7b66f0
index fa768f10635fd..fd29861526d6b 100644
Torsten Duwe 7b66f0
--- a/drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c
Torsten Duwe 7b66f0
+++ b/drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c
Torsten Duwe 7b66f0
@@ -211,6 +211,12 @@ static u32 uof_get_ae_mask(u32 obj_num)
Torsten Duwe 7b66f0
 	return adf_4xxx_fw_config[obj_num].ae_mask;
Torsten Duwe 7b66f0
 }
Torsten Duwe 7b66f0
 
Torsten Duwe 7b66f0
+static u32 get_vf2pf_sources(void __iomem *pmisc_addr)
Torsten Duwe 7b66f0
+{
Torsten Duwe 7b66f0
+	/* For the moment do not report vf2pf sources */
Torsten Duwe 7b66f0
+	return 0;
Torsten Duwe 7b66f0
+}
Torsten Duwe 7b66f0
+
Torsten Duwe 7b66f0
 void adf_init_hw_data_4xxx(struct adf_hw_device_data *hw_data)
Torsten Duwe 7b66f0
 {
Torsten Duwe 7b66f0
 	hw_data->dev_class = &adf_4xxx_class;
Torsten Duwe 7b66f0
@@ -254,6 +260,7 @@ void adf_init_hw_data_4xxx(struct adf_hw_device_data *hw_data)
Torsten Duwe 7b66f0
 	hw_data->set_msix_rttable = set_msix_default_rttable;
Torsten Duwe 7b66f0
 	hw_data->set_ssm_wdtimer = adf_gen4_set_ssm_wdtimer;
Torsten Duwe 7b66f0
 	hw_data->enable_pfvf_comms = pfvf_comms_disabled;
Torsten Duwe 7b66f0
+	hw_data->get_vf2pf_sources = get_vf2pf_sources;
Torsten Duwe 7b66f0
 	hw_data->disable_iov = adf_disable_sriov;
Torsten Duwe 7b66f0
 	hw_data->min_iov_compat_ver = ADF_PFVF_COMPAT_THIS_VERSION;
Torsten Duwe 7b66f0
 
Torsten Duwe 7b66f0
-- 
Torsten Duwe 7b66f0
2.35.3
Torsten Duwe 7b66f0