On Tue, May 29, 2018 at 11:04 PM, Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > On Tue, May 29, 2018 at 09:25:05PM +0530, Souptick Joarder wrote: >> On Tue, May 29, 2018 at 8:20 PM, Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: >> > On Tue, May 29, 2018 at 08:01:26PM +0530, Souptick Joarder wrote: >> >> 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. >> > >> > I don't believe you've checked this with sparse. >> > >> >> @@ -802,7 +802,8 @@ int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, >> >> bool *unlocked) >> >> { >> >> struct vm_area_struct *vma; >> >> - int ret, major = 0; >> >> + int major = 0; >> >> + vm_fault_t ret; >> >> >> >> if (unlocked) >> >> fault_flags |= FAULT_FLAG_ALLOW_RETRY; >> > >> > ... >> > major |= ret & VM_FAULT_MAJOR; >> > >> > That should be throwing a warning. >> >> Sorry, but I verified again and didn't see similar warnings. >> >> steps followed - >> >> apply the patch >> make c=2 -j4 ( build for x86_64) >> looking for warnings in files because of this patch. >> >> The only error I am seeing "error: undefined identifier '__COUNTER__' " >> which is pointing to BUG(). There are few warnings but those are not >> related to this patch. >> >> In my test tree the final patch to create new vm_fault_t type is >> already applied. >> >> Do you want me to verify in some other way ? > > I see: > > mm/gup.c:817:15: warning: invalid assignment: |= > mm/gup.c:817:15: left side has type int > mm/gup.c:817:15: right side has type restricted vm_fault_t > > are you building with 'c=2' or 'C=2'? Building with C=2. Do I need to enable any separate FLAG ?