1d979e13aSRolf Eike Beer#!/bin/sh
2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
35aa5bd14SDaniel Borkmann
45aa5bd14SDaniel BorkmannSRC_TREE=../../../../
55aa5bd14SDaniel Borkmann
65aa5bd14SDaniel Borkmanntest_run()
75aa5bd14SDaniel Borkmann{
85aa5bd14SDaniel Borkmann	sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null
95aa5bd14SDaniel Borkmann	sysctl -w net.core.bpf_jit_harden=$2 2>&1 > /dev/null
105aa5bd14SDaniel Borkmann
115aa5bd14SDaniel Borkmann	echo "[ JIT enabled:$1 hardened:$2 ]"
125aa5bd14SDaniel Borkmann	dmesg -C
13035d808fSNaresh Kamboju	if [ -f ${SRC_TREE}/lib/test_bpf.ko ]; then
14035d808fSNaresh Kamboju		insmod ${SRC_TREE}/lib/test_bpf.ko 2> /dev/null
155aa5bd14SDaniel Borkmann		if [ $? -ne 0 ]; then
165aa5bd14SDaniel Borkmann			rc=1
175aa5bd14SDaniel Borkmann		fi
18035d808fSNaresh Kamboju	else
19035d808fSNaresh Kamboju		# Use modprobe dry run to check for missing test_bpf module
20035d808fSNaresh Kamboju		if ! /sbin/modprobe -q -n test_bpf; then
21035d808fSNaresh Kamboju			echo "test_bpf: [SKIP]"
22035d808fSNaresh Kamboju		elif /sbin/modprobe -q test_bpf; then
23035d808fSNaresh Kamboju			echo "test_bpf: ok"
24035d808fSNaresh Kamboju		else
25035d808fSNaresh Kamboju			echo "test_bpf: [FAIL]"
26035d808fSNaresh Kamboju			rc=1
27035d808fSNaresh Kamboju		fi
28035d808fSNaresh Kamboju	fi
295aa5bd14SDaniel Borkmann	rmmod  test_bpf 2> /dev/null
305aa5bd14SDaniel Borkmann	dmesg | grep FAIL
315aa5bd14SDaniel Borkmann}
325aa5bd14SDaniel Borkmann
335aa5bd14SDaniel Borkmanntest_save()
345aa5bd14SDaniel Borkmann{
355aa5bd14SDaniel Borkmann	JE=`sysctl -n net.core.bpf_jit_enable`
365aa5bd14SDaniel Borkmann	JH=`sysctl -n net.core.bpf_jit_harden`
375aa5bd14SDaniel Borkmann}
385aa5bd14SDaniel Borkmann
395aa5bd14SDaniel Borkmanntest_restore()
405aa5bd14SDaniel Borkmann{
415aa5bd14SDaniel Borkmann	sysctl -w net.core.bpf_jit_enable=$JE 2>&1 > /dev/null
425aa5bd14SDaniel Borkmann	sysctl -w net.core.bpf_jit_harden=$JH 2>&1 > /dev/null
435aa5bd14SDaniel Borkmann}
445aa5bd14SDaniel Borkmann
455aa5bd14SDaniel Borkmannrc=0
465aa5bd14SDaniel Borkmanntest_save
475aa5bd14SDaniel Borkmanntest_run 0 0
485aa5bd14SDaniel Borkmanntest_run 1 0
495aa5bd14SDaniel Borkmanntest_run 1 1
505aa5bd14SDaniel Borkmanntest_run 1 2
515aa5bd14SDaniel Borkmanntest_restore
525aa5bd14SDaniel Borkmannexit $rc
53