Message ID | 20220408200902.A24A9C385A1@smtp.kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/9] mm: migrate: use thp_order instead of HPAGE_PMD_ORDER for new page allocation. | expand |
On Fri, Apr 08, 2022 at 01:09:01PM -0700, Andrew Morton wrote: > From: Waiman Long <longman@redhat.com> > Subject: mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning > ... > Link: https://lkml.kernel.org/r/20220331180246.2746210-1-longman@redhat.com > Fixes: 3e347261a80b ("sparsemem extreme implementation") > Signed-off-by: Waiman Long <longman@redhat.com> > Reported-by: Justin Forbes <jforbes@redhat.com> > Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Rafael Aquini <aquini@redhat.com> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Oscar Salvador <osalvador@suse.de>
--- a/include/linux/mmzone.h~mm-sparsemem-fix-mem_section-will-never-be-null-gcc-12-warning +++ a/include/linux/mmzone.h @@ -1397,13 +1397,16 @@ static inline unsigned long *section_to_ static inline struct mem_section *__nr_to_section(unsigned long nr) { + unsigned long root = SECTION_NR_TO_ROOT(nr); + + if (unlikely(root >= NR_SECTION_ROOTS)) + return NULL; + #ifdef CONFIG_SPARSEMEM_EXTREME - if (!mem_section) + if (!mem_section || !mem_section[root]) return NULL; #endif - if (!mem_section[SECTION_NR_TO_ROOT(nr)]) - return NULL; - return &mem_section[SECTION_NR_TO_ROOT(nr)][nr & SECTION_ROOT_MASK]; + return &mem_section[root][nr & SECTION_ROOT_MASK]; } extern size_t mem_section_usage_size(void);