lkml.org 
[lkml]   [2022]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 022/200] powerpc32/bpf: Fix codegen for bpf-to-bpf calls
    Date
    From: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>

    commit fab07611fb2e6a15fac05c4583045ca5582fd826 upstream.

    Pad instructions emitted for BPF_CALL so that the number of instructions
    generated does not change for different function addresses. This is
    especially important for calls to other bpf functions, whose address
    will only be known during extra pass.

    Fixes: 51c66ad849a703 ("powerpc/bpf: Implement extended BPF on PPC32")
    Cc: stable@vger.kernel.org # v5.13+
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/52d8fe51f7620a6f27f377791564d79d75463576.1641468127.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/powerpc/net/bpf_jit_comp32.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/arch/powerpc/net/bpf_jit_comp32.c
    +++ b/arch/powerpc/net/bpf_jit_comp32.c
    @@ -191,6 +191,9 @@ void bpf_jit_emit_func_call_rel(u32 *ima

    if (image && rel < 0x2000000 && rel >= -0x2000000) {
    PPC_BL_ABS(func);
    + EMIT(PPC_RAW_NOP());
    + EMIT(PPC_RAW_NOP());
    + EMIT(PPC_RAW_NOP());
    } else {
    /* Load function address into r0 */
    EMIT(PPC_RAW_LIS(_R0, IMM_H(func)));

    \
     
     \ /
      Last update: 2022-01-31 12:41    [W:4.107 / U:1.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site