All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 19:06 ` Souptick Joarder
  0 siblings, 0 replies; 25+ messages in thread
From: Souptick Joarder @ 2018-06-14 19:06 UTC (permalink / raw)
  To: willy, rth, tony.luck, mattst88, vgupta, linux, catalin.marinas,
	will.deacon, rkuo, geert, monstr, jhogan, lftan, jonas, jejb,
	benh, palmer, ysato, davem, richard, gxt, tglx, hpa,
	alexander.levin, akpm
  Cc: linux-alpha, linux-kernel, linux-snps-arc, linux-arm-kernel,
	linux-hexagon, linux-ia64, linux-m68k, linux-mips, nios2-dev,
	openrisc, linux-parisc, linuxppc-dev, linux-riscv, linux-s390,
	linux-sh, sparclinux, user-mode-linux-devel,
	user-mode-linux-user, linux-xtensa, iommu, linux-mm,
	brajeswar.linux, sabyasachi.linux

Use new return type vm_fault_t for fault handler. For
now, this is just documenting that the function returns
a VM_FAULT value rather than an errno. Once all instances
are converted, vm_fault_t will become a distinct type.

Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")

In this patch all the caller of handle_mm_fault()
are changed to return vm_fault_t type.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
---
 arch/alpha/mm/fault.c         |  3 ++-
 arch/arc/mm/fault.c           |  4 +++-
 arch/arm/mm/fault.c           |  7 ++++---
 arch/arm64/mm/fault.c         |  6 +++---
 arch/hexagon/mm/vm_fault.c    |  2 +-
 arch/ia64/mm/fault.c          |  2 +-
 arch/m68k/mm/fault.c          |  4 ++--
 arch/microblaze/mm/fault.c    |  2 +-
 arch/mips/mm/fault.c          |  2 +-
 arch/nds32/mm/fault.c         |  2 +-
 arch/nios2/mm/fault.c         |  2 +-
 arch/openrisc/mm/fault.c      |  2 +-
 arch/parisc/mm/fault.c        |  2 +-
 arch/powerpc/mm/copro_fault.c |  2 +-
 arch/powerpc/mm/fault.c       |  7 ++++---
 arch/riscv/mm/fault.c         |  3 ++-
 arch/s390/mm/fault.c          | 13 ++++++++-----
 arch/sh/mm/fault.c            |  4 ++--
 arch/sparc/mm/fault_32.c      |  3 ++-
 arch/sparc/mm/fault_64.c      |  3 ++-
 arch/um/kernel/trap.c         |  2 +-
 arch/unicore32/mm/fault.c     |  9 +++++----
 arch/x86/mm/fault.c           |  5 +++--
 arch/xtensa/mm/fault.c        |  2 +-
 drivers/iommu/amd_iommu_v2.c  |  2 +-
 drivers/iommu/intel-svm.c     |  4 +++-
 mm/hmm.c                      |  8 ++++----
 mm/ksm.c                      |  2 +-
 28 files changed, 62 insertions(+), 47 deletions(-)

diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index cd3c572..2a979ee 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -87,7 +87,8 @@
 	struct vm_area_struct * vma;
 	struct mm_struct *mm = current->mm;
 	const struct exception_table_entry *fixup;
-	int fault, si_code = SEGV_MAPERR;
+	int si_code = SEGV_MAPERR;
+	vm_fault_t fault;
 	siginfo_t info;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c
index a0b7bd6..3a18d33 100644
--- a/arch/arc/mm/fault.c
+++ b/arch/arc/mm/fault.c
@@ -15,6 +15,7 @@
 #include <linux/uaccess.h>
 #include <linux/kdebug.h>
 #include <linux/perf_event.h>
+#include <linux/mm_types.h>
 #include <asm/pgalloc.h>
 #include <asm/mmu.h>
 
@@ -66,7 +67,8 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	siginfo_t info;
-	int fault, ret;
+	int ret;
+	vm_fault_t fault;
 	int write = regs->ecr_cause & ECR_C_PROTV_STORE;  /* ST/EX */
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index b75eada..758abcb 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -219,12 +219,12 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __kprobes
+static vm_fault_t __kprobes
 __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
 		unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -259,7 +259,8 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (notify_page_fault(regs, fsr))
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 2af3dd8..8da263b 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -371,12 +371,12 @@ static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *re
 #define VM_FAULT_BADMAP		0x010000
 #define VM_FAULT_BADACCESS	0x020000
 
-static int __do_page_fault(struct mm_struct *mm, unsigned long addr,
+static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
 			   unsigned int mm_flags, unsigned long vm_flags,
 			   struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -419,7 +419,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct siginfo si;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned long vm_flags = VM_READ | VM_WRITE;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c
index 3eec33c..5d1de6c 100644
--- a/arch/hexagon/mm/vm_fault.c
+++ b/arch/hexagon/mm/vm_fault.c
@@ -52,7 +52,7 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	siginfo_t info;
 	int si_code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	const struct exception_table_entry *fixup;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index dfdc152..e085d89 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -87,7 +87,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
 	struct mm_struct *mm = current->mm;
 	struct siginfo si;
 	unsigned long mask;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index 03253c4..1fc7ac0 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -73,7 +73,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 {
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	pr_debug("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n",
@@ -139,7 +139,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 	 */
 
 	fault = handle_mm_fault(vma, address, flags);
-	pr_debug("handle_mm_fault returns %d\n", fault);
+	pr_debug("handle_mm_fault returns %x\n", fault);
 
 	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
 		return 0;
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index f91b30f..92a8682 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -91,7 +91,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
 	siginfo_t info;
 	int code = SEGV_MAPERR;
 	int is_write = error_code & ESR_S;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	regs->ear = address;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 4f8f5bf..0bc5030 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -43,7 +43,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
 	struct mm_struct *mm = tsk->mm;
 	const int field = sizeof(unsigned long) * 2;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10);
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
index 3a246fb..96796d3 100644
--- a/arch/nds32/mm/fault.c
+++ b/arch/nds32/mm/fault.c
@@ -73,7 +73,7 @@ void do_page_fault(unsigned long entry, unsigned long addr,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int mask = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c
index b804dd0..24fd84c 100644
--- a/arch/nios2/mm/fault.c
+++ b/arch/nios2/mm/fault.c
@@ -47,7 +47,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause,
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	int code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	cause >>= 2;
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index d0021df..21e8f16 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -53,7 +53,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index e247edb..ff9e634 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -262,7 +262,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	unsigned long acc_type;
-	int fault = 0;
+	vm_fault_t fault = 0;
 	unsigned int flags;
 
 	if (faulthandler_disabled())
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c
index 7d0945b..c8da352 100644
--- a/arch/powerpc/mm/copro_fault.c
+++ b/arch/powerpc/mm/copro_fault.c
@@ -34,7 +34,7 @@
  * to handle fortunately.
  */
 int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
-		unsigned long dsisr, unsigned *flt)
+		unsigned long dsisr, vm_fault_t *flt)
 {
 	struct vm_area_struct *vma;
 	unsigned long is_write;
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index c01d627..17cce1b 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -159,7 +159,7 @@ static noinline int bad_access(struct pt_regs *regs, unsigned long address)
 }
 
 static int do_sigbus(struct pt_regs *regs, unsigned long address,
-		     unsigned int fault)
+		     vm_fault_t fault)
 {
 	siginfo_t info;
 	unsigned int lsb = 0;
@@ -189,7 +189,8 @@ static int do_sigbus(struct pt_regs *regs, unsigned long address,
 	return 0;
 }
 
-static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
+static int mm_fault_error(struct pt_regs *regs, unsigned long addr,
+				vm_fault_t fault)
 {
 	/*
 	 * Kernel page fault interrupted by SIGKILL. We have no reason to
@@ -402,7 +403,7 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address,
  	int is_exec = TRAP(regs) == 0x400;
 	int is_user = user_mode(regs);
 	int is_write = page_fault_is_write(error_code);
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	bool store_update_sp = false;
 
 	if (notify_page_fault(regs))
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index 148c98c..88401d5 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -41,7 +41,8 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 	struct mm_struct *mm;
 	unsigned long addr, cause;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
-	int fault, code = SEGV_MAPERR;
+	int code = SEGV_MAPERR;
+	vm_fault_t fault;
 
 	cause = regs->scause;
 	addr = regs->sbadaddr;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 93faeca..8ea0855 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -350,7 +350,8 @@ static noinline int signal_return(struct pt_regs *regs)
 	return -EACCES;
 }
 
-static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
+static noinline void do_fault_error(struct pt_regs *regs, int access,
+					vm_fault_t fault)
 {
 	int si_code;
 
@@ -410,7 +411,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
  *   11       Page translation     ->  Not present       (nullification)
  *   3b       Region third trans.  ->  Not present       (nullification)
  */
-static inline int do_exception(struct pt_regs *regs, int access)
+static inline vm_fault_t do_exception(struct pt_regs *regs, int access)
 {
 	struct gmap *gmap;
 	struct task_struct *tsk;
@@ -420,7 +421,7 @@ static inline int do_exception(struct pt_regs *regs, int access)
 	unsigned long trans_exc_code;
 	unsigned long address;
 	unsigned int flags;
-	int fault;
+	vm_fault_t fault;
 
 	tsk = current;
 	/*
@@ -571,7 +572,8 @@ static inline int do_exception(struct pt_regs *regs, int access)
 void do_protection_exception(struct pt_regs *regs)
 {
 	unsigned long trans_exc_code;
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	trans_exc_code = regs->int_parm_long;
 	/*
@@ -606,7 +608,8 @@ void do_protection_exception(struct pt_regs *regs)
 
 void do_dat_exception(struct pt_regs *regs)
 {
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	access = VM_READ | VM_EXEC | VM_WRITE;
 	fault = do_exception(regs, access);
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 6fd1bf7..474bf14 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -320,7 +320,7 @@ static noinline int vmalloc_fault(unsigned long address)
 
 static noinline int
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, unsigned int fault)
+	       unsigned long address, vm_fault_t fault)
 {
 	/*
 	 * Pagefault was interrupted by SIGKILL. We have no reason to
@@ -403,7 +403,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index a8103a8..1a44a4e 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -174,7 +174,8 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write,
 	unsigned int fixup;
 	unsigned long g2;
 	int from_user = !(regs->psr & PSR_PS);
-	int fault, code;
+	int code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (text_fault)
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index 41363f4..2078bfe 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -284,7 +284,8 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct *vma;
 	unsigned int insn = 0;
-	int si_code, fault_code, fault;
+	int si_code, fault_code;
+	vm_fault_t fault;
 	unsigned long address, mm_rss;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index b2b02df..0afcd09 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -72,7 +72,7 @@ int handle_page_fault(unsigned long address, unsigned long ip,
 	}
 
 	do {
-		int fault;
+		vm_fault_t fault;
 
 		fault = handle_mm_fault(vma, address, flags);
 
diff --git a/arch/unicore32/mm/fault.c b/arch/unicore32/mm/fault.c
index bbefcc4..2982140 100644
--- a/arch/unicore32/mm/fault.c
+++ b/arch/unicore32/mm/fault.c
@@ -167,11 +167,11 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __do_pf(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
-		unsigned int flags, struct task_struct *tsk)
+static vm_fault_t __do_pf(struct mm_struct *mm, unsigned long addr,
+		unsigned int fsr, unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -208,7 +208,8 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 73bd8c9..5171d60 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -16,6 +16,7 @@
 #include <linux/prefetch.h>		/* prefetchw			*/
 #include <linux/context_tracking.h>	/* exception_enter(), ...	*/
 #include <linux/uaccess.h>		/* faulthandler_disabled()	*/
+#include <linux/mm_types.h>
 
 #include <asm/cpufeature.h>		/* boot_cpu_has, ...		*/
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
@@ -1004,7 +1005,7 @@ static inline bool bad_area_access_from_pkeys(unsigned long error_code,
 
 static noinline void
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, u32 *pkey, unsigned int fault)
+	       unsigned long address, u32 *pkey, vm_fault_t fault)
 {
 	if (fatal_signal_pending(current) && !(error_code & X86_PF_USER)) {
 		no_context(regs, error_code, address, 0, 0);
@@ -1218,7 +1219,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
 	struct vm_area_struct *vma;
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 	u32 pkey;
 
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index 8b9b6f4..203fade 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -42,7 +42,7 @@ void do_page_fault(struct pt_regs *regs)
 	siginfo_t info;
 
 	int is_write, is_exec;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	info.si_code = SEGV_MAPERR;
diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c
index 1d0b53a0..58da65d 100644
--- a/drivers/iommu/amd_iommu_v2.c
+++ b/drivers/iommu/amd_iommu_v2.c
@@ -508,7 +508,7 @@ static void do_fault(struct work_struct *work)
 {
 	struct fault *fault = container_of(work, struct fault, work);
 	struct vm_area_struct *vma;
-	int ret = VM_FAULT_ERROR;
+	vm_fault_t ret = VM_FAULT_ERROR;
 	unsigned int flags = 0;
 	struct mm_struct *mm;
 	u64 address;
diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
index e8cd984..75189c0 100644
--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -24,6 +24,7 @@
 #include <linux/pci-ats.h>
 #include <linux/dmar.h>
 #include <linux/interrupt.h>
+#include <linux/mm_types.h>
 #include <asm/page.h>
 
 #define PASID_ENTRY_P		BIT_ULL(0)
@@ -594,7 +595,8 @@ static irqreturn_t prq_event_thread(int irq, void *d)
 		struct vm_area_struct *vma;
 		struct page_req_dsc *req;
 		struct qi_desc resp;
-		int ret, result;
+		int result;
+		vm_fault_t ret;
 		u64 address;
 
 		handled = 1;
diff --git a/mm/hmm.c b/mm/hmm.c
index 486dc39..d7919e5 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -308,14 +308,14 @@ static int hmm_vma_do_fault(struct mm_walk *walk, unsigned long addr,
 	struct hmm_vma_walk *hmm_vma_walk = walk->private;
 	struct hmm_range *range = hmm_vma_walk->range;
 	struct vm_area_struct *vma = walk->vma;
-	int r;
+	vm_fault_t ret;
 
 	flags |= hmm_vma_walk->block ? 0 : FAULT_FLAG_ALLOW_RETRY;
 	flags |= write_fault ? FAULT_FLAG_WRITE : 0;
-	r = handle_mm_fault(vma, addr, flags);
-	if (r & VM_FAULT_RETRY)
+	ret = handle_mm_fault(vma, addr, flags);
+	if (ret & VM_FAULT_RETRY)
 		return -EBUSY;
-	if (r & VM_FAULT_ERROR) {
+	if (ret & VM_FAULT_ERROR) {
 		*pfn = range->values[HMM_PFN_ERROR];
 		return -EFAULT;
 	}
diff --git a/mm/ksm.c b/mm/ksm.c
index e3cbf9a..cb4e6ed 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -451,7 +451,7 @@ static inline bool ksm_test_exit(struct mm_struct *mm)
 static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
 {
 	struct page *page;
-	int ret = 0;
+	vm_fault_t ret = 0;
 
 	do {
 		cond_resched();
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 19:06 ` Souptick Joarder
  0 siblings, 0 replies; 25+ messages in thread
