1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3 4# Kselftest framework requirement - SKIP code is 4. 5ksft_skip=4 6 7msg="skip all tests:" 8if [ "$(id -u)" != "0" ]; then 9 echo $msg please run this as root >&2 10 exit $ksft_skip 11fi 12 13SRC_TREE=../../../../ 14 15test_run() 16{ 17 sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null 18 sysctl -w net.core.bpf_jit_harden=$2 2>&1 > /dev/null 19 20 echo "[ JIT enabled:$1 hardened:$2 ]" 21 dmesg -C 22 if [ -f ${SRC_TREE}/lib/test_bpf.ko ]; then 23 insmod ${SRC_TREE}/lib/test_bpf.ko 2> /dev/null 24 if [ $? -ne 0 ]; then 25 rc=1 26 fi 27 else 28 # Use modprobe dry run to check for missing test_bpf module 29 if ! /sbin/modprobe -q -n test_bpf; then 30 echo "test_bpf: [SKIP]" 31 elif /sbin/modprobe -q test_bpf; then 32 echo "test_bpf: ok" 33 else 34 echo "test_bpf: [FAIL]" 35 rc=1 36 fi 37 fi 38 rmmod test_bpf 2> /dev/null 39 dmesg | grep FAIL 40} 41 42test_save() 43{ 44 JE=`sysctl -n net.core.bpf_jit_enable` 45 JH=`sysctl -n net.core.bpf_jit_harden` 46} 47 48test_restore() 49{ 50 sysctl -w net.core.bpf_jit_enable=$JE 2>&1 > /dev/null 51 sysctl -w net.core.bpf_jit_harden=$JH 2>&1 > /dev/null 52} 53 54rc=0 55test_save 56test_run 0 0 57test_run 1 0 58test_run 1 1 59test_run 1 2 60test_restore 61exit $rc 62