Skip to content
  • Michael Ellerman's avatar
    powerpc/64s: Fix section mismatch warnings from setup_rfi_flush() · 501a78cb
    Michael Ellerman authored
    The recent LPM changes to setup_rfi_flush() are causing some section
    mismatch warnings because we removed the __init annotation on
    setup_rfi_flush():
    
      The function setup_rfi_flush() references
      the function __init ppc64_bolted_size().
      the function __init memblock_alloc_base().
    
    The references are actually in init_fallback_flush(), but that is
    inlined into setup_rfi_flush().
    
    These references are safe because:
     - only pseries calls setup_rfi_flush() at runtime
     - pseries always passes L1D_FLUSH_FALLBACK at boot
     - so the fallback flush area will always be allocated
     - so the check in init_fallback_flush() will always return early:
       /* Only allocate the fallback flush area once (at boot time). */
       if (l1d_flush_fallback_area)
       	return;
    
     - and therefore we won't actually call the freed init routines.
    
    We should rework the code to make it safer by default rather than
    relying on the above, but for now as a quick-fix just add a __ref
    annotation to squash the warning.
    
    Fixes: abf110f3
    
     ("powerpc/rfi-flush: Make it possible to call setup_rfi_flush() again")
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    501a78cb