From: Souptick Joarder @ 2018-06-14 19:06 UTC (permalink / raw)
  To: linux-riscv

Use new return type vm_fault_t for fault handler. For
now, this is just documenting that the function returns
a VM_FAULT value rather than an errno. Once all instances
are converted, vm_fault_t will become a distinct type.

Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")

In this patch all the caller of handle_mm_fault()
are changed to return vm_fault_t type.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
---
 arch/alpha/mm/fault.c         |  3 ++-
 arch/arc/mm/fault.c           |  4 +++-
 arch/arm/mm/fault.c           |  7 ++++---
 arch/arm64/mm/fault.c         |  6 +++---
 arch/hexagon/mm/vm_fault.c    |  2 +-
 arch/ia64/mm/fault.c          |  2 +-
 arch/m68k/mm/fault.c          |  4 ++--
 arch/microblaze/mm/fault.c    |  2 +-
 arch/mips/mm/fault.c          |  2 +-
 arch/nds32/mm/fault.c         |  2 +-
 arch/nios2/mm/fault.c         |  2 +-
 arch/openrisc/mm/fault.c      |  2 +-
 arch/parisc/mm/fault.c        |  2 +-
 arch/powerpc/mm/copro_fault.c |  2 +-
 arch/powerpc/mm/fault.c       |  7 ++++---
 arch/riscv/mm/fault.c         |  3 ++-
 arch/s390/mm/fault.c          | 13 ++++++++-----
 arch/sh/mm/fault.c            |  4 ++--
 arch/sparc/mm/fault_32.c      |  3 ++-
 arch/sparc/mm/fault_64.c      |  3 ++-
 arch/um/kernel/trap.c         |  2 +-
 arch/unicore32/mm/fault.c     |  9 +++++----
 arch/x86/mm/fault.c           |  5 +++--
 arch/xtensa/mm/fault.c        |  2 +-
 drivers/iommu/amd_iommu_v2.c  |  2 +-
 drivers/iommu/intel-svm.c     |  4 +++-
 mm/hmm.c                      |  8 ++++----
 mm/ksm.c                      |  2 +-
 28 files changed, 62 insertions(+), 47 deletions(-)

diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index cd3c572..2a979ee 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -87,7 +87,8 @@
 	struct vm_area_struct * vma;
 	struct mm_struct *mm = current->mm;
 	const struct exception_table_entry *fixup;
-	int fault, si_code = SEGV_MAPERR;
+	int si_code = SEGV_MAPERR;
+	vm_fault_t fault;
 	siginfo_t info;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c
index a0b7bd6..3a18d33 100644
--- a/arch/arc/mm/fault.c
+++ b/arch/arc/mm/fault.c
@@ -15,6 +15,7 @@
 #include <linux/uaccess.h>
 #include <linux/kdebug.h>
 #include <linux/perf_event.h>
+#include <linux/mm_types.h>
 #include <asm/pgalloc.h>
 #include <asm/mmu.h>
 
@@ -66,7 +67,8 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	siginfo_t info;
-	int fault, ret;
+	int ret;
+	vm_fault_t fault;
 	int write = regs->ecr_cause & ECR_C_PROTV_STORE;  /* ST/EX */
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index b75eada..758abcb 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -219,12 +219,12 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __kprobes
+static vm_fault_t __kprobes
 __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
 		unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -259,7 +259,8 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (notify_page_fault(regs, fsr))
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 2af3dd8..8da263b 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -371,12 +371,12 @@ static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *re
 #define VM_FAULT_BADMAP		0x010000
 #define VM_FAULT_BADACCESS	0x020000
 
