From 60f13dee92f32499eb9a2a9c9d53e16227b7ba08 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 11 Jun 2024 11:39:34 +0200 Subject: [PATCH] media: ipu6: Fix compilation with kernels >= 6.10 Fix compilation with kernels >= 6.10. Signed-off-by: Hans de Goede --- drivers/media/pci/intel/ipu-mmu.c | 1 + drivers/media/pci/intel/ipu-psys.c | 16 ++++++++++++++++ drivers/media/pci/intel/ipu.c | 1 + 3 files changed, 18 insertions(+) diff --git a/drivers/media/pci/intel/ipu-mmu.c b/drivers/media/pci/intel/ipu-mmu.c index a36a6ded84eb..b06c9f8c16de 100644 --- a/drivers/media/pci/intel/ipu-mmu.c +++ b/drivers/media/pci/intel/ipu-mmu.c @@ -7,6 +7,7 @@ #include #include #include +#include #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 b12ecf3fcc38..b93e47aafb73 100644 --- a/drivers/media/pci/intel/ipu-psys.c +++ b/drivers/media/pci/intel/ipu-psys.c @@ -128,6 +128,22 @@ 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 */ +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 33592a6624f3..fc091a11a6b6 100644 --- a/drivers/media/pci/intel/ipu.c +++ b/drivers/media/pci/intel/ipu.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "ipu.h" #include "ipu-buttress.h"