File 0023-UBUNTU-SAUCE-media-ipu6-Fix-compilation-with-kernels.patch of Package intel-ipu6

From: Hans de Goede <hdegoede@redhat.com>
Date: Tue, 11 Jun 2024 11:39:34 +0200
Subject: UBUNTU: SAUCE: media: ipu6: Fix compilation with kernels >= 6.10

Fix compilation with kernels >= 6.10.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
(backported from commit 60f13dee92f32499eb9a2a9c9d53e16227b7ba08 github.com/jwrdegoede/ipu6-drivers)
[vicamo: fix build against ubuntu kernels]
Signed-off-by: You-Sheng Yang <vicamo.yang@canonical.com>
---
 drivers/media/pci/intel/ipu-mmu.c  |  1 +
 drivers/media/pci/intel/ipu-psys.c | 17 +++++++++++++++++
 drivers/media/pci/intel/ipu.c      |  1 +
 3 files changed, 19 insertions(+)

diff --git a/drivers/media/pci/intel/ipu-mmu.c b/drivers/media/pci/intel/ipu-mmu.c
index a36a6de..b06c9f8 100644
--- a/drivers/media/pci/intel/ipu-mmu.c
+++ b/drivers/media/pci/intel/ipu-mmu.c
@@ -7,6 +7,7 @@
 #include <linux/iova.h>
 #include <linux/module.h>
 #include <linux/sizes.h>
+#include <linux/vmalloc.h>
 
 #include "ipu.h"
 #include "ipu-platform.h"
diff --git a/drivers/media/pci/intel/ipu-psys.c b/drivers/media/pci/intel/ipu-psys.c
index b12ecf3..4e6afe0 100644
--- a/drivers/media/pci/intel/ipu-psys.c
+++ b/drivers/media/pci/intel/ipu-psys.c
@@ -128,6 +128,23 @@ ipu_psys_lookup_kbuffer_by_kaddr(struct ipu_psys_fh *fh, void *kaddr)
 	return NULL;
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 10, 0)
+/* Dropped from 6.10, use our own copy for now */
+#define follow_pfn backport__follow_pfn
+static int follow_pfn(struct vm_area_struct *vma, unsigned long address, unsigned long *pfn)
+{
+	spinlock_t *ptl;
+	pte_t *ptep;
+
+	if (follow_pte(vma, address, &ptep, &ptl))
+		return -EINVAL;
+
+	*pfn = pte_pfn(ptep_get(ptep));
+	pte_unmap_unlock(ptep, ptl);
+	return 0;
+}
+#endif
+
 static int ipu_psys_get_userpages(struct ipu_dma_buf_attach *attach)
 {
 	struct vm_area_struct *vma;
diff --git a/drivers/media/pci/intel/ipu.c b/drivers/media/pci/intel/ipu.c
index 33592a6..fc091a1 100644
--- a/drivers/media/pci/intel/ipu.c
+++ b/drivers/media/pci/intel/ipu.c
@@ -15,6 +15,7 @@
 #include <linux/timer.h>
 #include <linux/sched.h>
 #include <linux/version.h>
+#include <linux/vmalloc.h>
 
 #include "ipu.h"
 #include "ipu-buttress.h"
openSUSE Build Service is sponsored by