• Michael Holzheu's avatar
    s390/bpf: Fix multiple macro expansions · 1df03ffd
    Michael Holzheu authored
    The EMIT6_DISP_LH macro passes the "disp" parameter to the _EMIT6_DISP_LH
    macro. The _EMIT6_DISP_LH macro uses the "disp" parameter twice:
    
     unsigned int __disp_h = ((u32)disp) & 0xff000;
     unsigned int __disp_l = ((u32)disp) & 0x00fff;
    
    The EMIT6_DISP_LH is used several times with EMIT_CONST_U64() as "disp"
    parameter. Therefore always two constants are created per usage of
    EMIT6_DISP_LH.
    
    Fix this and add variable "_disp" to avoid multiple expansions.
    
    * v2: Move "_disp" to _EMIT6_DISP_LH as suggested by Joe Perches
    
    Fixes: 05462310 ("s390/bpf: Add s390x eBPF JIT compiler backend")
    Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1df03ffd
bpf_jit_comp.c 35.2 KB