• Christophe Leroy's avatar
    Revert "powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto" · b49e578b
    Christophe Leroy authored
    This partly reverts commit 1e688dd2.
    
    That commit aimed at optimising the code around generation of
    WARN_ON/BUG_ON but this leads to a lot of dead code erroneously
    generated by GCC.
    
    That dead code becomes a problem when we start using objtool validation
    because objtool will abort validation with a warning as soon as it
    detects unreachable code. This is because unreachable code might
    be the indication that objtool doesn't properly decode object text.
    
         text	   data	    bss	    dec	    hex	filename
      9551585	3627834	 224376	13403795	 cc8693	vmlinux.before
      9535281	3628358	 224376	13388015	 cc48ef	vmlinux.after
    
    Once this change is reverted, in a standard configuration (pmac32 +
    function tracer) the text is reduced by 16k which is around 1.7%
    
    We already had problem with it when starting to use objtool on powerpc
    as a replacement for recordmcount, see commit 93e3f45a ("powerpc:
    Fix __WARN_FLAGS() for use with Objtool")
    
    There is also a problem with at least GCC 12, on ppc64_defconfig +
    CONFIG_CC_OPTIMIZE_FOR_SIZE=y + CONFIG_DEBUG_SECTION_MISMATCH=y :
    
        LD      .tmp_vmlinux.kallsyms1
      powerpc64-linux-ld: net/ipv4/tcp_input.o:(__ex_table+0xc4): undefined reference to `.L2136'
      make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1
      make[1]: *** [/home/chleroy/linux-powerpc/Makefile:1238: vmlinux] Error 2
    
    Taking into account that other problems are encountered with that
    'asm goto' in WARN_ON(), including build failures, keeping that
    change is not worth it allthough it is primarily a compiler bug.
    
    Revert it for now.
    
    mpe: Retain EMIT_WARN_ENTRY as a synonym for EMIT_BUG_ENTRY to reduce
    churn, as there are now nearly as many uses of EMIT_WARN_ENTRY as
    EMIT_BUG_ENTRY.
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
    Acked-by: default avatarNaveen N Rao <naveen@kernel.org>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230712134552.534955-1-mpe@ellerman.id.au
    b49e578b
bug.h 3.19 KB