Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
26 lines
941 B
C
26 lines
941 B
C
#define __INVALID_ATOMIC_ACCESS_TEST(op) \
|
|
{ \
|
|
"atomic " #op " access through non-pointer ", \
|
|
.insns = { \
|
|
BPF_MOV64_IMM(BPF_REG_0, 1), \
|
|
BPF_MOV64_IMM(BPF_REG_1, 0), \
|
|
BPF_ATOMIC_OP(BPF_DW, op, BPF_REG_1, BPF_REG_0, -8), \
|
|
BPF_MOV64_IMM(BPF_REG_0, 0), \
|
|
BPF_EXIT_INSN(), \
|
|
}, \
|
|
.result = REJECT, \
|
|
.errstr = "R1 invalid mem access 'scalar'" \
|
|
}
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_AND),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_AND | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_OR),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_OR | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_XOR),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_XOR | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_XCHG),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_CMPXCHG),
|