diff mbox series

mm: fix prototype warning from kernel test robot

Message ID 20210122070359.24010-1-bhe@redhat.com (mailing list archive)
State New
Headers show
Series mm: fix prototype warning from kernel test robot | expand

Commit Message

Baoquan He Jan. 22, 2021, 7:03 a.m. UTC
Kernel test robot calling make with 'W=1' triggering warning like below
below for memmap_init_zone() function.

mm/page_alloc.c:6259:23: warning: no previous prototype for 'memmap_init_zone' [-Wmissing-prototypes]
 6259 | void __meminit __weak memmap_init_zone(unsigned long size, int nid,
      |                       ^~~~~~~~~~~~~~~~

Fix it by adding the function declaration in include/linux/mm.h.
Since memmap_init_zone() has a generic version with '__weak',
the declaratoin in ia64 header file can be simply removed.

Signed-off-by: Baoquan He <bhe@redhat.com>
Reported-by: kernel test robot <lkp@intel.com>
---
 arch/ia64/include/asm/pgtable.h | 5 -----
 include/linux/mm.h              | 1 +
 2 files changed, 1 insertion(+), 5 deletions(-)

Comments

David Hildenbrand Jan. 22, 2021, 8:40 a.m. UTC | #1
On 22.01.21 08:03, Baoquan He wrote:
> Kernel test robot calling make with 'W=1' triggering warning like below
> below for memmap_init_zone() function.
> 
> mm/page_alloc.c:6259:23: warning: no previous prototype for 'memmap_init_zone' [-Wmissing-prototypes]
>  6259 | void __meminit __weak memmap_init_zone(unsigned long size, int nid,
>       |                       ^~~~~~~~~~~~~~~~
> 
> Fix it by adding the function declaration in include/linux/mm.h.
> Since memmap_init_zone() has a generic version with '__weak',
> the declaratoin in ia64 header file can be simply removed.
> 
> Signed-off-by: Baoquan He <bhe@redhat.com>
> Reported-by: kernel test robot <lkp@intel.com>
> ---
>  arch/ia64/include/asm/pgtable.h | 5 -----
>  include/linux/mm.h              | 1 +
>  2 files changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
> index 2c81394a2430..9b4efe89e62d 100644
> --- a/arch/ia64/include/asm/pgtable.h
> +++ b/arch/ia64/include/asm/pgtable.h
> @@ -517,11 +517,6 @@ extern struct page *zero_page_memmap_ptr;
>  	__changed;							\
>  })
>  #endif
> -
> -#  ifdef CONFIG_VIRTUAL_MEM_MAP
> -  /* arch mem_map init routine is needed due to holes in a virtual mem_map */
> -    extern void memmap_init_zone(struct zone *zone);
> -#  endif /* CONFIG_VIRTUAL_MEM_MAP */
>  # endif /* !__ASSEMBLY__ */
>  
>  /*
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 56bb239f9150..073049bd0b29 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -2401,6 +2401,7 @@ extern void set_dma_reserve(unsigned long new_dma_reserve);
>  extern void memmap_init_range(unsigned long, int, unsigned long,
>  		unsigned long, unsigned long, enum meminit_context,
>  		struct vmem_altmap *, int migratetype);
> +extern void memmap_init_zone(struct zone *zone);
>  extern void setup_per_zone_wmarks(void);
>  extern int __meminit init_per_zone_wmark_min(void);
>  extern void mem_init(void);
> 

This patch is on top of your other series, no?

In -next, we have

extern void memmap_init_zone(unsigned long, int, unsigned long, ...

In that file, so something is wrong.
Baoquan He Jan. 22, 2021, 8:46 a.m. UTC | #2
On 01/22/21 at 09:40am, David Hildenbrand wrote:
> On 22.01.21 08:03, Baoquan He wrote:
> > Kernel test robot calling make with 'W=1' triggering warning like below
> > below for memmap_init_zone() function.
> > 
> > mm/page_alloc.c:6259:23: warning: no previous prototype for 'memmap_init_zone' [-Wmissing-prototypes]
> >  6259 | void __meminit __weak memmap_init_zone(unsigned long size, int nid,
> >       |                       ^~~~~~~~~~~~~~~~
> > 
> > Fix it by adding the function declaration in include/linux/mm.h.
> > Since memmap_init_zone() has a generic version with '__weak',
> > the declaratoin in ia64 header file can be simply removed.
> > 
> > Signed-off-by: Baoquan He <bhe@redhat.com>
> > Reported-by: kernel test robot <lkp@intel.com>
> > ---
> >  arch/ia64/include/asm/pgtable.h | 5 -----
> >  include/linux/mm.h              | 1 +
> >  2 files changed, 1 insertion(+), 5 deletions(-)
> > 
> > diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
> > index 2c81394a2430..9b4efe89e62d 100644
> > --- a/arch/ia64/include/asm/pgtable.h
> > +++ b/arch/ia64/include/asm/pgtable.h
> > @@ -517,11 +517,6 @@ extern struct page *zero_page_memmap_ptr;
> >  	__changed;							\
> >  })
> >  #endif
> > -
> > -#  ifdef CONFIG_VIRTUAL_MEM_MAP
> > -  /* arch mem_map init routine is needed due to holes in a virtual mem_map */
> > -    extern void memmap_init_zone(struct zone *zone);
> > -#  endif /* CONFIG_VIRTUAL_MEM_MAP */
> >  # endif /* !__ASSEMBLY__ */
> >  
> >  /*
> > diff --git a/include/linux/mm.h b/include/linux/mm.h
> > index 56bb239f9150..073049bd0b29 100644
> > --- a/include/linux/mm.h
> > +++ b/include/linux/mm.h
> > @@ -2401,6 +2401,7 @@ extern void set_dma_reserve(unsigned long new_dma_reserve);
> >  extern void memmap_init_range(unsigned long, int, unsigned long,
> >  		unsigned long, unsigned long, enum meminit_context,
> >  		struct vmem_altmap *, int migratetype);
> > +extern void memmap_init_zone(struct zone *zone);
> >  extern void setup_per_zone_wmarks(void);
> >  extern int __meminit init_per_zone_wmark_min(void);
> >  extern void mem_init(void);
> > 
> 
> This patch is on top of your other series, no?
> 
> In -next, we have
> 
> extern void memmap_init_zone(unsigned long, int, unsigned long, ...
> 
> In that file, so something is wrong.

Right, this one is based on the memmap_init_xx clean up patchset. I
mentioned this the the sub-thread of kernel test robot reporting issues.
David Hildenbrand Jan. 22, 2021, 8:55 a.m. UTC | #3
On 22.01.21 09:46, Baoquan He wrote:
> On 01/22/21 at 09:40am, David Hildenbrand wrote:
>> On 22.01.21 08:03, Baoquan He wrote:
>>> Kernel test robot calling make with 'W=1' triggering warning like below
>>> below for memmap_init_zone() function.
>>>
>>> mm/page_alloc.c:6259:23: warning: no previous prototype for 'memmap_init_zone' [-Wmissing-prototypes]
>>>  6259 | void __meminit __weak memmap_init_zone(unsigned long size, int nid,
>>>       |                       ^~~~~~~~~~~~~~~~
>>>
>>> Fix it by adding the function declaration in include/linux/mm.h.
>>> Since memmap_init_zone() has a generic version with '__weak',
>>> the declaratoin in ia64 header file can be simply removed.
>>>
>>> Signed-off-by: Baoquan He <bhe@redhat.com>
>>> Reported-by: kernel test robot <lkp@intel.com>
>>> ---
>>>  arch/ia64/include/asm/pgtable.h | 5 -----
>>>  include/linux/mm.h              | 1 +
>>>  2 files changed, 1 insertion(+), 5 deletions(-)
>>>
>>> diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
>>> index 2c81394a2430..9b4efe89e62d 100644
>>> --- a/arch/ia64/include/asm/pgtable.h
>>> +++ b/arch/ia64/include/asm/pgtable.h
>>> @@ -517,11 +517,6 @@ extern struct page *zero_page_memmap_ptr;
>>>  	__changed;							\
>>>  })
>>>  #endif
>>> -
>>> -#  ifdef CONFIG_VIRTUAL_MEM_MAP
>>> -  /* arch mem_map init routine is needed due to holes in a virtual mem_map */
>>> -    extern void memmap_init_zone(struct zone *zone);
>>> -#  endif /* CONFIG_VIRTUAL_MEM_MAP */
>>>  # endif /* !__ASSEMBLY__ */
>>>  
>>>  /*
>>> diff --git a/include/linux/mm.h b/include/linux/mm.h
>>> index 56bb239f9150..073049bd0b29 100644
>>> --- a/include/linux/mm.h
>>> +++ b/include/linux/mm.h
>>> @@ -2401,6 +2401,7 @@ extern void set_dma_reserve(unsigned long new_dma_reserve);
>>>  extern void memmap_init_range(unsigned long, int, unsigned long,
>>>  		unsigned long, unsigned long, enum meminit_context,
>>>  		struct vmem_altmap *, int migratetype);
>>> +extern void memmap_init_zone(struct zone *zone);
>>>  extern void setup_per_zone_wmarks(void);
>>>  extern int __meminit init_per_zone_wmark_min(void);
>>>  extern void mem_init(void);
>>>
>>
>> This patch is on top of your other series, no?
>>
>> In -next, we have
>>
>> extern void memmap_init_zone(unsigned long, int, unsigned long, ...
>>
>> In that file, so something is wrong.
> 
> Right, this one is based on the memmap_init_xx clean up patchset. I
> mentioned this the the sub-thread of kernel test robot reporting issues.
> 

I think it would make things easier to move that fix to the front and
resend the whole (5 patches) series.
Baoquan He Jan. 22, 2021, 8:58 a.m. UTC | #4
On 01/22/21 at 09:55am, David Hildenbrand wrote:
> On 22.01.21 09:46, Baoquan He wrote:
> > On 01/22/21 at 09:40am, David Hildenbrand wrote:
> >> On 22.01.21 08:03, Baoquan He wrote:
> >>> Kernel test robot calling make with 'W=1' triggering warning like below
> >>> below for memmap_init_zone() function.
> >>>
> >>> mm/page_alloc.c:6259:23: warning: no previous prototype for 'memmap_init_zone' [-Wmissing-prototypes]
> >>>  6259 | void __meminit __weak memmap_init_zone(unsigned long size, int nid,
> >>>       |                       ^~~~~~~~~~~~~~~~
> >>>
> >>> Fix it by adding the function declaration in include/linux/mm.h.
> >>> Since memmap_init_zone() has a generic version with '__weak',
> >>> the declaratoin in ia64 header file can be simply removed.
> >>>
> >>> Signed-off-by: Baoquan He <bhe@redhat.com>
> >>> Reported-by: kernel test robot <lkp@intel.com>
> >>> ---
> >>>  arch/ia64/include/asm/pgtable.h | 5 -----
> >>>  include/linux/mm.h              | 1 +
> >>>  2 files changed, 1 insertion(+), 5 deletions(-)
> >>>
> >>> diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
> >>> index 2c81394a2430..9b4efe89e62d 100644
> >>> --- a/arch/ia64/include/asm/pgtable.h
> >>> +++ b/arch/ia64/include/asm/pgtable.h
> >>> @@ -517,11 +517,6 @@ extern struct page *zero_page_memmap_ptr;
> >>>  	__changed;							\
> >>>  })
> >>>  #endif
> >>> -
> >>> -#  ifdef CONFIG_VIRTUAL_MEM_MAP
> >>> -  /* arch mem_map init routine is needed due to holes in a virtual mem_map */
> >>> -    extern void memmap_init_zone(struct zone *zone);
> >>> -#  endif /* CONFIG_VIRTUAL_MEM_MAP */
> >>>  # endif /* !__ASSEMBLY__ */
> >>>  
> >>>  /*
> >>> diff --git a/include/linux/mm.h b/include/linux/mm.h
> >>> index 56bb239f9150..073049bd0b29 100644
> >>> --- a/include/linux/mm.h
> >>> +++ b/include/linux/mm.h
> >>> @@ -2401,6 +2401,7 @@ extern void set_dma_reserve(unsigned long new_dma_reserve);
> >>>  extern void memmap_init_range(unsigned long, int, unsigned long,
> >>>  		unsigned long, unsigned long, enum meminit_context,
> >>>  		struct vmem_altmap *, int migratetype);
> >>> +extern void memmap_init_zone(struct zone *zone);
> >>>  extern void setup_per_zone_wmarks(void);
> >>>  extern int __meminit init_per_zone_wmark_min(void);
> >>>  extern void mem_init(void);
> >>>
> >>
> >> This patch is on top of your other series, no?
> >>
> >> In -next, we have
> >>
> >> extern void memmap_init_zone(unsigned long, int, unsigned long, ...
> >>
> >> In that file, so something is wrong.
> > 
> > Right, this one is based on the memmap_init_xx clean up patchset. I
> > mentioned this the the sub-thread of kernel test robot reporting issues.
> > 
> 
> I think it would make things easier to move that fix to the front and
> resend the whole (5 patches) series.

OK, it's fine to me, will resend a series adding this one in. I also
need polish log of this patch. Thanks for looking into this.
David Hildenbrand Jan. 22, 2021, 9:08 a.m. UTC | #5
On 22.01.21 09:58, Baoquan He wrote:
> On 01/22/21 at 09:55am, David Hildenbrand wrote:
>> On 22.01.21 09:46, Baoquan He wrote:
>>> On 01/22/21 at 09:40am, David Hildenbrand wrote:
>>>> On 22.01.21 08:03, Baoquan He wrote:
>>>>> Kernel test robot calling make with 'W=1' triggering warning like below
>>>>> below for memmap_init_zone() function.
>>>>>
>>>>> mm/page_alloc.c:6259:23: warning: no previous prototype for 'memmap_init_zone' [-Wmissing-prototypes]
>>>>>  6259 | void __meminit __weak memmap_init_zone(unsigned long size, int nid,
>>>>>       |                       ^~~~~~~~~~~~~~~~
>>>>>
>>>>> Fix it by adding the function declaration in include/linux/mm.h.
>>>>> Since memmap_init_zone() has a generic version with '__weak',
>>>>> the declaratoin in ia64 header file can be simply removed.
>>>>>
>>>>> Signed-off-by: Baoquan He <bhe@redhat.com>
>>>>> Reported-by: kernel test robot <lkp@intel.com>
>>>>> ---
>>>>>  arch/ia64/include/asm/pgtable.h | 5 -----
>>>>>  include/linux/mm.h              | 1 +
>>>>>  2 files changed, 1 insertion(+), 5 deletions(-)
>>>>>
>>>>> diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
>>>>> index 2c81394a2430..9b4efe89e62d 100644
>>>>> --- a/arch/ia64/include/asm/pgtable.h
>>>>> +++ b/arch/ia64/include/asm/pgtable.h
>>>>> @@ -517,11 +517,6 @@ extern struct page *zero_page_memmap_ptr;
>>>>>  	__changed;							\
>>>>>  })
>>>>>  #endif
>>>>> -
>>>>> -#  ifdef CONFIG_VIRTUAL_MEM_MAP
>>>>> -  /* arch mem_map init routine is needed due to holes in a virtual mem_map */
>>>>> -    extern void memmap_init_zone(struct zone *zone);
>>>>> -#  endif /* CONFIG_VIRTUAL_MEM_MAP */
>>>>>  # endif /* !__ASSEMBLY__ */
>>>>>  
>>>>>  /*
>>>>> diff --git a/include/linux/mm.h b/include/linux/mm.h
>>>>> index 56bb239f9150..073049bd0b29 100644
>>>>> --- a/include/linux/mm.h
>>>>> +++ b/include/linux/mm.h
>>>>> @@ -2401,6 +2401,7 @@ extern void set_dma_reserve(unsigned long new_dma_reserve);
>>>>>  extern void memmap_init_range(unsigned long, int, unsigned long,
>>>>>  		unsigned long, unsigned long, enum meminit_context,
>>>>>  		struct vmem_altmap *, int migratetype);
>>>>> +extern void memmap_init_zone(struct zone *zone);
>>>>>  extern void setup_per_zone_wmarks(void);
>>>>>  extern int __meminit init_per_zone_wmark_min(void);
>>>>>  extern void mem_init(void);
>>>>>
>>>>
>>>> This patch is on top of your other series, no?
>>>>
>>>> In -next, we have
>>>>
>>>> extern void memmap_init_zone(unsigned long, int, unsigned long, ...
>>>>
>>>> In that file, so something is wrong.
>>>
>>> Right, this one is based on the memmap_init_xx clean up patchset. I
>>> mentioned this the the sub-thread of kernel test robot reporting issues.
>>>
>>
>> I think it would make things easier to move that fix to the front and
>> resend the whole (5 patches) series.
> 
> OK, it's fine to me, will resend a series adding this one in. I also
> need polish log of this patch. Thanks for looking into this.
> 

I'll review ASAP once you resend :)
diff mbox series

Patch

diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
index 2c81394a2430..9b4efe89e62d 100644
--- a/arch/ia64/include/asm/pgtable.h
+++ b/arch/ia64/include/asm/pgtable.h
@@ -517,11 +517,6 @@  extern struct page *zero_page_memmap_ptr;
 	__changed;							\
 })
 #endif
-
-#  ifdef CONFIG_VIRTUAL_MEM_MAP
-  /* arch mem_map init routine is needed due to holes in a virtual mem_map */
-    extern void memmap_init_zone(struct zone *zone);
-#  endif /* CONFIG_VIRTUAL_MEM_MAP */
 # endif /* !__ASSEMBLY__ */
 
 /*
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 56bb239f9150..073049bd0b29 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2401,6 +2401,7 @@  extern void set_dma_reserve(unsigned long new_dma_reserve);
 extern void memmap_init_range(unsigned long, int, unsigned long,
 		unsigned long, unsigned long, enum meminit_context,
 		struct vmem_altmap *, int migratetype);
+extern void memmap_init_zone(struct zone *zone);
 extern void setup_per_zone_wmarks(void);
 extern int __meminit init_per_zone_wmark_min(void);
 extern void mem_init(void);