Add intel_QAT patches
Add community compatibility patches for Intel QAT Due to incompatibility with higher kernel versions. Also includes basic instructions. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Kjeld Schouten-Lebbing <kjeld@schouten-lebbing.nl> Closes #10961 Closes #10962
This commit is contained in:
parent
13c38c4c45
commit
83b5a22d86
|
@ -0,0 +1,17 @@
|
||||||
|
cryptohash.h was dropped and merged with crypto/sha.sh in 5.8 kernel. Details in:
|
||||||
|
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=228c4f265c6eb60eaa4ed0edb3bf7c113173576c
|
||||||
|
|
||||||
|
---
|
||||||
|
diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c
|
||||||
|
index 4c389da..e602377 100644
|
||||||
|
--- a/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c
|
||||||
|
+++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalCryptoInterface.c
|
||||||
|
@@ -66,7 +66,7 @@
|
||||||
|
|
||||||
|
#include "Osal.h"
|
||||||
|
#include <linux/crypto.h>
|
||||||
|
-#include <linux/cryptohash.h>
|
||||||
|
+#include <crypto/sha.h>
|
||||||
|
#include <linux/version.h>
|
||||||
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
|
||||||
|
#include <crypto/internal/hash.h>
|
|
@ -0,0 +1,20 @@
|
||||||
|
In kernel 5.7 the pci_cleanup_aer_uncorrect_error_status() function was
|
||||||
|
renamed with the following commit:
|
||||||
|
|
||||||
|
git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=894020fdd88c1e9a74c60b67c0f19f1c7696ba2f
|
||||||
|
|
||||||
|
This simply updates the function call with the proper name (pci_aer_clear_nonfatal_status()).
|
||||||
|
|
||||||
|
---
|
||||||
|
diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c
|
||||||
|
index a6ce6df..545bb79 100644
|
||||||
|
--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c
|
||||||
|
+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_aer.c
|
||||||
|
@@ -304,7 +304,7 @@ static pci_ers_result_t adf_slot_reset(struct pci_dev *pdev)
|
||||||
|
pr_err("QAT: Can't find acceleration device\n");
|
||||||
|
return PCI_ERS_RESULT_DISCONNECT;
|
||||||
|
}
|
||||||
|
- pci_cleanup_aer_uncorrect_error_status(pdev);
|
||||||
|
+ pci_aer_clear_nonfatal_status(pdev);
|
||||||
|
if (adf_dev_aer_schedule_reset(accel_dev, ADF_DEV_RESET_SYNC))
|
||||||
|
return PCI_ERS_RESULT_DISCONNECT;
|
|
@ -0,0 +1,35 @@
|
||||||
|
This patch attempts to expose timespec and getnstimeofday which were
|
||||||
|
explicitly hidden in the 5.6 kernel with the introduction of the
|
||||||
|
following commits:
|
||||||
|
|
||||||
|
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c766d1472c70d25ad475cf56042af1652e792b23
|
||||||
|
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=412c53a680a97cb1ae2c0ab60230e193bee86387
|
||||||
|
|
||||||
|
Code received from users@dpdk.org, issue tracked under QATE-59888.
|
||||||
|
|
||||||
|
---
|
||||||
|
diff --git a/quickassist/lookaside/access_layer/src/sample_code/performance/framework/linux/kernel_space/cpa_sample_code_utils.c b/quickassist/lookaside/access_layer/src/sample_code/performance/framework/linux/kernel_space/cpa_sample_code_utils.c
|
||||||
|
index 4639834..523e376 100644
|
||||||
|
--- a/quickassist/lookaside/access_layer/src/sample_code/performance/framework/linux/kernel_space/cpa_sample_code_utils.c
|
||||||
|
+++ b/quickassist/lookaside/access_layer/src/sample_code/performance/framework/linux/kernel_space/cpa_sample_code_utils.c
|
||||||
|
@@ -107,6 +107,8 @@ atomic_t arrived;
|
||||||
|
extern struct device perf_device;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#define timespec timespec64
|
||||||
|
+#define getnstimeofday ktime_get_real_ts64
|
||||||
|
|
||||||
|
/* Define a number for timeout */
|
||||||
|
#define SAMPLE_CODE_MAX_LONG (0x7FFFFFFF)
|
||||||
|
diff --git a/quickassist/qat/compat/qat_compat.h b/quickassist/qat/compat/qat_compat.h
|
||||||
|
index 2a02eaf..3515092 100644
|
||||||
|
--- a/quickassist/qat/compat/qat_compat.h
|
||||||
|
+++ b/quickassist/qat/compat/qat_compat.h
|
||||||
|
@@ -466,4 +466,7 @@ static inline void pci_ignore_hotplug(struct pci_dev *dev)
|
||||||
|
#if (RHEL_RELEASE_CODE && RHEL_RELEASE_VERSION(7, 3) <= RHEL_RELEASE_CODE)
|
||||||
|
#define QAT_KPT_CAP_DISCOVERY
|
||||||
|
#endif
|
||||||
|
+
|
||||||
|
+#define timespec timespec64
|
||||||
|
+#define getnstimeofday ktime_get_real_ts64
|
||||||
|
#endif /* _QAT_COMPAT_H_ */
|
|
@ -0,0 +1,30 @@
|
||||||
|
BSD LICENSE
|
||||||
|
|
||||||
|
Copyright (c) Intel Corporation.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name of Intel Corporation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Intel_QAT easy install script
|
||||||
|
|
||||||
|
This contrib contains community compatibility patches to get Intel QAT working on the following kernel versions:
|
||||||
|
- 5.6
|
||||||
|
- 5.7
|
||||||
|
- 5.8
|
||||||
|
|
||||||
|
These patches are based on the following Intel QAT version:
|
||||||
|
[1.7.l.4.10.0-00014](https://01.org/sites/default/files/downloads/qat1.7.l.4.10.0-00014.tar.gz)
|
||||||
|
|
||||||
|
When using QAT with above kernels versions, the following patches needs to be applied using:
|
||||||
|
patch -p1 < _$PATCH_
|
||||||
|
_Where $PATCH refers to the path of the patch in question_
|
||||||
|
|
||||||
|
### 5.6
|
||||||
|
/patch/0001-timespec.diff
|
||||||
|
|
||||||
|
### 5.7
|
||||||
|
/patch/0001-pci_aer.diff
|
||||||
|
|
||||||
|
### 5.8
|
||||||
|
/patch/0001-cryptohash.diff
|
||||||
|
|
||||||
|
|
||||||
|
_Patches are supplied by [Storage Performance Development Kit (SPDK)](https://github.com/spdk/spdk)_
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue