|  | #!/bin/sh | 
|  | # SPDX-License-Identifier: GPL-2.0 | 
|  |  | 
|  | # Kselftest framework requirement - SKIP code is 4. | 
|  | ksft_skip=4 | 
|  |  | 
|  | msg="skip all tests:" | 
|  | if [ "$(id -u)" != "0" ]; then | 
|  | echo $msg please run this as root >&2 | 
|  | exit $ksft_skip | 
|  | fi | 
|  |  | 
|  | SRC_TREE=../../../../ | 
|  |  | 
|  | test_run() | 
|  | { | 
|  | sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null | 
|  | sysctl -w net.core.bpf_jit_harden=$2 2>&1 > /dev/null | 
|  |  | 
|  | echo "[ JIT enabled:$1 hardened:$2 ]" | 
|  | dmesg -C | 
|  | if [ -f ${SRC_TREE}/lib/test_bpf.ko ]; then | 
|  | insmod ${SRC_TREE}/lib/test_bpf.ko 2> /dev/null | 
|  | if [ $? -ne 0 ]; then | 
|  | rc=1 | 
|  | fi | 
|  | else | 
|  | # Use modprobe dry run to check for missing test_bpf module | 
|  | if ! /sbin/modprobe -q -n test_bpf; then | 
|  | echo "test_bpf: [SKIP]" | 
|  | elif /sbin/modprobe -q test_bpf; then | 
|  | echo "test_bpf: ok" | 
|  | else | 
|  | echo "test_bpf: [FAIL]" | 
|  | rc=1 | 
|  | fi | 
|  | fi | 
|  | rmmod  test_bpf 2> /dev/null | 
|  | dmesg | grep FAIL | 
|  | } | 
|  |  | 
|  | test_save() | 
|  | { | 
|  | JE=`sysctl -n net.core.bpf_jit_enable` | 
|  | JH=`sysctl -n net.core.bpf_jit_harden` | 
|  | } | 
|  |  | 
|  | test_restore() | 
|  | { | 
|  | sysctl -w net.core.bpf_jit_enable=$JE 2>&1 > /dev/null | 
|  | sysctl -w net.core.bpf_jit_harden=$JH 2>&1 > /dev/null | 
|  | } | 
|  |  | 
|  | rc=0 | 
|  | test_save | 
|  | test_run 0 0 | 
|  | test_run 1 0 | 
|  | test_run 1 1 | 
|  | test_run 1 2 | 
|  | test_restore | 
|  | exit $rc |