Re: [PATCH] mm: Change return type to vm_fault_t

From: Souptick Joarder
Date: Sat Jun 02 2018 - 10:44:44 EST


Please ignoe this mail. I send it by mistake.

On Sat, Jun 2, 2018 at 8:14 PM, Souptick Joarder <jrdr.linux@xxxxxxxxx> wrote:
> On Wed, May 30, 2018 at 4:46 PM, Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>> On Wed, May 30, 2018 at 09:10:47AM +0530, Souptick Joarder wrote:
>>> On Tue, May 29, 2018 at 11:04 PM, Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>>> > 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 ?
>>
>> Nope. Here's what I have:
>>
>> willy@bobo:~/kernel/souptick$ make C=2 mm/gup.o
>> CHK include/config/kernel.release
>> CHK include/generated/uapi/linux/version.h
>> CHK include/generated/utsrelease.h
>> CHECK arch/x86/purgatory/purgatory.c
>> CHECK arch/x86/purgatory/sha256.c
>> CHECK arch/x86/purgatory/string.c
>> arch/x86/purgatory/../boot/string.c:134:6: warning: symbol 'simple_strtol' was not declared. Should it be static?
>> CHK include/generated/bounds.h
>> CHK include/generated/timeconst.h
>> CHK include/generated/asm-offsets.h
>> CALL scripts/checksyscalls.sh
>> DESCEND objtool
>> CHECK scripts/mod/empty.c
>> CHK scripts/mod/devicetable-offsets.h
>> CHECK mm/gup.c
>> 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
>> CC mm/gup.o
>>
>
> Matthew,
>
> Due to some unidentified error still not able to catch this warning
> in (X86_64 + sparse) compilation. It is constantly showing below error.
>
> Documents/linux-4.17-rc7$ make C=2 -j4 mm/gup.o
> CHK include/config/kernel.release
> CHK include/generated/uapi/linux/version.h
> DESCEND objtool
> CHK include/generated/utsrelease.h
> CHECK scripts/mod/empty.c
> CHK scripts/mod/devicetable-offsets.h
> CHK include/generated/bounds.h
> CHK include/generated/timeconst.h
> CHK include/generated/asm-offsets.h
> CALL scripts/checksyscalls.sh
> CHECK mm/gup.c
> mm/gup.c:394:17: error: undefined identifier '__COUNTER__'
> mm/gup.c:439:9: error: undefined identifier '__COUNTER__'
> mm/gup.c:441:9: error: undefined identifier '__COUNTER__'
> mm/gup.c:443:9: error: undefined identifier '__COUNTER__'
> mm/gup.c:508:17: error: undefined identifier '__COUNTER__'
> mm/gup.c:716:25: error: undefined identifier '__COUNTER__'
> mm/gup.c:826:17: error: undefined identifier '__COUNTER__'
> mm/gup.c:863:17: error: undefined identifier '__COUNTER__'
> mm/gup.c:865:17: error: undefined identifier '__COUNTER__'
> mm/gup.c:882:25: error: undefined identifier '__COUNTER__'
> mm/gup.c:883:25: error: undefined identifier '__COUNTER__'
> mm/gup.c:920:25: error: undefined identifier '__COUNTER__'
> ./include/linux/hugetlb.h:239:9: error: undefined identifier '__COUNTER__'
>
>
> But able to capture it in (powerpc + sparse) compilation.
> I will fix it in v2.
>
> /Documents/linux-4.17-rc7$ make C=2 ARCH=powerpc
> CROSS_COMPILE=powerpc-linux-gnu- mm/gup.o
> CHK include/config/kernel.release
> CHK include/generated/uapi/linux/version.h
> CHK include/generated/utsrelease.h
> CHK include/generated/bounds.h
> CHK include/generated/timeconst.h
> CHK include/generated/asm-offsets.h
> CALL scripts/checksyscalls.sh
> CHECK scripts/mod/empty.c
> CHK scripts/mod/devicetable-offsets.h
> CHECK mm/gup.c
> ./arch/powerpc/include/asm/book3s/64/pgtable.h:669:24: warning:
> restricted __be64 degrades to integer
> mm/gup.c:820:15: warning: incorrect type in assignment (different base types)
> mm/gup.c:820:15: expected int [signed] major
> mm/gup.c:820:15: got restricted vm_fault_t
> mm/gup.c:1247:24: warning: expression using sizeof bool
> mm/gup.c:1247:24: warning: expression using sizeof(void)
> mm/gup.c:1247:24: warning: expression using sizeof(void)
> ./arch/powerpc/include/asm/book3s/64/pgtable.h:667:20: warning:
> incorrect type in initializer (different base types)
> ./arch/powerpc/include/asm/book3s/64/pgtable.h:667:20: expected
> unsigned long long [unsigned] [usertype] mask
> ./arch/powerpc/include/asm/book3s/64/pgtable.h:667:20: got
> restricted __be64 [usertype] <noident>
> mm/gup.c:1735:6: warning: symbol 'gup_fast_permitted' was not
> declared. Should it be static?
> CC mm/gup.o
>
>
> Sparse is throwing below warning ->
>
> /Documents/linux-4.17-rc7$ make C=2 ARCH=powerpc
> CROSS_COMPILE=powerpc-linux-gnu- mm/hugetlb.o
> CHK include/config/kernel.release
> CHK include/generated/uapi/linux/version.h
> CHK include/generated/utsrelease.h
> CHK include/generated/bounds.h
> CHK include/generated/timeconst.h
> CHK include/generated/asm-offsets.h
> CALL scripts/checksyscalls.sh
> CHECK scripts/mod/empty.c
> CHK scripts/mod/devicetable-offsets.h
> CHECK mm/hugetlb.c
> mm/hugetlb.c:3778:33: warning: restricted vm_fault_t degrades to integer
> mm/hugetlb.c:3777:31: warning: restricted vm_fault_t degrades to integer
> mm/hugetlb.c:3777:29: warning: incorrect type in assignment (different
> base types)
> mm/hugetlb.c:3777:29: expected restricted vm_fault_t [assigned]
> [usertype] ret
> mm/hugetlb.c:3777:29: got unsigned int
> mm/hugetlb.c:3895:33: warning: restricted vm_fault_t degrades to integer
> mm/hugetlb.c:3894:32: warning: restricted vm_fault_t degrades to integer
> mm/hugetlb.c:3894:56: warning: incorrect type in return expression
> (different base types)
> mm/hugetlb.c:3894:56: expected restricted vm_fault_t
> mm/hugetlb.c:3894:56: got unsigned int