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"