-static int __do_page_fault(struct mm_struct *mm, unsigned long addr,
+static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
 			   unsigned int mm_flags, unsigned long vm_flags,
 			   struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -419,7 +419,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct siginfo si;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned long vm_flags = VM_READ | VM_WRITE;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c
index 3eec33c..5d1de6c 100644
--- a/arch/hexagon/mm/vm_fault.c
+++ b/arch/hexagon/mm/vm_fault.c
@@ -52,7 +52,7 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	siginfo_t info;
 	int si_code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	const struct exception_table_entry *fixup;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index dfdc152..e085d89 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -87,7 +87,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
 	struct mm_struct *mm = current->mm;
 	struct siginfo si;
 	unsigned long mask;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index 03253c4..1fc7ac0 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -73,7 +73,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 {
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	pr_debug("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n",
@@ -139,7 +139,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 	 */
 
 	fault = handle_mm_fault(vma, address, flags);
-	pr_debug("handle_mm_fault returns %d\n", fault);
+	pr_debug("handle_mm_fault returns %x\n", fault);
 
 	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
 		return 0;
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index f91b30f..92a8682 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -91,7 +91,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
 	siginfo_t info;
 	int code = SEGV_MAPERR;
 	int is_write = error_code & ESR_S;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	regs->ear = address;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 4f8f5bf..0bc5030 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -43,7 +43,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
 	struct mm_struct *mm = tsk->mm;
 	const int field = sizeof(unsigned long) * 2;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10);
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
index 3a246fb..96796d3 100644
--- a/arch/nds32/mm/fault.c
+++ b/arch/nds32/mm/fault.c
@@ -73,7 +73,7 @@ void do_page_fault(unsigned long entry, unsigned long addr,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int mask = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c
index b804dd0..24fd84c 100644
--- a/arch/nios2/mm/fault.c
+++ b/arch/nios2/mm/fault.c
@@ -47,7 +47,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause,
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	int code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	cause >>= 2;
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index d0021df..21e8f16 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -53,7 +53,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index e247edb..ff9e634 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -262,7 +262,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	unsigned long acc_type;
-	int fault = 0;
+	vm_fault_t fault = 0;
 	unsigned int flags;
 
 	if (faulthandler_disabled())
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c
index 7d0945b..c8da352 100644
--- a/arch/powerpc/mm/copro_fault.c
+++ b/arch/powerpc/mm/copro_fault.c
@@ -34,7 +34,7 @@
  * to handle fortunately.
  */
 int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
-		unsigned long dsisr, unsigned *flt)
+		unsigned long dsisr, vm_fault_t *flt)
 {
 	struct vm_area_struct *vma;
 	unsigned long is_write;
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index c01d627..17cce1b 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -159,7 +159,7 @@ static noinline int bad_access(struct pt_regs *regs, unsigned long address)
 }
 
 static int do_sigbus(struct pt_regs *regs, unsigned long address,
-		     unsigned int fault)
+		     vm_fault_t fault)
 {
 	siginfo_t info;
 	unsigned int lsb = 0;
@@ -189,7 +189,8 @@ static int do_sigbus(struct pt_regs *regs, unsigned long address,
 	return 0;
 }
 
-static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
+static int mm_fault_error(struct pt_regs *regs, unsigned long addr,
+				vm_fault_t fault)
 {
 	/*
 	 * Kernel page fault interrupted by SIGKILL. We have no reason to
@@ -402,7 +403,7 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address,
  	int is_exec = TRAP(regs) == 0x400;
 	int is_user = user_mode(regs);
 	int is_write = page_fault_is_write(error_code);
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	bool store_update_sp = false;
 
 	if (notify_page_fault(regs))
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index 148c98c..88401d5 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -41,7 +41,8 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 	struct mm_struct *mm;
 	unsigned long addr, cause;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
-	int fault, code = SEGV_MAPERR;
+	int code = SEGV_MAPERR;
+	vm_fault_t fault;
 
 	cause = regs->scause;
 	addr = regs->sbadaddr;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 93faeca..8ea0855 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -350,7 +350,8 @@ static noinline int signal_return(struct pt_regs *regs)
 	return -EACCES;
 }
 
-static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
+static noinline void do_fault_error(struct pt_regs *regs, int access,
+					vm_fault_t fault)
 {
 	int si_code;
 
@@ -410,7 +411,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
  *   11       Page translation     ->  Not present       (nullification)
  *   3b       Region third trans.  ->  Not present       (nullification)
  */
-static inline int do_exception(struct pt_regs *regs, int access)
+static inline vm_fault_t do_exception(struct pt_regs *regs, int access)
 {
 	struct gmap *gmap;
 	struct task_struct *tsk;
@@ -420,7 +421,7 @@ static inline int do_exception(struct pt_regs *regs, int access)
 	unsigned long trans_exc_code;
 	unsigned long address;
 	unsigned int flags;
-	int fault;
+	vm_fault_t fault;
 
 	tsk = current;
 	/*
@@ -571,7 +572,8 @@ static inline int do_exception(struct pt_regs *regs, int access)
 void do_protection_exception(struct pt_regs *regs)
 {
 	unsigned long trans_exc_code;
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	trans_exc_code = regs->int_parm_long;
 	/*
@@ -606,7 +608,8 @@ void do_protection_exception(struct pt_regs *regs)
 
 void do_dat_exception(struct pt_regs *regs)
 {
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	access = VM_READ | VM_EXEC | VM_WRITE;
 	fault = do_exception(regs, access);
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 6fd1bf7..474bf14 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -320,7 +320,7 @@ static noinline int vmalloc_fault(unsigned long address)
 
 static noinline int
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, unsigned int fault)
+	       unsigned long address, vm_fault_t fault)
 {
 	/*
 	 * Pagefault was interrupted by SIGKILL. We have no reason to
@@ -403,7 +403,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index a8103a8..1a44a4e 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -174,7 +174,8 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write,
 	unsigned int fixup;
 	unsigned long g2;
 	int from_user = !(regs->psr & PSR_PS);
-	int fault, code;
+	int code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (text_fault)
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index 41363f4..2078bfe 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -284,7 +284,8 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct *vma;
 	unsigned int insn = 0;
-	int si_code, fault_code, fault;
+	int si_code, fault_code;
+	vm_fault_t fault;
 	unsigned long address, mm_rss;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index b2b02df..0afcd09 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -72,7 +72,7 @@ int handle_page_fault(unsigned long address, unsigned long ip,
 	}
 
 	do {
-		int fault;
+		vm_fault_t fault;
 
 		fault = handle_mm_fault(vma, address, flags);
 
diff --git a/arch/unicore32/mm/fault.c b/arch/unicore32/mm/fault.c
index bbefcc4..2982140 100644
--- a/arch/unicore32/mm/fault.c
+++ b/arch/unicore32/mm/fault.c
@@ -167,11 +167,11 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __do_pf(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
-		unsigned int flags, struct task_struct *tsk)
+static vm_fault_t __do_pf(struct mm_struct *mm, unsigned long addr,
+		unsigned int fsr, unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -208,7 +208,8 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 73bd8c9..5171d60 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -16,6 +16,7 @@
 #include <linux/prefetch.h>		/* prefetchw			*/
 #include <linux/context_tracking.h>	/* exception_enter(), ...	*/
 #include <linux/uaccess.h>		/* faulthandler_disabled()	*/
+#include <linux/mm_types.h>
 
 #include <asm/cpufeature.h>		/* boot_cpu_has, ...		*/
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
@@ -1004,7 +1005,7 @@ static inline bool bad_area_access_from_pkeys(unsigned long error_code,
 
 static noinline void
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, u32 *pkey, unsigned int fault)
+	       unsigned long address, u32 *pkey, vm_fault_t fault)
 {
 	if (fatal_signal_pending(current) && !(error_code & X86_PF_USER)) {
 		no_context(regs, error_code, address, 0, 0);
@@ -1218,7 +1219,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
 	struct vm_area_struct *vma;
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 	u32 pkey;
 
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index 8b9b6f4..203fade 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -42,7 +42,7 @@ void do_page_fault(struct pt_regs *regs)
 	siginfo_t info;
 
 	int is_write, is_exec;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	info.si_code = SEGV_MAPERR;
diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c
index 1d0b53a0..58da65d 100644
--- a/drivers/iommu/amd_iommu_v2.c
+++ b/drivers/iommu/amd_iommu_v2.c
@@ -508,7 +508,7 @@ static void do_fault(struct work_struct *work)
 {
 	struct fault *fault = container_of(work, struct fault, work);
 	struct vm_area_struct *vma;
-	int ret = VM_FAULT_ERROR;
+	vm_fault_t ret = VM_FAULT_ERROR;
 	unsigned int flags = 0;
 	struct mm_struct *mm;
 	u64 address;
diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
index e8cd984..75189c0 100644
--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -24,6 +24,7 @@
 #include <linux/pci-ats.h>
 #include <linux/dmar.h>
 #include <linux/interrupt.h>
+#include <linux/mm_types.h>
 #include <asm/page.h>
 
 #define PASID_ENTRY_P		BIT_ULL(0)
@@ -594,7 +595,8 @@ static irqreturn_t prq_event_thread(int irq, void *d)
 		struct vm_area_struct *vma;
 		struct page_req_dsc *req;
 		struct qi_desc resp;
-		int ret, result;
+		int result;
+		vm_fault_t ret;
 		u64 address;
 
 		handled = 1;
diff --git a/mm/hmm.c b/mm/hmm.c
index 486dc39..d7919e5 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -308,14 +308,14 @@ static int hmm_vma_do_fault(struct mm_walk *walk, unsigned long addr,
 	struct hmm_vma_walk *hmm_vma_walk = walk->private;
 	struct hmm_range *range = hmm_vma_walk->range;
 	struct vm_area_struct *vma = walk->vma;
-	int r;
+	vm_fault_t ret;
 
 	flags |= hmm_vma_walk->block ? 0 : FAULT_FLAG_ALLOW_RETRY;
 	flags |= write_fault ? FAULT_FLAG_WRITE : 0;
-	r = handle_mm_fault(vma, addr, flags);
-	if (r & VM_FAULT_RETRY)
+	ret = handle_mm_fault(vma, addr, flags);
+	if (ret & VM_FAULT_RETRY)
 		return -EBUSY;
-	if (r & VM_FAULT_ERROR) {
+	if (ret & VM_FAULT_ERROR) {
 		*pfn = range->values[HMM_PFN_ERROR];
 		return -EFAULT;
 	}
diff --git a/mm/ksm.c b/mm/ksm.c
index e3cbf9a..cb4e6ed 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -451,7 +451,7 @@ static inline bool ksm_test_exit(struct mm_struct *mm)
 static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
 {
 	struct page *page;
-	int ret = 0;
+	vm_fault_t ret = 0;
 
 	do {
 		cond_resched();
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 19:06 ` Souptick Joarder
  0 siblings, 0 replies; 25+ messages in thread
From: Souptick Joarder @ 2018-06-14 19:06 UTC (permalink / raw)
  To: linux-snps-arc

Use new return type vm_fault_t for fault handler. For
now, this is just documenting that the function returns
a VM_FAULT value rather than an errno. Once all instances
are converted, vm_fault_t will become a distinct type.

Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")

In this patch all the caller of handle_mm_fault()
are changed to return vm_fault_t type.

Signed-off-by: Souptick Joarder <jrdr.linux at gmail.com>
---
 arch/alpha/mm/fault.c         |  3 ++-
 arch/arc/mm/fault.c           |  4 +++-
 arch/arm/mm/fault.c           |  7 ++++---
 arch/arm64/mm/fault.c         |  6 +++---
 arch/hexagon/mm/vm_fault.c    |  2 +-
 arch/ia64/mm/fault.c          |  2 +-
 arch/m68k/mm/fault.c          |  4 ++--
 arch/microblaze/mm/fault.c    |  2 +-
 arch/mips/mm/fault.c          |  2 +-
 arch/nds32/mm/fault.c         |  2 +-
 arch/nios2/mm/fault.c         |  2 +-
 arch/openrisc/mm/fault.c      |  2 +-
 arch/parisc/mm/fault.c        |  2 +-
 arch/powerpc/mm/copro_fault.c |  2 +-
 arch/powerpc/mm/fault.c       |  7 ++++---
 arch/riscv/mm/fault.c         |  3 ++-
 arch/s390/mm/fault.c          | 13 ++++++++-----
 arch/sh/mm/fault.c            |  4 ++--
 arch/sparc/mm/fault_32.c      |  3 ++-
 arch/sparc/mm/fault_64.c      |  3 ++-
 arch/um/kernel/trap.c         |  2 +-
 arch/unicore32/mm/fault.c     |  9 +++++----
 arch/x86/mm/fault.c           |  5 +++--
 arch/xtensa/mm/fault.c        |  2 +-
 drivers/iommu/amd_iommu_v2.c  |  2 +-
 drivers/iommu/intel-svm.c     |  4 +++-
 mm/hmm.c                      |  8 ++++----
 mm/ksm.c                      |  2 +-
 28 files changed, 62 insertions(+), 47 deletions(-)

diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index cd3c572..2a979ee 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -87,7 +87,8 @@
 	struct vm_area_struct * vma;
 	struct mm_struct *mm = current->mm;
 	const struct exception_table_entry *fixup;
-	int fault, si_code = SEGV_MAPERR;
+	int si_code = SEGV_MAPERR;
+	vm_fault_t fault;
 	siginfo_t info;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c
index a0b7bd6..3a18d33 100644
--- a/arch/arc/mm/fault.c
+++ b/arch/arc/mm/fault.c
@@ -15,6 +15,7 @@
 #include <linux/uaccess.h>
 #include <linux/kdebug.h>
 #include <linux/perf_event.h>
+#include <linux/mm_types.h>
 #include <asm/pgalloc.h>
 #include <asm/mmu.h>
 
@@ -66,7 +67,8 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	siginfo_t info;
-	int fault, ret;
+	int ret;
+	vm_fault_t fault;
 	int write = regs->ecr_cause & ECR_C_PROTV_STORE;  /* ST/EX */
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index b75eada..758abcb 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -219,12 +219,12 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __kprobes
+static vm_fault_t __kprobes
 __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
 		unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -259,7 +259,8 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (notify_page_fault(regs, fsr))
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 2af3dd8..8da263b 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -371,12 +371,12 @@ static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *re
 #define VM_FAULT_BADMAP		0x010000
 #define VM_FAULT_BADACCESS	0x020000
 
-static int __do_page_fault(struct mm_struct *mm, unsigned long addr,
+static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
 			   unsigned int mm_flags, unsigned long vm_flags,
 			   struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -419,7 +419,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct siginfo si;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned long vm_flags = VM_READ | VM_WRITE;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c
index 3eec33c..5d1de6c 100644
--- a/arch/hexagon/mm/vm_fault.c
+++ b/arch/hexagon/mm/vm_fault.c
@@ -52,7 +52,7 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	siginfo_t info;
 	int si_code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	const struct exception_table_entry *fixup;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index dfdc152..e085d89 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -87,7 +87,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
 	struct mm_struct *mm = current->mm;
 	struct siginfo si;
 	unsigned long mask;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index 03253c4..1fc7ac0 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -73,7 +73,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 {
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	pr_debug("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n",
@@ -139,7 +139,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 	 */
 
 	fault = handle_mm_fault(vma, address, flags);
-	pr_debug("handle_mm_fault returns %d\n", fault);
+	pr_debug("handle_mm_fault returns %x\n", fault);
 
 	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
 		return 0;
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index f91b30f..92a8682 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -91,7 +91,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
 	siginfo_t info;
 	int code = SEGV_MAPERR;
 	int is_write = error_code & ESR_S;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	regs->ear = address;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 4f8f5bf..0bc5030 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -43,7 +43,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
 	struct mm_struct *mm = tsk->mm;
 	const int field = sizeof(unsigned long) * 2;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10);
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
index 3a246fb..96796d3 100644
--- a/arch/nds32/mm/fault.c
+++ b/arch/nds32/mm/fault.c
@@ -73,7 +73,7 @@ void do_page_fault(unsigned long entry, unsigned long addr,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int mask = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c
index b804dd0..24fd84c 100644
--- a/arch/nios2/mm/fault.c
+++ b/arch/nios2/mm/fault.c
@@ -47,7 +47,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause,
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	int code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	cause >>= 2;
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index d0021df..21e8f16 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -53,7 +53,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index e247edb..ff9e634 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -262,7 +262,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	unsigned long acc_type;
-	int fault = 0;
+	vm_fault_t fault = 0;
 	unsigned int flags;
 
 	if (faulthandler_disabled())
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c
index 7d0945b..c8da352 100644
--- a/arch/powerpc/mm/copro_fault.c
+++ b/arch/powerpc/mm/copro_fault.c
@@ -34,7 +34,7 @@
  * to handle fortunately.
  */
 int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
-		unsigned long dsisr, unsigned *flt)
+		unsigned long dsisr, vm_fault_t *flt)
 {
 	struct vm_area_struct *vma;
 	unsigned long is_write;
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index c01d627..17cce1b 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -159,7 +159,7 @@ static noinline int bad_access(struct pt_regs *regs, unsigned long address)
 }
 
 static int do_sigbus(struct pt_regs *regs, unsigned long address,
-		     unsigned int fault)
+		     vm_fault_t fault)
 {
 	siginfo_t info;
 	unsigned int lsb = 0;
@@ -189,7 +189,8 @@ static int do_sigbus(struct pt_regs *regs, unsigned long address,
 	return 0;
 }
 
-static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
+static int mm_fault_error(struct pt_regs *regs, unsigned long addr,
+				vm_fault_t fault)
 {
 	/*
 	 * Kernel page fault interrupted by SIGKILL. We have no reason to
@@ -402,7 +403,7 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address,
  	int is_exec = TRAP(regs) == 0x400;
 	int is_user = user_mode(regs);
 	int is_write = page_fault_is_write(error_code);
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	bool store_update_sp = false;
 
 	if (notify_page_fault(regs))
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index 148c98c..88401d5 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -41,7 +41,8 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 	struct mm_struct *mm;
 	unsigned long addr, cause;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
-	int fault, code = SEGV_MAPERR;
+	int code = SEGV_MAPERR;
+	vm_fault_t fault;
 
 	cause = regs->scause;
 	addr = regs->sbadaddr;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 93faeca..8ea0855 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -350,7 +350,8 @@ static noinline int signal_return(struct pt_regs *regs)
 	return -EACCES;
 }
 
-static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
+static noinline void do_fault_error(struct pt_regs *regs, int access,
+					vm_fault_t fault)
 {
 	int si_code;
 
@@ -410,7 +411,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
  *   11       Page translation     ->  Not present       (nullification)
  *   3b       Region third trans.  ->  Not present       (nullification)
  */
-static inline int do_exception(struct pt_regs *regs, int access)
+static inline vm_fault_t do_exception(struct pt_regs *regs, int access)
 {
 	struct gmap *gmap;
 	struct task_struct *tsk;
@@ -420,7 +421,7 @@ static inline int do_exception(struct pt_regs *regs, int access)
 	unsigned long trans_exc_code;
 	unsigned long address;
 	unsigned int flags;
-	int fault;
+	vm_fault_t fault;
 
 	tsk = current;
 	/*
@@ -571,7 +572,8 @@ static inline int do_exception(struct pt_regs *regs, int access)
 void do_protection_exception(struct pt_regs *regs)
 {
 	unsigned long trans_exc_code;
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	trans_exc_code = regs->int_parm_long;
 	/*
@@ -606,7 +608,8 @@ void do_protection_exception(struct pt_regs *regs)
 
 void do_dat_exception(struct pt_regs *regs)
 {
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	access = VM_READ | VM_EXEC | VM_WRITE;
 	fault = do_exception(regs, access);
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 6fd1bf7..474bf14 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -320,7 +320,7 @@ static noinline int vmalloc_fault(unsigned long address)
 
 static noinline int
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, unsigned int fault)
+	       unsigned long address, vm_fault_t fault)
 {
 	/*
 	 * Pagefault was interrupted by SIGKILL. We have no reason to
@@ -403,7 +403,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index a8103a8..1a44a4e 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -174,7 +174,8 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write,
 	unsigned int fixup;
 	unsigned long g2;
 	int from_user = !(regs->psr & PSR_PS);
-	int fault, code;
+	int code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (text_fault)
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index 41363f4..2078bfe 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -284,7 +284,8 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct *vma;
 	unsigned int insn = 0;
-	int si_code, fault_code, fault;
+	int si_code, fault_code;
+	vm_fault_t fault;
 	unsigned long address, mm_rss;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index b2b02df..0afcd09 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -72,7 +72,7 @@ int handle_page_fault(unsigned long address, unsigned long ip,
 	}
 
 	do {
-		int fault;
+		vm_fault_t fault;
 
 		fault = handle_mm_fault(vma, address, flags);
 
diff --git a/arch/unicore32/mm/fault.c b/arch/unicore32/mm/fault.c
index bbefcc4..2982140 100644
--- a/arch/unicore32/mm/fault.c
+++ b/arch/unicore32/mm/fault.c
@@ -167,11 +167,11 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __do_pf(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
-		unsigned int flags, struct task_struct *tsk)
+static vm_fault_t __do_pf(struct mm_struct *mm, unsigned long addr,
+		unsigned int fsr, unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -208,7 +208,8 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 73bd8c9..5171d60 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -16,6 +16,7 @@
 #include <linux/prefetch.h>		/* prefetchw			*/
 #include <linux/context_tracking.h>	/* exception_enter(), ...	*/
 #include <linux/uaccess.h>		/* faulthandler_disabled()	*/
+#include <linux/mm_types.h>
 
 #include <asm/cpufeature.h>		/* boot_cpu_has, ...		*/
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
@@ -1004,7 +1005,7 @@ static inline bool bad_area_access_from_pkeys(unsigned long error_code,
 
 static noinline void
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, u32 *pkey, unsigned int fault)
+	       unsigned long address, u32 *pkey, vm_fault_t fault)
 {
 	if (fatal_signal_pending(current) && !(error_code & X86_PF_USER)) {
 		no_context(regs, error_code, address, 0, 0);
@@ -1218,7 +1219,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
 	struct vm_area_struct *vma;
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 	u32 pkey;
 
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index 8b9b6f4..203fade 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -42,7 +42,7 @@ void do_page_fault(struct pt_regs *regs)
 	siginfo_t info;
 
 	int is_write, is_exec;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	info.si_code = SEGV_MAPERR;
diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c
index 1d0b53a0..58da65d 100644
--- a/drivers/iommu/amd_iommu_v2.c
+++ b/drivers/iommu/amd_iommu_v2.c
@@ -508,7 +508,7 @@ static void do_fault(struct work_struct *work)
 {
 	struct fault *fault = container_of(work, struct fault, work);
 	struct vm_area_struct *vma;
-	int ret = VM_FAULT_ERROR;
+	vm_fault_t ret = VM_FAULT_ERROR;
 	unsigned int flags = 0;
 	struct mm_struct *mm;
 	u64 address;
diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
index e8cd984..75189c0 100644
--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -24,6 +24,7 @@
 #include <linux/pci-ats.h>
 #include <linux/dmar.h>
 #include <linux/interrupt.h>
+#include <linux/mm_types.h>
 #include <asm/page.h>
 
 #define PASID_ENTRY_P		BIT_ULL(0)
@@ -594,7 +595,8 @@ static irqreturn_t prq_event_thread(int irq, void *d)
 		struct vm_area_struct *vma;
 		struct page_req_dsc *req;
 		struct qi_desc resp;
-		int ret, result;
+		int result;
+		vm_fault_t ret;
 		u64 address;
 
 		handled = 1;
diff --git a/mm/hmm.c b/mm/hmm.c
index 486dc39..d7919e5 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -308,14 +308,14 @@ static int hmm_vma_do_fault(struct mm_walk *walk, unsigned long addr,
 	struct hmm_vma_walk *hmm_vma_walk = walk->private;
 	struct hmm_range *range = hmm_vma_walk->range;
 	struct vm_area_struct *vma = walk->vma;
-	int r;
+	vm_fault_t ret;
 
 	flags |= hmm_vma_walk->block ? 0 : FAULT_FLAG_ALLOW_RETRY;
 	flags |= write_fault ? FAULT_FLAG_WRITE : 0;
-	r = handle_mm_fault(vma, addr, flags);
-	if (r & VM_FAULT_RETRY)
+	ret = handle_mm_fault(vma, addr, flags);
+	if (ret & VM_FAULT_RETRY)
 		return -EBUSY;
-	if (r & VM_FAULT_ERROR) {
+	if (ret & VM_FAULT_ERROR) {
 		*pfn = range->values[HMM_PFN_ERROR];
 		return -EFAULT;
 	}
diff --git a/mm/ksm.c b/mm/ksm.c
index e3cbf9a..cb4e6ed 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -451,7 +451,7 @@ static inline bool ksm_test_exit(struct mm_struct *mm)
 static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
 {
 	struct page *page;
-	int ret = 0;
+	vm_fault_t ret = 0;
 
 	do {
 		cond_resched();
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 19:06 ` Souptick Joarder
  0 siblings, 0 replies; 25+ messages in thread
From: Souptick Joarder @ 2018-06-14 19:06 UTC (permalink / raw)
  To: linux-arm-kernel

Use new return type vm_fault_t for fault handler. For
now, this is just documenting that the function returns
a VM_FAULT value rather than an errno. Once all instances
are converted, vm_fault_t will become a distinct type.

Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")

In this patch all the caller of handle_mm_fault()
are changed to return vm_fault_t type.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
---
 arch/alpha/mm/fault.c         |  3 ++-
 arch/arc/mm/fault.c           |  4 +++-
 arch/arm/mm/fault.c           |  7 ++++---
 arch/arm64/mm/fault.c         |  6 +++---
 arch/hexagon/mm/vm_fault.c    |  2 +-
 arch/ia64/mm/fault.c          |  2 +-
 arch/m68k/mm/fault.c          |  4 ++--
 arch/microblaze/mm/fault.c    |  2 +-
 arch/mips/mm/fault.c          |  2 +-
 arch/nds32/mm/fault.c         |  2 +-
 arch/nios2/mm/fault.c         |  2 +-
 arch/openrisc/mm/fault.c      |  2 +-
 arch/parisc/mm/fault.c        |  2 +-
 arch/powerpc/mm/copro_fault.c |  2 +-
 arch/powerpc/mm/fault.c       |  7 ++++---
 arch/riscv/mm/fault.c         |  3 ++-
 arch/s390/mm/fault.c          | 13 ++++++++-----
 arch/sh/mm/fault.c            |  4 ++--
 arch/sparc/mm/fault_32.c      |  3 ++-
 arch/sparc/mm/fault_64.c      |  3 ++-
 arch/um/kernel/trap.c         |  2 +-
 arch/unicore32/mm/fault.c     |  9 +++++----
 arch/x86/mm/fault.c           |  5 +++--
 arch/xtensa/mm/fault.c        |  2 +-
 drivers/iommu/amd_iommu_v2.c  |  2 +-
 drivers/iommu/intel-svm.c     |  4 +++-
 mm/hmm.c                      |  8 ++++----
 mm/ksm.c                      |  2 +-
 28 files changed, 62 insertions(+), 47 deletions(-)

diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index cd3c572..2a979ee 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -87,7 +87,8 @@
 	struct vm_area_struct * vma;
 	struct mm_struct *mm = current->mm;
 	const struct exception_table_entry *fixup;
-	int fault, si_code = SEGV_MAPERR;
+	int si_code = SEGV_MAPERR;
+	vm_fault_t fault;
 	siginfo_t info;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c
index a0b7bd6..3a18d33 100644
--- a/arch/arc/mm/fault.c
+++ b/arch/arc/mm/fault.c
@@ -15,6 +15,7 @@
 #include <linux/uaccess.h>
 #include <linux/kdebug.h>
 #include <linux/perf_event.h>
+#include <linux/mm_types.h>
 #include <asm/pgalloc.h>
 #include <asm/mmu.h>
 
@@ -66,7 +67,8 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	siginfo_t info;
-	int fault, ret;
+	int ret;
+	vm_fault_t fault;
 	int write = regs->ecr_cause & ECR_C_PROTV_STORE;  /* ST/EX */
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index b75eada..758abcb 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -219,12 +219,12 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __kprobes
+static vm_fault_t __kprobes
 __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
 		unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -259,7 +259,8 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (notify_page_fault(regs, fsr))
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 2af3dd8..8da263b 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -371,12 +371,12 @@ static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *re
 #define VM_FAULT_BADMAP		0x010000
 #define VM_FAULT_BADACCESS	0x020000
 
-static int __do_page_fault(struct mm_struct *mm, unsigned long addr,
+static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
 			   unsigned int mm_flags, unsigned long vm_flags,
 			   struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -419,7 +419,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct siginfo si;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned long vm_flags = VM_READ | VM_WRITE;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c
index 3eec33c..5d1de6c 100644
--- a/arch/hexagon/mm/vm_fault.c
+++ b/arch/hexagon/mm/vm_fault.c
@@ -52,7 +52,7 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	siginfo_t info;
 	int si_code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	const struct exception_table_entry *fixup;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index dfdc152..e085d89 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -87,7 +87,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
 	struct mm_struct *mm = current->mm;
 	struct siginfo si;
 	unsigned long mask;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index 03253c4..1fc7ac0 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -73,7 +73,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 {
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	pr_debug("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n",
@@ -139,7 +139,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 	 */
 
 	fault = handle_mm_fault(vma, address, flags);
-	pr_debug("handle_mm_fault returns %d\n", fault);
+	pr_debug("handle_mm_fault returns %x\n", fault);
 
 	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
 		return 0;
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index f91b30f..92a8682 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -91,7 +91,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
 	siginfo_t info;
 	int code = SEGV_MAPERR;
 	int is_write = error_code & ESR_S;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	regs->ear = address;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 4f8f5bf..0bc5030 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -43,7 +43,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
 	struct mm_struct *mm = tsk->mm;
 	const int field = sizeof(unsigned long) * 2;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10);
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
index 3a246fb..96796d3 100644
--- a/arch/nds32/mm/fault.c
+++ b/arch/nds32/mm/fault.c
@@ -73,7 +73,7 @@ void do_page_fault(unsigned long entry, unsigned long addr,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int mask = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c
index b804dd0..24fd84c 100644
--- a/arch/nios2/mm/fault.c
+++ b/arch/nios2/mm/fault.c
@@ -47,7 +47,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause,
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	int code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	cause >>= 2;
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index d0021df..21e8f16 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -53,7 +53,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index e247edb..ff9e634 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -262,7 +262,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	unsigned long acc_type;
-	int fault = 0;
+	vm_fault_t fault = 0;
 	unsigned int flags;
 
 	if (faulthandler_disabled())
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c
index 7d0945b..c8da352 100644
--- a/arch/powerpc/mm/copro_fault.c
+++ b/arch/powerpc/mm/copro_fault.c
@@ -34,7 +34,7 @@
  * to handle fortunately.
  */
 int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
-		unsigned long dsisr, unsigned *flt)
+		unsigned long dsisr, vm_fault_t *flt)
 {
 	struct vm_area_struct *vma;
 	unsigned long is_write;
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index c01d627..17cce1b 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -159,7 +159,7 @@ static noinline int bad_access(struct pt_regs *regs, unsigned long address)
 }
 
 static int do_sigbus(struct pt_regs *regs, unsigned long address,
-		     unsigned int fault)
+		     vm_fault_t fault)
 {
 	siginfo_t info;
 	unsigned int lsb = 0;
@@ -189,7 +189,8 @@ static int do_sigbus(struct pt_regs *regs, unsigned long address,
 	return 0;
 }
 
-static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
+static int mm_fault_error(struct pt_regs *regs, unsigned long addr,
+				vm_fault_t fault)
 {
 	/*
 	 * Kernel page fault interrupted by SIGKILL. We have no reason to
@@ -402,7 +403,7 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address,
  	int is_exec = TRAP(regs) == 0x400;
 	int is_user = user_mode(regs);
 	int is_write = page_fault_is_write(error_code);
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	bool store_update_sp = false;
 
 	if (notify_page_fault(regs))
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index 148c98c..88401d5 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -41,7 +41,8 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 	struct mm_struct *mm;
 	unsigned long addr, cause;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
-	int fault, code = SEGV_MAPERR;
+	int code = SEGV_MAPERR;
+	vm_fault_t fault;
 
 	cause = regs->scause;
 	addr = regs->sbadaddr;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 93faeca..8ea0855 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -350,7 +350,8 @@ static noinline int signal_return(struct pt_regs *regs)
 	return -EACCES;
 }
 
-static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
+static noinline void do_fault_error(struct pt_regs *regs, int access,
+					vm_fault_t fault)
 {
 	int si_code;
 
@@ -410,7 +411,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
  *   11       Page translation     ->  Not present       (nullification)
  *   3b       Region third trans.  ->  Not present       (nullification)
  */
-static inline int do_exception(struct pt_regs *regs, int access)
+static inline vm_fault_t do_exception(struct pt_regs *regs, int access)
 {
 	struct gmap *gmap;
 	struct task_struct *tsk;
@@ -420,7 +421,7 @@ static inline int do_exception(struct pt_regs *regs, int access)
 	unsigned long trans_exc_code;
 	unsigned long address;
 	unsigned int flags;
-	int fault;
+	vm_fault_t fault;
 
 	tsk = current;
 	/*
@@ -571,7 +572,8 @@ static inline int do_exception(struct pt_regs *regs, int access)
 void do_protection_exception(struct pt_regs *regs)
 {
 	unsigned long trans_exc_code;
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	trans_exc_code = regs->int_parm_long;
 	/*
@@ -606,7 +608,8 @@ void do_protection_exception(struct pt_regs *regs)
 
 void do_dat_exception(struct pt_regs *regs)
 {
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	access = VM_READ | VM_EXEC | VM_WRITE;
 	fault = do_exception(regs, access);
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 6fd1bf7..474bf14 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -320,7 +320,7 @@ static noinline int vmalloc_fault(unsigned long address)
 
 static noinline int
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, unsigned int fault)
+	       unsigned long address, vm_fault_t fault)
 {
 	/*
 	 * Pagefault was interrupted by SIGKILL. We have no reason to
@@ -403,7 +403,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index a8103a8..1a44a4e 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -174,7 +174,8 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write,
 	unsigned int fixup;
 	unsigned long g2;
 	int from_user = !(regs->psr & PSR_PS);
-	int fault, code;
+	int code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (text_fault)
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index 41363f4..2078bfe 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -284,7 +284,8 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct *vma;
 	unsigned int insn = 0;
-	int si_code, fault_code, fault;
+	int si_code, fault_code;
+	vm_fault_t fault;
 	unsigned long address, mm_rss;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index b2b02df..0afcd09 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -72,7 +72,7 @@ int handle_page_fault(unsigned long address, unsigned long ip,
 	}
 
 	do {
-		int fault;
+		vm_fault_t fault;
 
 		fault = handle_mm_fault(vma, address, flags);
 
diff --git a/arch/unicore32/mm/fault.c b/arch/unicore32/mm/fault.c
index bbefcc4..2982140 100644
--- a/arch/unicore32/mm/fault.c
+++ b/arch/unicore32/mm/fault.c
@@ -167,11 +167,11 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __do_pf(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
-		unsigned int flags, struct task_struct *tsk)
+static vm_fault_t __do_pf(struct mm_struct *mm, unsigned long addr,
+		unsigned int fsr, unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -208,7 +208,8 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 73bd8c9..5171d60 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -16,6 +16,7 @@
 #include <linux/prefetch.h>		/* prefetchw			*/
 #include <linux/context_tracking.h>	/* exception_enter(), ...	*/
 #include <linux/uaccess.h>		/* faulthandler_disabled()	*/
+#include <linux/mm_types.h>
 
 #include <asm/cpufeature.h>		/* boot_cpu_has, ...		*/
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
@@ -1004,7 +1005,7 @@ static inline bool bad_area_access_from_pkeys(unsigned long error_code,
 
 static noinline void
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, u32 *pkey, unsigned int fault)
+	       unsigned long address, u32 *pkey, vm_fault_t fault)
 {
 	if (fatal_signal_pending(current) && !(error_code & X86_PF_USER)) {
 		no_context(regs, error_code, address, 0, 0);
@@ -1218,7 +1219,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
 	struct vm_area_struct *vma;
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 	u32 pkey;
 
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index 8b9b6f4..203fade 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -42,7 +42,7 @@ void do_page_fault(struct pt_regs *regs)
 	siginfo_t info;
 
 	int is_write, is_exec;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	info.si_code = SEGV_MAPERR;
diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c
index 1d0b53a0..58da65d 100644
--- a/drivers/iommu/amd_iommu_v2.c
+++ b/drivers/iommu/amd_iommu_v2.c
@@ -508,7 +508,7 @@ static void do_fault(struct work_struct *work)
 {
 	struct fault *fault = container_of(work, struct fault, work);
 	struct vm_area_struct *vma;
-	int ret = VM_FAULT_ERROR;
+	vm_fault_t ret = VM_FAULT_ERROR;
 	unsigned int flags = 0;
 	struct mm_struct *mm;
 	u64 address;
diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
index e8cd984..75189c0 100644
--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -24,6 +24,7 @@
 #include <linux/pci-ats.h>
 #include <linux/dmar.h>
 #include <linux/interrupt.h>
+#include <linux/mm_types.h>
 #include <asm/page.h>
 
 #define PASID_ENTRY_P		BIT_ULL(0)
@@ -594,7 +595,8 @@ static irqreturn_t prq_event_thread(int irq, void *d)
 		struct vm_area_struct *vma;
 		struct page_req_dsc *req;
 		struct qi_desc resp;
-		int ret, result;
+		int result;
+		vm_fault_t ret;
 		u64 address;
 
 		handled = 1;
diff --git a/mm/hmm.c b/mm/hmm.c
index 486dc39..d7919e5 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -308,14 +308,14 @@ static int hmm_vma_do_fault(struct mm_walk *walk, unsigned long addr,
 	struct hmm_vma_walk *hmm_vma_walk = walk->private;
 	struct hmm_range *range = hmm_vma_walk->range;
 	struct vm_area_struct *vma = walk->vma;
-	int r;
+	vm_fault_t ret;
 
 	flags |= hmm_vma_walk->block ? 0 : FAULT_FLAG_ALLOW_RETRY;
 	flags |= write_fault ? FAULT_FLAG_WRITE : 0;
-	r = handle_mm_fault(vma, addr, flags);
-	if (r & VM_FAULT_RETRY)
+	ret = handle_mm_fault(vma, addr, flags);
+	if (ret & VM_FAULT_RETRY)
 		return -EBUSY;
-	if (r & VM_FAULT_ERROR) {
+	if (ret & VM_FAULT_ERROR) {
 		*pfn = range->values[HMM_PFN_ERROR];
 		return -EFAULT;
 	}
diff --git a/mm/ksm.c b/mm/ksm.c
index e3cbf9a..cb4e6ed 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -451,7 +451,7 @@ static inline bool ksm_test_exit(struct mm_struct *mm)
 static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
 {
 	struct page *page;
-	int ret = 0;
+	vm_fault_t ret = 0;
 
 	do {
 		cond_resched();
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [OpenRISC] [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 19:06 ` Souptick Joarder
  0 siblings, 0 replies; 25+ messages in thread
From: Souptick Joarder @ 2018-06-14 19:06 UTC (permalink / raw)
  To: openrisc

Use new return type vm_fault_t for fault handler. For
now, this is just documenting that the function returns
a VM_FAULT value rather than an errno. Once all instances
are converted, vm_fault_t will become a distinct type.

Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")

In this patch all the caller of handle_mm_fault()
are changed to return vm_fault_t type.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
---
 arch/alpha/mm/fault.c         |  3 ++-
 arch/arc/mm/fault.c           |  4 +++-
 arch/arm/mm/fault.c           |  7 ++++---
 arch/arm64/mm/fault.c         |  6 +++---
 arch/hexagon/mm/vm_fault.c    |  2 +-
 arch/ia64/mm/fault.c          |  2 +-
 arch/m68k/mm/fault.c          |  4 ++--
 arch/microblaze/mm/fault.c    |  2 +-
 arch/mips/mm/fault.c          |  2 +-
 arch/nds32/mm/fault.c         |  2 +-
 arch/nios2/mm/fault.c         |  2 +-
 arch/openrisc/mm/fault.c      |  2 +-
 arch/parisc/mm/fault.c        |  2 +-
 arch/powerpc/mm/copro_fault.c |  2 +-
 arch/powerpc/mm/fault.c       |  7 ++++---
 arch/riscv/mm/fault.c         |  3 ++-
 arch/s390/mm/fault.c          | 13 ++++++++-----
 arch/sh/mm/fault.c            |  4 ++--
 arch/sparc/mm/fault_32.c      |  3 ++-
 arch/sparc/mm/fault_64.c      |  3 ++-
 arch/um/kernel/trap.c         |  2 +-
 arch/unicore32/mm/fault.c     |  9 +++++----
 arch/x86/mm/fault.c           |  5 +++--
 arch/xtensa/mm/fault.c        |  2 +-
 drivers/iommu/amd_iommu_v2.c  |  2 +-
 drivers/iommu/intel-svm.c     |  4 +++-
 mm/hmm.c                      |  8 ++++----
 mm/ksm.c                      |  2 +-
 28 files changed, 62 insertions(+), 47 deletions(-)

diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index cd3c572..2a979ee 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -87,7 +87,8 @@
 	struct vm_area_struct * vma;
 	struct mm_struct *mm = current->mm;
 	const struct exception_table_entry *fixup;
-	int fault, si_code = SEGV_MAPERR;
+	int si_code = SEGV_MAPERR;
+	vm_fault_t fault;
 	siginfo_t info;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c
index a0b7bd6..3a18d33 100644
--- a/arch/arc/mm/fault.c
+++ b/arch/arc/mm/fault.c
@@ -15,6 +15,7 @@
 #include <linux/uaccess.h>
 #include <linux/kdebug.h>
 #include <linux/perf_event.h>
+#include <linux/mm_types.h>
 #include <asm/pgalloc.h>
 #include <asm/mmu.h>
 
@@ -66,7 +67,8 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	siginfo_t info;
-	int fault, ret;
+	int ret;
+	vm_fault_t fault;
 	int write = regs->ecr_cause & ECR_C_PROTV_STORE;  /* ST/EX */
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index b75eada..758abcb 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -219,12 +219,12 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __kprobes
+static vm_fault_t __kprobes
 __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
 		unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -259,7 +259,8 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (notify_page_fault(regs, fsr))
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 2af3dd8..8da263b 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -371,12 +371,12 @@ static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *re
 #define VM_FAULT_BADMAP		0x010000
 #define VM_FAULT_BADACCESS	0x020000
 
-static int __do_page_fault(struct mm_struct *mm, unsigned long addr,
+static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
 			   unsigned int mm_flags, unsigned long vm_flags,
 			   struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -419,7 +419,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct siginfo si;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned long vm_flags = VM_READ | VM_WRITE;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c
index 3eec33c..5d1de6c 100644
--- a/arch/hexagon/mm/vm_fault.c
+++ b/arch/hexagon/mm/vm_fault.c
@@ -52,7 +52,7 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	siginfo_t info;
 	int si_code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	const struct exception_table_entry *fixup;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index dfdc152..e085d89 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -87,7 +87,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
 	struct mm_struct *mm = current->mm;
 	struct siginfo si;
 	unsigned long mask;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index 03253c4..1fc7ac0 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -73,7 +73,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 {
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	pr_debug("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n",
@@ -139,7 +139,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 	 */
 
 	fault = handle_mm_fault(vma, address, flags);
-	pr_debug("handle_mm_fault returns %d\n", fault);
+	pr_debug("handle_mm_fault returns %x\n", fault);
 
 	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
 		return 0;
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index f91b30f..92a8682 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -91,7 +91,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
 	siginfo_t info;
 	int code = SEGV_MAPERR;
 	int is_write = error_code & ESR_S;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	regs->ear = address;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 4f8f5bf..0bc5030 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -43,7 +43,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
 	struct mm_struct *mm = tsk->mm;
 	const int field = sizeof(unsigned long) * 2;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10);
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
index 3a246fb..96796d3 100644
--- a/arch/nds32/mm/fault.c
+++ b/arch/nds32/mm/fault.c
@@ -73,7 +73,7 @@ void do_page_fault(unsigned long entry, unsigned long addr,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int mask = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c
index b804dd0..24fd84c 100644
--- a/arch/nios2/mm/fault.c
+++ b/arch/nios2/mm/fault.c
@@ -47,7 +47,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause,
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	int code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	cause >>= 2;
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index d0021df..21e8f16 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -53,7 +53,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index e247edb..ff9e634 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -262,7 +262,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	unsigned long acc_type;
-	int fault = 0;
+	vm_fault_t fault = 0;
 	unsigned int flags;
 
 	if (faulthandler_disabled())
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c
index 7d0945b..c8da352 100644
--- a/arch/powerpc/mm/copro_fault.c
+++ b/arch/powerpc/mm/copro_fault.c
@@ -34,7 +34,7 @@
  * to handle fortunately.
  */
 int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
-		unsigned long dsisr, unsigned *flt)
+		unsigned long dsisr, vm_fault_t *flt)
 {
 	struct vm_area_struct *vma;
 	unsigned long is_write;
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index c01d627..17cce1b 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -159,7 +159,7 @@ static noinline int bad_access(struct pt_regs *regs, unsigned long address)
 }
 
 static int do_sigbus(struct pt_regs *regs, unsigned long address,
-		     unsigned int fault)
+		     vm_fault_t fault)
 {
 	siginfo_t info;
 	unsigned int lsb = 0;
@@ -189,7 +189,8 @@ static int do_sigbus(struct pt_regs *regs, unsigned long address,
 	return 0;
 }
 
-static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
+static int mm_fault_error(struct pt_regs *regs, unsigned long addr,
+				vm_fault_t fault)
 {
 	/*
 	 * Kernel page fault interrupted by SIGKILL. We have no reason to
@@ -402,7 +403,7 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address,
  	int is_exec = TRAP(regs) == 0x400;
 	int is_user = user_mode(regs);
 	int is_write = page_fault_is_write(error_code);
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	bool store_update_sp = false;
 
 	if (notify_page_fault(regs))
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index 148c98c..88401d5 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -41,7 +41,8 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 	struct mm_struct *mm;
 	unsigned long addr, cause;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
-	int fault, code = SEGV_MAPERR;
+	int code = SEGV_MAPERR;
+	vm_fault_t fault;
 
 	cause = regs->scause;
 	addr = regs->sbadaddr;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 93faeca..8ea0855 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -350,7 +350,8 @@ static noinline int signal_return(struct pt_regs *regs)
 	return -EACCES;
 }
 
-static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
+static noinline void do_fault_error(struct pt_regs *regs, int access,
+					vm_fault_t fault)
 {
 	int si_code;
 
@@ -410,7 +411,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
  *   11       Page translation     ->  Not present       (nullification)
  *   3b       Region third trans.  ->  Not present       (nullification)
  */
-static inline int do_exception(struct pt_regs *regs, int access)
+static inline vm_fault_t do_exception(struct pt_regs *regs, int access)
 {
 	struct gmap *gmap;
 	struct task_struct *tsk;
@@ -420,7 +421,7 @@ static inline int do_exception(struct pt_regs *regs, int access)
 	unsigned long trans_exc_code;
 	unsigned long address;
 	unsigned int flags;
-	int fault;
+	vm_fault_t fault;
 
 	tsk = current;
 	/*
@@ -571,7 +572,8 @@ static inline int do_exception(struct pt_regs *regs, int access)
 void do_protection_exception(struct pt_regs *regs)
 {
 	unsigned long trans_exc_code;
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	trans_exc_code = regs->int_parm_long;
 	/*
@@ -606,7 +608,8 @@ void do_protection_exception(struct pt_regs *regs)
 
 void do_dat_exception(struct pt_regs *regs)
 {
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	access = VM_READ | VM_EXEC | VM_WRITE;
 	fault = do_exception(regs, access);
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 6fd1bf7..474bf14 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -320,7 +320,7 @@ static noinline int vmalloc_fault(unsigned long address)
 
 static noinline int
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, unsigned int fault)
+	       unsigned long address, vm_fault_t fault)
 {
 	/*
 	 * Pagefault was interrupted by SIGKILL. We have no reason to
@@ -403,7 +403,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index a8103a8..1a44a4e 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -174,7 +174,8 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write,
 	unsigned int fixup;
 	unsigned long g2;
 	int from_user = !(regs->psr & PSR_PS);
-	int fault, code;
+	int code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (text_fault)
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index 41363f4..2078bfe 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -284,7 +284,8 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct *vma;
 	unsigned int insn = 0;
-	int si_code, fault_code, fault;
+	int si_code, fault_code;
+	vm_fault_t fault;
 	unsigned long address, mm_rss;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index b2b02df..0afcd09 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -72,7 +72,7 @@ int handle_page_fault(unsigned long address, unsigned long ip,
 	}
 
 	do {
-		int fault;
+		vm_fault_t fault;
 
 		fault = handle_mm_fault(vma, address, flags);
 
diff --git a/arch/unicore32/mm/fault.c b/arch/unicore32/mm/fault.c
index bbefcc4..2982140 100644
--- a/arch/unicore32/mm/fault.c
+++ b/arch/unicore32/mm/fault.c
@@ -167,11 +167,11 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __do_pf(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
-		unsigned int flags, struct task_struct *tsk)
+static vm_fault_t __do_pf(struct mm_struct *mm, unsigned long addr,
+		unsigned int fsr, unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -208,7 +208,8 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 73bd8c9..5171d60 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -16,6 +16,7 @@
 #include <linux/prefetch.h>		/* prefetchw			*/
 #include <linux/context_tracking.h>	/* exception_enter(), ...	*/
 #include <linux/uaccess.h>		/* faulthandler_disabled()	*/
+#include <linux/mm_types.h>
 
 #include <asm/cpufeature.h>		/* boot_cpu_has, ...		*/
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
@@ -1004,7 +1005,7 @@ static inline bool bad_area_access_from_pkeys(unsigned long error_code,
 
 static noinline void
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, u32 *pkey, unsigned int fault)
+	       unsigned long address, u32 *pkey, vm_fault_t fault)
 {
 	if (fatal_signal_pending(current) && !(error_code & X86_PF_USER)) {
 		no_context(regs, error_code, address, 0, 0);
@@ -1218,7 +1219,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
 	struct vm_area_struct *vma;
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 	u32 pkey;
 
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index 8b9b6f4..203fade 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -42,7 +42,7 @@ void do_page_fault(struct pt_regs *regs)
 	siginfo_t info;
 
 	int is_write, is_exec;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	info.si_code = SEGV_MAPERR;
diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c
index 1d0b53a0..58da65d 100644
--- a/drivers/iommu/amd_iommu_v2.c
+++ b/drivers/iommu/amd_iommu_v2.c
@@ -508,7 +508,7 @@ static void do_fault(struct work_struct *work)
 {
 	struct fault *fault = container_of(work, struct fault, work);
 	struct vm_area_struct *vma;
-	int ret = VM_FAULT_ERROR;
+	vm_fault_t ret = VM_FAULT_ERROR;
 	unsigned int flags = 0;
 	struct mm_struct *mm;
 	u64 address;
diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
index e8cd984..75189c0 100644
--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -24,6 +24,7 @@
 #include <linux/pci-ats.h>
 #include <linux/dmar.h>
 #include <linux/interrupt.h>
+#include <linux/mm_types.h>
 #include <asm/page.h>
 
 #define PASID_ENTRY_P		BIT_ULL(0)
@@ -594,7 +595,8 @@ static irqreturn_t prq_event_thread(int irq, void *d)
 		struct vm_area_struct *vma;
 		struct page_req_dsc *req;
 		struct qi_desc resp;
-		int ret, result;
+		int result;
+		vm_fault_t ret;
 		u64 address;
 
 		handled = 1;
diff --git a/mm/hmm.c b/mm/hmm.c
index 486dc39..d7919e5 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -308,14 +308,14 @@ static int hmm_vma_do_fault(struct mm_walk *walk, unsigned long addr,
 	struct hmm_vma_walk *hmm_vma_walk = walk->private;
 	struct hmm_range *range = hmm_vma_walk->range;
 	struct vm_area_struct *vma = walk->vma;
-	int r;
+	vm_fault_t ret;
 
 	flags |= hmm_vma_walk->block ? 0 : FAULT_FLAG_ALLOW_RETRY;
 	flags |= write_fault ? FAULT_FLAG_WRITE : 0;
-	r = handle_mm_fault(vma, addr, flags);
-	if (r & VM_FAULT_RETRY)
+	ret = handle_mm_fault(vma, addr, flags);
+	if (ret & VM_FAULT_RETRY)
 		return -EBUSY;
-	if (r & VM_FAULT_ERROR) {
+	if (ret & VM_FAULT_ERROR) {
 		*pfn = range->values[HMM_PFN_ERROR];
 		return -EFAULT;
 	}
diff --git a/mm/ksm.c b/mm/ksm.c
index e3cbf9a..cb4e6ed 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -451,7 +451,7 @@ static inline bool ksm_test_exit(struct mm_struct *mm)
 static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
 {
 	struct page *page;
-	int ret = 0;
+	vm_fault_t ret = 0;
 
 	do {
 		cond_resched();
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 19:06 ` Souptick Joarder
  0 siblings, 0 replies; 25+ messages in thread
From: Souptick Joarder @ 2018-06-14 19:18 UTC (permalink / raw)
  To: linux-arm-kernel

Use new return type vm_fault_t for fault handler. For
now, this is just documenting that the function returns
a VM_FAULT value rather than an errno. Once all instances
are converted, vm_fault_t will become a distinct type.

Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")

In this patch all the caller of handle_mm_fault()
are changed to return vm_fault_t type.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
---
 arch/alpha/mm/fault.c         |  3 ++-
 arch/arc/mm/fault.c           |  4 +++-
 arch/arm/mm/fault.c           |  7 ++++---
 arch/arm64/mm/fault.c         |  6 +++---
 arch/hexagon/mm/vm_fault.c    |  2 +-
 arch/ia64/mm/fault.c          |  2 +-
 arch/m68k/mm/fault.c          |  4 ++--
 arch/microblaze/mm/fault.c    |  2 +-
 arch/mips/mm/fault.c          |  2 +-
 arch/nds32/mm/fault.c         |  2 +-
 arch/nios2/mm/fault.c         |  2 +-
 arch/openrisc/mm/fault.c      |  2 +-
 arch/parisc/mm/fault.c        |  2 +-
 arch/powerpc/mm/copro_fault.c |  2 +-
 arch/powerpc/mm/fault.c       |  7 ++++---
 arch/riscv/mm/fault.c         |  3 ++-
 arch/s390/mm/fault.c          | 13 ++++++++-----
 arch/sh/mm/fault.c            |  4 ++--
 arch/sparc/mm/fault_32.c      |  3 ++-
 arch/sparc/mm/fault_64.c      |  3 ++-
 arch/um/kernel/trap.c         |  2 +-
 arch/unicore32/mm/fault.c     |  9 +++++----
 arch/x86/mm/fault.c           |  5 +++--
 arch/xtensa/mm/fault.c        |  2 +-
 drivers/iommu/amd_iommu_v2.c  |  2 +-
 drivers/iommu/intel-svm.c     |  4 +++-
 mm/hmm.c                      |  8 ++++----
 mm/ksm.c                      |  2 +-
 28 files changed, 62 insertions(+), 47 deletions(-)

diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
index cd3c572..2a979ee 100644
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -87,7 +87,8 @@
 	struct vm_area_struct * vma;
 	struct mm_struct *mm = current->mm;
 	const struct exception_table_entry *fixup;
-	int fault, si_code = SEGV_MAPERR;
+	int si_code = SEGV_MAPERR;
+	vm_fault_t fault;
 	siginfo_t info;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c
index a0b7bd6..3a18d33 100644
--- a/arch/arc/mm/fault.c
+++ b/arch/arc/mm/fault.c
@@ -15,6 +15,7 @@
 #include <linux/uaccess.h>
 #include <linux/kdebug.h>
 #include <linux/perf_event.h>
+#include <linux/mm_types.h>
 #include <asm/pgalloc.h>
 #include <asm/mmu.h>
 
@@ -66,7 +67,8 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	siginfo_t info;
-	int fault, ret;
+	int ret;
+	vm_fault_t fault;
 	int write = regs->ecr_cause & ECR_C_PROTV_STORE;  /* ST/EX */
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index b75eada..758abcb 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -219,12 +219,12 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __kprobes
+static vm_fault_t __kprobes
 __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
 		unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -259,7 +259,8 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (notify_page_fault(regs, fsr))
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 2af3dd8..8da263b 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -371,12 +371,12 @@ static void do_bad_area(unsigned long addr, unsigned int esr, struct pt_regs *re
 #define VM_FAULT_BADMAP		0x010000
 #define VM_FAULT_BADACCESS	0x020000
 
-static int __do_page_fault(struct mm_struct *mm, unsigned long addr,
+static vm_fault_t __do_page_fault(struct mm_struct *mm, unsigned long addr,
 			   unsigned int mm_flags, unsigned long vm_flags,
 			   struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -419,7 +419,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct siginfo si;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned long vm_flags = VM_READ | VM_WRITE;
 	unsigned int mm_flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c
index 3eec33c..5d1de6c 100644
--- a/arch/hexagon/mm/vm_fault.c
+++ b/arch/hexagon/mm/vm_fault.c
@@ -52,7 +52,7 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	siginfo_t info;
 	int si_code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	const struct exception_table_entry *fixup;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index dfdc152..e085d89 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -87,7 +87,7 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
 	struct mm_struct *mm = current->mm;
 	struct siginfo si;
 	unsigned long mask;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index 03253c4..1fc7ac0 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -73,7 +73,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 {
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	pr_debug("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n",
@@ -139,7 +139,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 	 */
 
 	fault = handle_mm_fault(vma, address, flags);
-	pr_debug("handle_mm_fault returns %d\n", fault);
+	pr_debug("handle_mm_fault returns %x\n", fault);
 
 	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
 		return 0;
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c
index f91b30f..92a8682 100644
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -91,7 +91,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long address,
 	siginfo_t info;
 	int code = SEGV_MAPERR;
 	int is_write = error_code & ESR_S;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	regs->ear = address;
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 4f8f5bf..0bc5030 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -43,7 +43,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned long write,
 	struct mm_struct *mm = tsk->mm;
 	const int field = sizeof(unsigned long) * 2;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10);
diff --git a/arch/nds32/mm/fault.c b/arch/nds32/mm/fault.c
index 3a246fb..96796d3 100644
--- a/arch/nds32/mm/fault.c
+++ b/arch/nds32/mm/fault.c
@@ -73,7 +73,7 @@ void do_page_fault(unsigned long entry, unsigned long addr,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int mask = VM_READ | VM_WRITE | VM_EXEC;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c
index b804dd0..24fd84c 100644
--- a/arch/nios2/mm/fault.c
+++ b/arch/nios2/mm/fault.c
@@ -47,7 +47,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause,
 	struct task_struct *tsk = current;
 	struct mm_struct *mm = tsk->mm;
 	int code = SEGV_MAPERR;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	cause >>= 2;
diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c
index d0021df..21e8f16 100644
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -53,7 +53,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
 	struct mm_struct *mm;
 	struct vm_area_struct *vma;
 	siginfo_t info;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index e247edb..ff9e634 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -262,7 +262,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	unsigned long acc_type;
-	int fault = 0;
+	vm_fault_t fault = 0;
 	unsigned int flags;
 
 	if (faulthandler_disabled())
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c
index 7d0945b..c8da352 100644
--- a/arch/powerpc/mm/copro_fault.c
+++ b/arch/powerpc/mm/copro_fault.c
@@ -34,7 +34,7 @@
  * to handle fortunately.
  */
 int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
-		unsigned long dsisr, unsigned *flt)
+		unsigned long dsisr, vm_fault_t *flt)
 {
 	struct vm_area_struct *vma;
 	unsigned long is_write;
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index c01d627..17cce1b 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -159,7 +159,7 @@ static noinline int bad_access(struct pt_regs *regs, unsigned long address)
 }
 
 static int do_sigbus(struct pt_regs *regs, unsigned long address,
-		     unsigned int fault)
+		     vm_fault_t fault)
 {
 	siginfo_t info;
 	unsigned int lsb = 0;
@@ -189,7 +189,8 @@ static int do_sigbus(struct pt_regs *regs, unsigned long address,
 	return 0;
 }
 
-static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
+static int mm_fault_error(struct pt_regs *regs, unsigned long addr,
+				vm_fault_t fault)
 {
 	/*
 	 * Kernel page fault interrupted by SIGKILL. We have no reason to
@@ -402,7 +403,7 @@ static int __do_page_fault(struct pt_regs *regs, unsigned long address,
  	int is_exec = TRAP(regs) = 0x400;
 	int is_user = user_mode(regs);
 	int is_write = page_fault_is_write(error_code);
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	bool store_update_sp = false;
 
 	if (notify_page_fault(regs))
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c
index 148c98c..88401d5 100644
--- a/arch/riscv/mm/fault.c
+++ b/arch/riscv/mm/fault.c
@@ -41,7 +41,8 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 	struct mm_struct *mm;
 	unsigned long addr, cause;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
-	int fault, code = SEGV_MAPERR;
+	int code = SEGV_MAPERR;
+	vm_fault_t fault;
 
 	cause = regs->scause;
 	addr = regs->sbadaddr;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 93faeca..8ea0855 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -350,7 +350,8 @@ static noinline int signal_return(struct pt_regs *regs)
 	return -EACCES;
 }
 
-static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
+static noinline void do_fault_error(struct pt_regs *regs, int access,
+					vm_fault_t fault)
 {
 	int si_code;
 
@@ -410,7 +411,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, int fault)
  *   11       Page translation     ->  Not present       (nullification)
  *   3b       Region third trans.  ->  Not present       (nullification)
  */
-static inline int do_exception(struct pt_regs *regs, int access)
+static inline vm_fault_t do_exception(struct pt_regs *regs, int access)
 {
 	struct gmap *gmap;
 	struct task_struct *tsk;
@@ -420,7 +421,7 @@ static inline int do_exception(struct pt_regs *regs, int access)
 	unsigned long trans_exc_code;
 	unsigned long address;
 	unsigned int flags;
-	int fault;
+	vm_fault_t fault;
 
 	tsk = current;
 	/*
@@ -571,7 +572,8 @@ static inline int do_exception(struct pt_regs *regs, int access)
 void do_protection_exception(struct pt_regs *regs)
 {
 	unsigned long trans_exc_code;
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	trans_exc_code = regs->int_parm_long;
 	/*
@@ -606,7 +608,8 @@ void do_protection_exception(struct pt_regs *regs)
 
 void do_dat_exception(struct pt_regs *regs)
 {
-	int access, fault;
+	int access;
+	vm_fault_t fault;
 
 	access = VM_READ | VM_EXEC | VM_WRITE;
 	fault = do_exception(regs, access);
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 6fd1bf7..474bf14 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -320,7 +320,7 @@ static noinline int vmalloc_fault(unsigned long address)
 
 static noinline int
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, unsigned int fault)
+	       unsigned long address, vm_fault_t fault)
 {
 	/*
 	 * Pagefault was interrupted by SIGKILL. We have no reason to
@@ -403,7 +403,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	struct vm_area_struct * vma;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index a8103a8..1a44a4e 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -174,7 +174,8 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write,
 	unsigned int fixup;
 	unsigned long g2;
 	int from_user = !(regs->psr & PSR_PS);
-	int fault, code;
+	int code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	if (text_fault)
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
index 41363f4..2078bfe 100644
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -284,7 +284,8 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
 	struct mm_struct *mm = current->mm;
 	struct vm_area_struct *vma;
 	unsigned int insn = 0;
-	int si_code, fault_code, fault;
+	int si_code, fault_code;
+	vm_fault_t fault;
 	unsigned long address, mm_rss;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index b2b02df..0afcd09 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -72,7 +72,7 @@ int handle_page_fault(unsigned long address, unsigned long ip,
 	}
 
 	do {
-		int fault;
+		vm_fault_t fault;
 
 		fault = handle_mm_fault(vma, address, flags);
 
diff --git a/arch/unicore32/mm/fault.c b/arch/unicore32/mm/fault.c
index bbefcc4..2982140 100644
--- a/arch/unicore32/mm/fault.c
+++ b/arch/unicore32/mm/fault.c
@@ -167,11 +167,11 @@ static inline bool access_error(unsigned int fsr, struct vm_area_struct *vma)
 	return vma->vm_flags & mask ? false : true;
 }
 
-static int __do_pf(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
-		unsigned int flags, struct task_struct *tsk)
+static vm_fault_t __do_pf(struct mm_struct *mm, unsigned long addr,
+		unsigned int fsr, unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
-	int fault;
+	vm_fault_t fault;
 
 	vma = find_vma(mm, addr);
 	fault = VM_FAULT_BADMAP;
@@ -208,7 +208,8 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 {
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, sig, code;
+	int sig, code;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	tsk = current;
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 73bd8c9..5171d60 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -16,6 +16,7 @@
 #include <linux/prefetch.h>		/* prefetchw			*/
 #include <linux/context_tracking.h>	/* exception_enter(), ...	*/
 #include <linux/uaccess.h>		/* faulthandler_disabled()	*/
+#include <linux/mm_types.h>
 
 #include <asm/cpufeature.h>		/* boot_cpu_has, ...		*/
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
@@ -1004,7 +1005,7 @@ static inline bool bad_area_access_from_pkeys(unsigned long error_code,
 
 static noinline void
 mm_fault_error(struct pt_regs *regs, unsigned long error_code,
-	       unsigned long address, u32 *pkey, unsigned int fault)
+	       unsigned long address, u32 *pkey, vm_fault_t fault)
 {
 	if (fatal_signal_pending(current) && !(error_code & X86_PF_USER)) {
 		no_context(regs, error_code, address, 0, 0);
@@ -1218,7 +1219,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
 	struct vm_area_struct *vma;
 	struct task_struct *tsk;
 	struct mm_struct *mm;
-	int fault, major = 0;
+	vm_fault_t fault, major = 0;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 	u32 pkey;
 
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index 8b9b6f4..203fade 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -42,7 +42,7 @@ void do_page_fault(struct pt_regs *regs)
 	siginfo_t info;
 
 	int is_write, is_exec;
-	int fault;
+	vm_fault_t fault;
 	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
 
 	info.si_code = SEGV_MAPERR;
diff --git a/drivers/iommu/amd_iommu_v2.c b/drivers/iommu/amd_iommu_v2.c
index 1d0b53a0..58da65d 100644
--- a/drivers/iommu/amd_iommu_v2.c
+++ b/drivers/iommu/amd_iommu_v2.c
@@ -508,7 +508,7 @@ static void do_fault(struct work_struct *work)
 {
 	struct fault *fault = container_of(work, struct fault, work);
 	struct vm_area_struct *vma;
-	int ret = VM_FAULT_ERROR;
+	vm_fault_t ret = VM_FAULT_ERROR;
 	unsigned int flags = 0;
 	struct mm_struct *mm;
 	u64 address;
diff --git a/drivers/iommu/intel-svm.c b/drivers/iommu/intel-svm.c
index e8cd984..75189c0 100644
--- a/drivers/iommu/intel-svm.c
+++ b/drivers/iommu/intel-svm.c
@@ -24,6 +24,7 @@
 #include <linux/pci-ats.h>
 #include <linux/dmar.h>
 #include <linux/interrupt.h>
+#include <linux/mm_types.h>
 #include <asm/page.h>
 
 #define PASID_ENTRY_P		BIT_ULL(0)
@@ -594,7 +595,8 @@ static irqreturn_t prq_event_thread(int irq, void *d)
 		struct vm_area_struct *vma;
 		struct page_req_dsc *req;
 		struct qi_desc resp;
-		int ret, result;
+		int result;
+		vm_fault_t ret;
 		u64 address;
 
 		handled = 1;
diff --git a/mm/hmm.c b/mm/hmm.c
index 486dc39..d7919e5 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -308,14 +308,14 @@ static int hmm_vma_do_fault(struct mm_walk *walk, unsigned long addr,
 	struct hmm_vma_walk *hmm_vma_walk = walk->private;
 	struct hmm_range *range = hmm_vma_walk->range;
 	struct vm_area_struct *vma = walk->vma;
-	int r;
+	vm_fault_t ret;
 
 	flags |= hmm_vma_walk->block ? 0 : FAULT_FLAG_ALLOW_RETRY;
 	flags |= write_fault ? FAULT_FLAG_WRITE : 0;
-	r = handle_mm_fault(vma, addr, flags);
-	if (r & VM_FAULT_RETRY)
+	ret = handle_mm_fault(vma, addr, flags);
+	if (ret & VM_FAULT_RETRY)
 		return -EBUSY;
-	if (r & VM_FAULT_ERROR) {
+	if (ret & VM_FAULT_ERROR) {
 		*pfn = range->values[HMM_PFN_ERROR];
 		return -EFAULT;
 	}
diff --git a/mm/ksm.c b/mm/ksm.c
index e3cbf9a..cb4e6ed 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -451,7 +451,7 @@ static inline bool ksm_test_exit(struct mm_struct *mm)
 static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
 {
 	struct page *page;
-	int ret = 0;
+	vm_fault_t ret = 0;
 
 	do {
 		cond_resched();
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
  2018-06-14 19:06 ` Souptick Joarder
                     ` (6 preceding siblings ...)
  (?)
@ 2018-06-14 21:31   ` kbuild test robot
  -1 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: linux-sh

[-- Attachment #1: Type: text/plain, Size: 10985 bytes --]

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23364 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA,
	linux-ia64-u79uwXL29TY76Z2rM5mHXA,
	linux-sh-u79uwXL29TY76Z2rM5mHXA,
	benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r,
	palmer-SpMDHPYPyPbQT0dZR+AlfA, will.deacon-5wv7dgnIgG8,
	jejb-6jwH94ZQLHl74goWV3ctuw, linux-mm-Bw31MaZKKs3YtjvyW6yDsg,
	hpa-YMNOUZJC4hwAvxtiuMwx3w, sparclinux-u79uwXL29TY76Z2rM5mHXA,
	linux-hexagon-u79uwXL29TY76Z2rM5mHXA,
	linux-riscv-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	alexander.levin-H+0wwilmMs1BDgjK7y7TUQ,
	jonas-A9uVI2HLR7kOP4wsBPIw7w, linux-s390-u79uwXL29TY76Z2rM5mHXA,
	ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS,
	sabyasachi.linux-Re5JQEeQqe8AvxtiuMwx3w, richard-/L3Ra7n9ekc,
	linux-I+IVW8TIWO2tmTQ+vhA3Yw, willy-wEGCiKHe2LqWVfeAwA7xHQ,
	geert-Td1EMuHUCqxL1ZNQvxDV9g, catalin.marinas-5wv7dgnIgG8,
	jhogan-DgEjT+Ai2ygdnm+yROfE0A, mattst88-Re5JQEeQqe8AvxtiuMwx3w,
	linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw,
	user-mode-linux-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	brajeswar.linux-Re5JQEeQqe8AvxtiuMwx3w,
	linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b,
	openrisc-cunTk1MwBs9a3B2Vnqf2dGD2FQJk+8+b,
	user-mode-linux-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	nios2-dev-g9ZBwUv/Ih/yUk5EbOjzuce+I+R0W71w,
	tglx-hfZtesqFncYOwBW4kG4KsQ, gxt

[-- Attachment #1: Type: text/plain, Size: 11038 bytes --]

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie-8fk3Idey6ehBDgjK7y7TUQ@public.gmane.org>
:::::: CC: Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23364 bytes --]

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: kbuild-all, willy, rth, tony.luck, mattst88, vgupta, linux,
	catalin.marinas, will.deacon, rkuo, geert, monstr, jhogan, lftan,
	jonas, jejb, benh, palmer, ysato, davem, richard, gxt, tglx, hpa,
	alexander.levin, akpm, linux-alpha, linux-kernel, linux-snps-arc,
	linux-arm-kernel, linux-hexagon, linux-ia64, linux-m68k,
	linux-mips, nios2-dev, openrisc, linux-parisc, linuxppc-dev,
	linux-riscv, linux-s390, linux-sh, sparclinux,
	user-mode-linux-devel, user-mode-linux-user, linux-xtensa, iommu,
	linux-mm, brajeswar.linux, sabyasachi.linux

[-- Attachment #1: Type: text/plain, Size: 10985 bytes --]

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23364 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: sparclinux

[-- Attachment #1: Type: text/plain, Size: 10985 bytes --]

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23364 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: linux-riscv

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 23364 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20180615/9b4aac51/attachment.gz>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: linux-snps-arc

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie at au1.ibm.com>
:::::: CC: Michael Ellerman <mpe at ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 23364 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-snps-arc/attachments/20180615/9b4aac51/attachment-0001.gz>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [OpenRISC] [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: openrisc

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 23364 bytes
Desc: not available
URL: <http://lists.librecores.org/pipermail/openrisc/attachments/20180615/9b4aac51/attachment-0001.gz>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: linux-ia64

[-- Attachment #1: Type: text/plain, Size: 10985 bytes --]

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23364 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-14 21:31   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-14 21:31 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA,
	linux-ia64-u79uwXL29TY76Z2rM5mHXA,
	linux-sh-u79uwXL29TY76Z2rM5mHXA,
	benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r,
	palmer-SpMDHPYPyPbQT0dZR+AlfA, will.deacon-5wv7dgnIgG8,
	jejb-6jwH94ZQLHl74goWV3ctuw, linux-mm-Bw31MaZKKs3YtjvyW6yDsg,
	hpa-YMNOUZJC4hwAvxtiuMwx3w, sparclinux-u79uwXL29TY76Z2rM5mHXA,
	linux-hexagon-u79uwXL29TY76Z2rM5mHXA,
	linux-riscv-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	alexander.levin-H+0wwilmMs1BDgjK7y7TUQ,
	jonas-A9uVI2HLR7kOP4wsBPIw7w, linux-s390-u79uwXL29TY76Z2rM5mHXA,
	ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS,
	sabyasachi.linux-Re5JQEeQqe8AvxtiuMwx3w, richard-/L3Ra7n9ekc,
	linux-I+IVW8TIWO2tmTQ+vhA3Yw, willy-wEGCiKHe2LqWVfeAwA7xHQ,
	geert-Td1EMuHUCqxL1ZNQvxDV9g, catalin.marinas-5wv7dgnIgG8,
	jhogan-DgEjT+Ai2ygdnm+yROfE0A, mattst88-Re5JQEeQqe8AvxtiuMwx3w,
	linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw,
	user-mode-linux-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	brajeswar.linux-Re5JQEeQqe8AvxtiuMwx3w,
	linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b,
	openrisc-cunTk1MwBs9a3B2Vnqf2dGD2FQJk+8+b,
	user-mode-linux-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	nios2-dev-g9ZBwUv/Ih/yUk5EbOjzuce+I+R0W71w,
	tglx-hfZtesqFncYOwBW4kG4KsQ

[-- Attachment #1: Type: text/plain, Size: 11038 bytes --]

Hi Souptick,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180614]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
   arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/copro_handle_mm_fault +36 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  @36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 36 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie-8fk3Idey6ehBDgjK7y7TUQ@public.gmane.org>
:::::: CC: Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23364 bytes --]

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
  2018-06-14 19:06 ` Souptick Joarder
                     ` (7 preceding siblings ...)
  (?)
@ 2018-06-16 18:14   ` kbuild test robot
  -1 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: linux-sh

[-- Attachment #1: Type: text/plain, Size: 11761 bytes --]

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 56250 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA,
	linux-ia64-u79uwXL29TY76Z2rM5mHXA,
	linux-sh-u79uwXL29TY76Z2rM5mHXA,
	benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r,
	palmer-SpMDHPYPyPbQT0dZR+AlfA, will.deacon-5wv7dgnIgG8,
	jejb-6jwH94ZQLHl74goWV3ctuw, linux-mm-Bw31MaZKKs3YtjvyW6yDsg,
	hpa-YMNOUZJC4hwAvxtiuMwx3w, sparclinux-u79uwXL29TY76Z2rM5mHXA,
	linux-hexagon-u79uwXL29TY76Z2rM5mHXA,
	linux-riscv-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	alexander.levin-H+0wwilmMs1BDgjK7y7TUQ,
	jonas-A9uVI2HLR7kOP4wsBPIw7w, linux-s390-u79uwXL29TY76Z2rM5mHXA,
	ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS,
	sabyasachi.linux-Re5JQEeQqe8AvxtiuMwx3w, richard-/L3Ra7n9ekc,
	linux-I+IVW8TIWO2tmTQ+vhA3Yw, willy-wEGCiKHe2LqWVfeAwA7xHQ,
	geert-Td1EMuHUCqxL1ZNQvxDV9g, catalin.marinas-5wv7dgnIgG8,
	jhogan-DgEjT+Ai2ygdnm+yROfE0A, mattst88-Re5JQEeQqe8AvxtiuMwx3w,
	linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw,
	user-mode-linux-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	brajeswar.linux-Re5JQEeQqe8AvxtiuMwx3w,
	linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b,
	openrisc-cunTk1MwBs9a3B2Vnqf2dGD2FQJk+8+b,
	user-mode-linux-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	nios2-dev-g9ZBwUv/Ih/yUk5EbOjzuce+I+R0W71w,
	tglx-hfZtesqFncYOwBW4kG4KsQ, gxt

[-- Attachment #1: Type: text/plain, Size: 11814 bytes --]

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie-8fk3Idey6ehBDgjK7y7TUQ@public.gmane.org>
:::::: CC: Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 56250 bytes --]

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: kbuild-all, willy, rth, tony.luck, mattst88, vgupta, linux,
	catalin.marinas, will.deacon, rkuo, geert, monstr, jhogan, lftan,
	jonas, jejb, benh, palmer, ysato, davem, richard, gxt, tglx, hpa,
	alexander.levin, akpm, linux-alpha, linux-kernel, linux-snps-arc,
	linux-arm-kernel, linux-hexagon, linux-ia64, linux-m68k,
	linux-mips, nios2-dev, openrisc, linux-parisc, linuxppc-dev,
	linux-riscv, linux-s390, linux-sh, sparclinux,
	user-mode-linux-devel, user-mode-linux-user, linux-xtensa, iommu,
	linux-mm, brajeswar.linux, sabyasachi.linux

[-- Attachment #1: Type: text/plain, Size: 11761 bytes --]

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 56250 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: linux-s390, linux-ia64, linux-alpha, linux-parisc, linux-sparc,
	linux-mm, linux-kernel, linuxppc-embedded, linux-m68k, linux-sh,
	linux-mips

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: multipart/mixed; boundary="--IS0zKkzwUGydFO0o", Size: 88058 bytes --]


--IS0zKkzwUGydFO0o
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

--IS0zKkzwUGydFO0o
Content-Type: application/gzip
Content-Disposition: attachment; filename=".config.gz"
Content-Transfer-Encoding: base64

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

--IS0zKkzwUGydFO0o--

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: sparclinux

[-- Attachment #1: Type: text/plain, Size: 11761 bytes --]

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 56250 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: linux-riscv

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 56250 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20180617/db6a6435/attachment.gz>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: linux-snps-arc

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie at au1.ibm.com>
:::::: CC: Michael Ellerman <mpe at ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 56250 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-snps-arc/attachments/20180617/db6a6435/attachment-0001.gz>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [OpenRISC] [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: openrisc

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 56250 bytes
Desc: not available
URL: <http://lists.librecores.org/pipermail/openrisc/attachments/20180617/db6a6435/attachment-0001.gz>

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: linux-ia64

[-- Attachment #1: Type: text/plain, Size: 11761 bytes --]

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie@au1.ibm.com>
:::::: CC: Michael Ellerman <mpe@ellerman.id.au>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 56250 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t
@ 2018-06-16 18:14   ` kbuild test robot
  0 siblings, 0 replies; 25+ messages in thread
From: kbuild test robot @ 2018-06-16 18:14 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA,
	linux-ia64-u79uwXL29TY76Z2rM5mHXA,
	linux-sh-u79uwXL29TY76Z2rM5mHXA,
	benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r,
	palmer-SpMDHPYPyPbQT0dZR+AlfA, will.deacon-5wv7dgnIgG8,
	jejb-6jwH94ZQLHl74goWV3ctuw, linux-mm-Bw31MaZKKs3YtjvyW6yDsg,
	hpa-YMNOUZJC4hwAvxtiuMwx3w, sparclinux-u79uwXL29TY76Z2rM5mHXA,
	linux-hexagon-u79uwXL29TY76Z2rM5mHXA,
	linux-riscv-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	alexander.levin-H+0wwilmMs1BDgjK7y7TUQ,
	jonas-A9uVI2HLR7kOP4wsBPIw7w, linux-s390-u79uwXL29TY76Z2rM5mHXA,
	ysato-Rn4VEauK+AKRv+LV9MX5uooqe+aC9MnS,
	sabyasachi.linux-Re5JQEeQqe8AvxtiuMwx3w, richard-/L3Ra7n9ekc,
	linux-I+IVW8TIWO2tmTQ+vhA3Yw, willy-wEGCiKHe2LqWVfeAwA7xHQ,
	geert-Td1EMuHUCqxL1ZNQvxDV9g, catalin.marinas-5wv7dgnIgG8,
	jhogan-DgEjT+Ai2ygdnm+yROfE0A, mattst88-Re5JQEeQqe8AvxtiuMwx3w,
	linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw,
	user-mode-linux-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	brajeswar.linux-Re5JQEeQqe8AvxtiuMwx3w,
	linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b,
	openrisc-cunTk1MwBs9a3B2Vnqf2dGD2FQJk+8+b,
	user-mode-linux-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	nios2-dev-g9ZBwUv/Ih/yUk5EbOjzuce+I+R0W71w,
	tglx-hfZtesqFncYOwBW4kG4KsQ

[-- Attachment #1: Type: text/plain, Size: 11814 bytes --]

Hi Souptick,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v4.17]
[cannot apply to linus/master powerpc/next sparc-next/master next-20180615]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Souptick-Joarder/mm-convert-return-type-of-handle_mm_fault-caller-to-vm_fault_t/20180615-030636
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=powerpc 

All warnings (new ones prefixed by >>):

   arch/powerpc/mm/copro_fault.c:36:5: error: conflicting types for 'copro_handle_mm_fault'
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~
   In file included from include/linux/linkage.h:7:0,
                    from include/linux/kernel.h:7,
                    from include/asm-generic/bug.h:18,
                    from arch/powerpc/include/asm/bug.h:128,
                    from include/linux/bug.h:5,
                    from arch/powerpc/include/asm/mmu.h:126,
                    from arch/powerpc/include/asm/lppaca.h:36,
                    from arch/powerpc/include/asm/paca.h:21,
                    from arch/powerpc/include/asm/current.h:16,
                    from include/linux/sched.h:12,
                    from arch/powerpc/mm/copro_fault.c:23:
   arch/powerpc/mm/copro_fault.c:101:19: error: conflicting types for 'copro_handle_mm_fault'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
                      ^
   include/linux/export.h:65:21: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;      \
                        ^~~
>> arch/powerpc/mm/copro_fault.c:101:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
    ^~~~~~~~~~~~~~~~~
   In file included from arch/powerpc/mm/copro_fault.c:27:0:
   arch/powerpc/include/asm/copro.h:18:5: note: previous declaration of 'copro_handle_mm_fault' was here
    int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
        ^~~~~~~~~~~~~~~~~~~~~

vim +/EXPORT_SYMBOL_GPL +101 arch/powerpc/mm/copro_fault.c

7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  @23  #include <linux/sched.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   24  #include <linux/mm.h>
4b16f8e2d arch/powerpc/platforms/cell/spu_fault.c Paul Gortmaker     2011-07-22   25  #include <linux/export.h>
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   26  #include <asm/reg.h>
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   27  #include <asm/copro.h>
be3ebfe82 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   28  #include <asm/spu.h>
ec249dd86 arch/powerpc/mm/copro_fault.c           Michael Neuling    2015-05-27   29  #include <misc/cxl-base.h>
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   30  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   31  /*
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   32   * This ought to be kept in sync with the powerpc specific do_page_fault
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   33   * function. Currently, there are a few corner cases that we haven't had
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   34   * to handle fortunately.
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   35   */
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   36  int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea,
7c71e54a4 arch/powerpc/mm/copro_fault.c           Souptick Joarder   2018-06-15   37  		unsigned long dsisr, vm_fault_t *flt)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   38  {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   39  	struct vm_area_struct *vma;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   40  	unsigned long is_write;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   41  	int ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   42  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   43  	if (mm == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   44  		return -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   45  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   46  	if (mm->pgd == NULL)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   47  		return -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   48  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   49  	down_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   50  	ret = -EFAULT;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   51  	vma = find_vma(mm, ea);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   52  	if (!vma)
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   53  		goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   54  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   55  	if (ea < vma->vm_start) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   56  		if (!(vma->vm_flags & VM_GROWSDOWN))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   57  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   58  		if (expand_stack(vma, ea))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   59  			goto out_unlock;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   60  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   61  
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08   62  	is_write = dsisr & DSISR_ISSTORE;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   63  	if (is_write) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   64  		if (!(vma->vm_flags & VM_WRITE))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   65  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   66  	} else {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   67  		if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   68  			goto out_unlock;
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   69  		/*
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   70  		 * PROT_NONE is covered by the VMA check above.
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   71  		 * and hash should get a NOHPTE fault instead of
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   72  		 * a PROTFAULT in case fixup is needed for things
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   73  		 * like autonuma.
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   74  		 */
18061c17c arch/powerpc/mm/copro_fault.c           Aneesh Kumar K.V   2017-01-30   75  		if (!radix_enabled())
842915f56 arch/powerpc/mm/copro_fault.c           Mel Gorman         2015-02-12   76  			WARN_ON_ONCE(dsisr & DSISR_PROTFAULT);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   77  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   78  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   79  	ret = 0;
dcddffd41 arch/powerpc/mm/copro_fault.c           Kirill A. Shutemov 2016-07-26   80  	*flt = handle_mm_fault(vma, ea, is_write ? FAULT_FLAG_WRITE : 0);
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   81  	if (unlikely(*flt & VM_FAULT_ERROR)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   82  		if (*flt & VM_FAULT_OOM) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   83  			ret = -ENOMEM;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   84  			goto out_unlock;
33692f275 arch/powerpc/mm/copro_fault.c           Linus Torvalds     2015-01-29   85  		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   86  			ret = -EFAULT;
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   87  			goto out_unlock;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   88  		}
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   89  		BUG();
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   90  	}
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   91  
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   92  	if (*flt & VM_FAULT_MAJOR)
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   93  		current->maj_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   94  	else
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   95  		current->min_flt++;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   96  
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   97  out_unlock:
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20   98  	up_read(&mm->mmap_sem);
60ee03194 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2009-02-17   99  	return ret;
7cd58e438 arch/powerpc/platforms/cell/spu_fault.c Jeremy Kerr        2007-12-20  100  }
e83d01697 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08 @101  EXPORT_SYMBOL_GPL(copro_handle_mm_fault);
73d16a6e0 arch/powerpc/mm/copro_fault.c           Ian Munsie         2014-10-08  102  

:::::: The code at line 101 was first introduced by commit
:::::: e83d01697583d8610d1d62279758c2a881e3396f powerpc/cell: Move spu_handle_mm_fault() out of cell platform

:::::: TO: Ian Munsie <imunsie-8fk3Idey6ehBDgjK7y7TUQ@public.gmane.org>
:::::: CC: Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 56250 bytes --]

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2018-06-16 18:15 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-14 19:06 [PATCH] mm: convert return type of handle_mm_fault() caller to vm_fault_t Souptick Joarder
2018-06-14 19:18 ` Souptick Joarder
2018-06-14 19:06 ` [OpenRISC] " Souptick Joarder
2018-06-14 19:06 ` Souptick Joarder
2018-06-14 19:06 ` Souptick Joarder
2018-06-14 19:06 ` Souptick Joarder
2018-06-14 21:31 ` kbuild test robot
2018-06-14 21:31   ` kbuild test robot
2018-06-14 21:31   ` kbuild test robot
2018-06-14 21:31   ` [OpenRISC] " kbuild test robot
2018-06-14 21:31   ` kbuild test robot
2018-06-14 21:31   ` kbuild test robot
2018-06-14 21:31   ` kbuild test robot
2018-06-14 21:31   ` kbuild test robot
2018-06-14 21:31   ` kbuild test robot
2018-06-16 18:14 ` kbuild test robot
2018-06-16 18:14   ` kbuild test robot
2018-06-16 18:14   ` kbuild test robot
2018-06-16 18:14   ` [OpenRISC] " kbuild test robot
2018-06-16 18:14   ` kbuild test robot
2018-06-16 18:14   ` kbuild test robot
2018-06-16 18:14   ` kbuild test robot
2018-06-16 18:14   ` kbuild test robot
2018-06-16 18:14   ` kbuild test robot
2018-06-16 18:14   ` kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.