From 2148079b749e8a56217f30a8bd446bea543838d0 Mon Sep 17 00:00:00 2001 From: Chris Brandt Date: Mon, 8 Apr 2019 15:55:04 -0500 Subject: [PATCH] kernel: add support for 5.1 kernel Before kernel 5.1, vm_falut_t was simply a typedef of int. Now vmfault_t is its own type, so we can't just pass back int anymore (compiler error). --- kernel/fs/axfs/axfs_inode.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/kernel/fs/axfs/axfs_inode.c b/kernel/fs/axfs/axfs_inode.c index e3dddbb..b9125a6 100644 --- a/kernel/fs/axfs/axfs_inode.c +++ b/kernel/fs/axfs/axfs_inode.c @@ -534,8 +534,11 @@ static int axfs_readdir(struct file *filp, void *dirent, filldir_t filldir) #if LINUX_VERSION_CODE > KERNEL_VERSION(3,19,0) -static int do_dax_noblk_fault(struct vm_area_struct *vma, struct vm_fault *vmf, - unsigned long pfn) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) +static vm_fault_t do_dax_noblk_fault(struct vm_area_struct *vma, struct vm_fault *vmf, unsigned long pfn) +#else +static int do_dax_noblk_fault(struct vm_area_struct *vma, struct vm_fault *vmf, unsigned long pfn) +#endif { struct file *file = vma->vm_file; struct address_space *mapping = file->f_mapping; @@ -627,17 +630,19 @@ static int do_dax_noblk_fault(struct vm_area_struct *vma, struct vm_fault *vmf, goto out; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) +vm_fault_t xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +#else int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +#endif { - int result; struct file *file = vma->vm_file; struct address_space *mapping = file->f_mapping; unsigned long pfn; void *kaddr; axfs_get_xip_mem(mapping, vmf->pgoff, 0, &kaddr, &pfn); - result = do_dax_noblk_fault(vma, vmf, pfn); - return result; + return do_dax_noblk_fault(vma, vmf, pfn); } #endif @@ -664,8 +669,10 @@ int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf) *****************************************************************************/ #if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,0) static int axfs_fault(struct vm_area_struct *vma, struct vm_fault *vmf) -#else +#elif LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0) static int axfs_fault(struct vm_fault *vmf) +#else +static vm_fault_t axfs_fault(struct vm_fault *vmf) #endif #else static struct page *axfs_nopage(struct vm_area_struct *vma,