Commit 15d11190 authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

pkgdep/git: Bump QAT driver to latest release



Landing with patches needed for >6.7 kernels.

Change-Id: I713cb2fad5208228cacc57394e6d9cddb6939b2f
Signed-off-by: default avatarMichal Berger <michal.berger@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21417


Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent e0741e53
Loading
Loading
Loading
Loading
+5 −10
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@ function install_qat() {
		install yasm
	fi

	install libnl3 libnl3-devel || install libnl-3-200 libnl-3-dev

	in_syms() {
		local syms
		if [[ -e /proc/kallsyms ]]; then
@@ -27,16 +29,9 @@ function install_qat() {

	tar -C "$GIT_REPOS/QAT" -xzof - < <(wget -O- "$DRIVER_LOCATION_QAT")

	if ge "$kernel_ver" 6.3.0; then
	if ge "$kernel_ver" 6.7.0; then
		patch --dir="$GIT_REPOS/QAT" -p1
	fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-iommu_map.patch"

	if ge "$kernel_ver" 6.4.0; then
		patch --dir="$GIT_REPOS/QAT" -p1 \
			< "$rootdir/test/common/config/pkgdep/patches/qat/0001-driver-core+semaphore.patch"
		patch --dir="$GIT_REPOS/QAT" -p1 \
			< "$rootdir/test/common/config/pkgdep/patches/qat/0001-algapi.patch"
	fi
	fi < "$rootdir/test/common/config/pkgdep/patches/qat/0001-phys_proc_id.patch"

	patch --dir="$GIT_REPOS/QAT" -p1 \
		< "$rootdir/test/common/config/pkgdep/patches/qat/0001-no-vmlinux.patch"
@@ -507,7 +502,7 @@ export GIT_REPO_QEMU
export GIT_REPO_QEMU_VFIO
: ${GIT_REPO_LIBISCSI=https://github.com/sahlberg/libiscsi}
export GIT_REPO_LIBISCSI
: ${DRIVER_LOCATION_QAT=https://downloadmirror.intel.com/773821/QAT.L.4.21.0-00001.tar.gz}
: ${DRIVER_LOCATION_QAT=https://downloadmirror.intel.com/795697/QAT.L.4.24.0-00005.tar.gz}
export DRIVER_LOCATION_QAT
: ${GIT_REPO_GIT=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz}
export GIT_REPO_GIT
+0 −20
Original line number Diff line number Diff line
MODULE_ALIAS_CRYPTO() was moved to crypto/algapi.h in kernel 6.4. See:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0c0edf6168ce1e02518ba44400b9269a13c3b9e6
---
 quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
index 8a33cc7..8e40e91 100644
--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
@@ -12,6 +12,7 @@
 #include <linux/device.h>
 #include <linux/notifier.h>
 #include <linux/reboot.h>
+#include <crypto/algapi.h>
 
 #include "adf_accel_devices.h"
 #include "adf_common_drv.h"
-- 
+0 −106
Original line number Diff line number Diff line
Changes in class_create() and DEFINE_SEMAPHORE() introduced in kernel 6.4
by the following commits:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1aaba11da9aa7d7d6b52a74d45b31cac118295a1
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=48380368dec14859723b9e3fbd43e042638d9a76

---
 quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c   | 2 +-
 .../qat/drivers/crypto/qat/qat_common/adf_dev_processes.c     | 4 ++--
 quickassist/qat/drivers/crypto/qat/qat_common/qat_dbg_drv.c   | 2 +-
 .../utilities/libusdm_drv/linux/kernel_space/qae_mem_drv.c    | 2 +-
 .../utilities/osal/src/linux/kernel_space/OsalThread.c        | 4 ++--
 .../utilities/osal/src/linux/kernel_space/OsalUsrKrlProxy.c   | 3 +--
 6 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
index 10624f8..8e40e91 100644
--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
@@ -161,7 +161,7 @@ static int adf_chr_drv_create(void)
 		return -EFAULT;
 	}
 
-	adf_ctl_drv.drv_class = class_create(THIS_MODULE, DEVICE_NAME);
+	adf_ctl_drv.drv_class = class_create(DEVICE_NAME);
 	if (IS_ERR(adf_ctl_drv.drv_class)) {
 		pr_err("QAT: class_create failed for adf_ctl\n");
 		goto err_chrdev_unreg;
diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_dev_processes.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_dev_processes.c
index 08e5bea..ad41dbb 100644
--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_dev_processes.c
+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_dev_processes.c
@@ -60,7 +60,7 @@ static struct adf_chr_drv_info adf_processes_drv_info = {
 };
 
 static LIST_HEAD(processes_list);
-static DEFINE_SEMAPHORE(processes_list_sema);
+static DEFINE_SEMAPHORE(processes_list_sema, 1);
 
 static void adf_chr_drv_destroy(void)
 {
@@ -83,7 +83,7 @@ static int adf_chr_drv_create(void)
 	}
 
 	adf_processes_drv_info.drv_class =
-		class_create(THIS_MODULE, ADF_DEV_PROCESSES_NAME);
+		class_create(ADF_DEV_PROCESSES_NAME);
 	if (IS_ERR(adf_processes_drv_info.drv_class)) {
 		pr_err("QAT: class_create failed for adf_ctl\n");
 		goto err_chrdev_unreg;
diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/qat_dbg_drv.c b/quickassist/qat/drivers/crypto/qat/qat_common/qat_dbg_drv.c
index 1868f36..d90542d 100644
--- a/quickassist/qat/drivers/crypto/qat/qat_common/qat_dbg_drv.c
+++ b/quickassist/qat/drivers/crypto/qat/qat_common/qat_dbg_drv.c
@@ -405,7 +405,7 @@ static int qat_dbg_chr_drv_create(void)
 		return -EFAULT;
 	}
 
-	qatd_drv.drv_class = class_create(THIS_MODULE, QATD_DEVICE_NAME);
+	qatd_drv.drv_class = class_create(QATD_DEVICE_NAME);
 	if (IS_ERR(qatd_drv.drv_class)) {
 		pr_err("QAT: class_create failed for qat_dbg\n");
 		goto err_chrdev_unreg;
diff --git a/quickassist/utilities/libusdm_drv/linux/kernel_space/qae_mem_drv.c b/quickassist/utilities/libusdm_drv/linux/kernel_space/qae_mem_drv.c
index 0cf9733..c2bef72 100644
--- a/quickassist/utilities/libusdm_drv/linux/kernel_space/qae_mem_drv.c
+++ b/quickassist/utilities/libusdm_drv/linux/kernel_space/qae_mem_drv.c
@@ -1197,7 +1197,7 @@ chr_drv_create_class(chr_drv_info_t* drv_info)
                      "chr_drv_create_class(): Invalid parameter value ",
                      -EINVAL);
 
-    drv_info->drv_class = class_create(THIS_MODULE, drv_info->name);
+    drv_info->drv_class = class_create(drv_info->name);
     if (IS_ERR(drv_info->drv_class))
     {
         mm_err("%s:%d class_create failed\n",__func__,__LINE__);
diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalThread.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalThread.c
index c7b5839..b2c1927 100644
--- a/quickassist/utilities/osal/src/linux/kernel_space/OsalThread.c
+++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalThread.c
@@ -78,8 +78,8 @@
 DECLARE_MUTEX (osalThreadMutex);
 DECLARE_MUTEX (osalThreadStopMutex);
 #else
-DEFINE_SEMAPHORE (osalThreadMutex);
-DEFINE_SEMAPHORE (osalThreadStopMutex);
+DEFINE_SEMAPHORE (osalThreadMutex, 1);
+DEFINE_SEMAPHORE (osalThreadStopMutex, 1);
 #endif
 
 OSAL_PUBLIC OSAL_STATUS
diff --git a/quickassist/utilities/osal/src/linux/kernel_space/OsalUsrKrlProxy.c b/quickassist/utilities/osal/src/linux/kernel_space/OsalUsrKrlProxy.c
index fe81da1..8886220 100644
--- a/quickassist/utilities/osal/src/linux/kernel_space/OsalUsrKrlProxy.c
+++ b/quickassist/utilities/osal/src/linux/kernel_space/OsalUsrKrlProxy.c
@@ -621,8 +621,7 @@ chr_drv_create_class(chr_drv_info_t* drv_info, char* path)
 
     }
 
-    drv_info->drv_class = class_create(THIS_MODULE,
-                       (path) ? name : drv_info->name);
+    drv_info->drv_class = class_create((path) ? name : drv_info->name);
     if (IS_ERR(drv_info->drv_class)) {
         osalLog(
             OSAL_LOG_LVL_ERROR, OSAL_LOG_DEV_STDOUT, "class_create failed\n");
-- 
+0 −21
Original line number Diff line number Diff line
Add gfp parameter to the iommu_map call. See:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1369459b2e219a6f4c861404c4f195cd81dcbb40
---
 quickassist/qat/drivers/crypto/qat/qat_common/qdm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/qdm.c b/quickassist/qat/drivers/crypto/qat/qat_common/qdm.c
index 77e6f0e..43ec6b1 100644
--- a/quickassist/qat/drivers/crypto/qat/qat_common/qdm.c
+++ b/quickassist/qat/drivers/crypto/qat/qat_common/qdm.c
@@ -129,7 +129,7 @@ static int qdm_iommu_mem_map(dma_addr_t *iova, phys_addr_t paddr, size_t size)
 			IOMMU_READ|IOMMU_WRITE|IOMMU_CACHE);
 #else
 	return iommu_map(domain, *iova, paddr, size,
-			IOMMU_READ|IOMMU_WRITE|IOMMU_CACHE);
+			IOMMU_READ|IOMMU_WRITE|IOMMU_CACHE, GFP_KERNEL);
 #endif
 }
 
-- 
+24 −0
Original line number Diff line number Diff line
See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02fb601d27
---
 quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
index c961930..8fe27c5 100644
--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
+++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_ctl_drv.c
@@ -671,10 +671,10 @@ static int adf_get_dev_node_id(struct pci_dev *pdev)
 		/* if there is only one physical processor don't need
 		 * to do any further calculations
 		 */
-		if (c->phys_proc_id == 0) {
+		if (c->topo.pkg_id == 0) {
 			node_id = 0;
 		} else {
-			bus_per_cpu = MAX_PCI_BUS / (c->phys_proc_id + 1);
+			bus_per_cpu = MAX_PCI_BUS / (c->topo.pkg_id + 1);
 			if (bus_per_cpu != 0)
 				node_id = pdev->bus->number / bus_per_cpu;
 		}
--