Patch "memblock: fix section mismatch warning" has been added to the 5.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    memblock: fix section mismatch warning

to the 5.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     memblock-fix-section-mismatch-warning.patch
and it can be found in the queue-5.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 43dd9650163eeec38c0a556bbd2d0933a41d757d
Author: Arnd Bergmann <arnd@xxxxxxxx>
Date:   Fri Mar 12 21:07:01 2021 -0800

    memblock: fix section mismatch warning
    
    [ Upstream commit 34dc2efb39a231280fd6696a59bbe712bf3c5c4a ]
    
    The inlining logic in clang-13 is rewritten to often not inline some
    functions that were inlined by all earlier compilers.
    
    In case of the memblock interfaces, this exposed a harmless bug of a
    missing __init annotation:
    
    WARNING: modpost: vmlinux.o(.text+0x507c0a): Section mismatch in reference from the function memblock_bottom_up() to the variable .meminit.data:memblock
    The function memblock_bottom_up() references
    the variable __meminitdata memblock.
    This is often because memblock_bottom_up lacks a __meminitdata
    annotation or the annotation of memblock is wrong.
    
    Interestingly, these annotations were present originally, but got removed
    with the explanation that the __init annotation prevents the function from
    getting inlined.  I checked this again and found that while this is the
    case with clang, gcc (version 7 through 10, did not test others) does
    inline the functions regardless.
    
    As the previous change was apparently intended to help the clang builds,
    reverting it to help the newer clang versions seems appropriate as well.
    gcc builds don't seem to care either way.
    
    Link: https://lkml.kernel.org/r/20210225133808.2188581-1-arnd@xxxxxxxxxx
    Fixes: 5bdba520c1b3 ("mm: memblock: drop __init from memblock functions to make it inline")
    Reference: 2cfb3665e864 ("include/linux/memblock.h: add __init to memblock_set_bottom_up()")
    Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
    Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
    Reviewed-by: Mike Rapoport <rppt@xxxxxxxxxxxxx>
    Cc: Nathan Chancellor <nathan@xxxxxxxxxx>
    Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
    Cc: Faiyaz Mohammed <faiyazm@xxxxxxxxxxxxxx>
    Cc: Baoquan He <bhe@xxxxxxxxxx>
    Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
    Cc: Aslan Bakirov <aslan@xxxxxx>
    Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/include/linux/memblock.h b/include/linux/memblock.h
index b93c44b9121e..7643d2dfa959 100644
--- a/include/linux/memblock.h
+++ b/include/linux/memblock.h
@@ -460,7 +460,7 @@ static inline void memblock_free_late(phys_addr_t base, phys_addr_t size)
 /*
  * Set the allocation direction to bottom-up or top-down.
  */
-static inline void memblock_set_bottom_up(bool enable)
+static inline __init void memblock_set_bottom_up(bool enable)
 {
 	memblock.bottom_up = enable;
 }
@@ -470,7 +470,7 @@ static inline void memblock_set_bottom_up(bool enable)
  * if this is true, that said, memblock will allocate memory
  * in bottom-up direction.
  */
-static inline bool memblock_bottom_up(void)
+static inline __init bool memblock_bottom_up(void)
 {
 	return memblock.bottom_up;
 }



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux