Skip to content
Snippets Groups Projects
  • Heiko Carstens's avatar
    3af57f78
    s390/bpf,jit: fix 32 bit divisions, use unsigned divide instructions · 3af57f78
    Heiko Carstens authored
    
    The s390 bpf jit compiler emits the signed divide instructions "dr" and "d"
    for unsigned divisions.
    This can cause problems: the dividend will be zero extended to a 64 bit value
    and the divisor is the 32 bit signed value as specified A or X accumulator,
    even though A and X are supposed to be treated as unsigned values.
    
    The divide instrunctions will generate an exception if the result cannot be
    expressed with a 32 bit signed value.
    This is the case if e.g. the dividend is 0xffffffff and the divisor either 1
    or also 0xffffffff (signed: -1).
    
    To avoid all these issues simply use unsigned divide instructions.
    
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3af57f78
    History
    s390/bpf,jit: fix 32 bit divisions, use unsigned divide instructions
    Heiko Carstens authored
    
    The s390 bpf jit compiler emits the signed divide instructions "dr" and "d"
    for unsigned divisions.
    This can cause problems: the dividend will be zero extended to a 64 bit value
    and the divisor is the 32 bit signed value as specified A or X accumulator,
    even though A and X are supposed to be treated as unsigned values.
    
    The divide instrunctions will generate an exception if the result cannot be
    expressed with a 32 bit signed value.
    This is the case if e.g. the dividend is 0xffffffff and the divisor either 1
    or also 0xffffffff (signed: -1).
    
    To avoid all these issues simply use unsigned divide instructions.
    
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>