From nobody Tue Apr 7 10:40:45 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 56B3C382362 for ; Fri, 13 Mar 2026 20:59:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773435554; cv=none; b=mo9qQDJagBZpp2RqgzLwCbINdtZW9rNe40qHhkEYsvkgtpCmga8a90UPVTpC3FKH2Fi5NQmfUHSGd/dqSu3Llb9MJII2RxYseES3lqY1LhkYgaL2I9cknlHvLz6x2Mmj68xbLxobXp+IHh+BjXo4xGwoJMRWTr/kV9a0S7OmePs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773435554; c=relaxed/simple; bh=dAnCHBD0kYfQriAqJYl89NUP2OzkcdbdI/rMejo7qBM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EG3ZNHLCAta0+in117NhkHtbLyZIQVJ8HtQ2sFbwQSQPv7J6q9Wbzjzr2JRGufMjgJFjNfEeA4YGYk/JtxIq7XF0jezWk3xUvoPmhG/IOcqgq5ZnEPg85Ey4WZ011IwVNQo54p+/yBm2d7bQpe0U9vzk3Teo48JrkpswpQ0pH5g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=IWnbu5K5; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="IWnbu5K5" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-48374014a77so25194955e9.3 for ; Fri, 13 Mar 2026 13:59:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1773435547; x=1774040347; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=g0feFC5vZEgNUR6jUa/fsGovJx254Pm7zg4y/sKLrFg=; b=IWnbu5K5RB5JUI23fOhqonepbrdEEmwrhmKDGrDOBJuWQLxPKP6//rSazNjM24ceoE qkvJKhpNZ7zAlppSfdj7chn7H3LQ93Q9MtzZThIX5K/aanQF+p77YhliOYJ+TqGGC4ai eagyYOOEOsHuhKvDlmZh34L+FHOJowxL0HVHoDAWXj/tZ477WY1vcQaGC//8kIYxjh7N 4zvfh14lfSgTsGuc8R/xYJZDgl0PRKQiwSx7xgSAelXpRfn6hdcs4A3gO4DaxcecA9jl kNC+7d7OllFiom2G5iXbPvbg6bYnVBxJiuZdo8/N+HCC5VNPWSnwkNarkfty25leqsn3 d8nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773435547; x=1774040347; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=g0feFC5vZEgNUR6jUa/fsGovJx254Pm7zg4y/sKLrFg=; b=fT9NLozDN9JRBWZ/okaANUf+OFSI1EggDzbgUPcMEL5n3eMg/9KHmPGZ6TZm4c+Ecj iJbTQdvLQjsK1kbd+veKstk7fF0FjLowouHEUEaS3HtN5/7jTI6Dg4+iBx7IXnfzeg16 YV8Bko/2n45uX0h91IiI/h7DUZxJx1282rAggdjP1nekgYi10mQr7J1JvQh1wi05j/E/ cMifkIYsg3zNh4uqzaWHn9HOviOl2GgBYg2JGUWd3fzHIgusbTy9kvNMkLxLGc7l7tDN UWYpfn3WQNLA/goG2dNYL9WFiMFNp/TGVeCXV2tiCGg+Y67D/7/CYtmUD0GgHuNLPshl BMqg== X-Forwarded-Encrypted: i=1; AJvYcCWR0PYMjSDodOk8quImmsaaYmPBR2lb+9mbiuj4X4Pvj/slJe37DNbbXsMcAufSGdkUQkvaTvdlEfCJ7ts=@vger.kernel.org X-Gm-Message-State: AOJu0YxNM0dPNG6oQoWuX4Tky0xeHAINZJsn9Do1UHNS0w75WcJkPoLH qzuEG7zgm1BltS/3QdwW1mOpFQzggbPaJ0gItb7WxfpQtdCEn/rCNO958J9woaDrXjk= X-Gm-Gg: ATEYQzxkMQm3lxgc6s26cO73DEiE1UwlLR+XT4MqnI1AVkyo+RzITg0jxKt/Jo/l2HX tzG09ahJOFGH7P5lJmGQQGl/hbFuQZ5tIHcfYp+EOZhbxzNf/vGkekDGlM0WCYxvWo2e5yU86wc ZjlNcwJeueimScqjJl5cE91yh8/cTJsYazuNqn2YZXs+M/DJlSmDZN/cXINxj3F/lWWb5+rVE+Q QroiJh9DkZMyMnry5Xe4Yv/WqGZ8oxZHAWy82eNnK3twG3lWGCIOmU/bD7v1DQLd1voFzMov6TB j24SJeg6FcDDuePrapDVpa46ATEz32CKNp6En2tPzWsgfe+2/HL7vq6rvXrLoJqsA49T+wNmZWJ s1oFgnDFdgCA1n+PBm+N2/V3ducRNdspxYZtyhUj5KrPtmgzjF89NczmBcvX/9HUw/z944JMDqy Z0fP+u7RujSc0Jza3T7IRj X-Received: by 2002:a05:600c:8286:b0:485:34b3:8585 with SMTP id 5b1f17b1804b1-485566d6dffmr72119545e9.8.1773435547219; Fri, 13 Mar 2026 13:59:07 -0700 (PDT) Received: from [127.0.0.1] ([2804:5078:834:1300:58f2:fc97:371f:3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2beab526d3csm4042611eec.18.2026.03.13.13.59.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2026 13:59:06 -0700 (PDT) From: Marcos Paulo de Souza Date: Fri, 13 Mar 2026 17:58:37 -0300 Subject: [PATCH 6/8] selftests: livepatch: sysfs: Split tests of stack_order attribute Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260313-lp-tests-old-fixes-v1-6-71ac6dfb3253@suse.com> References: <20260313-lp-tests-old-fixes-v1-0-71ac6dfb3253@suse.com> In-Reply-To: <20260313-lp-tests-old-fixes-v1-0-71ac6dfb3253@suse.com> To: Josh Poimboeuf , Jiri Kosina , Miroslav Benes , Petr Mladek , Joe Lawrence , Shuah Khan Cc: live-patching@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Marcos Paulo de Souza X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1773435515; l=9545; i=mpdesouza@suse.com; s=20231031; h=from:subject:message-id; bh=dAnCHBD0kYfQriAqJYl89NUP2OzkcdbdI/rMejo7qBM=; b=Y2RmJfSytx/PBjCk0gfL7cla8FAo0I3qGVTE6GweDQkji0rgmqZI4CkeR9tTXN5bQdiDwtSx5 HvSmNp/yxRkBBruCGlnxky4fqPa/Uk/q0q0W7KinJthXgb0Tj4eBLB9 X-Developer-Key: i=mpdesouza@suse.com; a=ed25519; pk=/Ni/TsKkr69EOmdZXkp1Q/BlzDonbOBRsfPa18ySIwU= In order to run the selftests on older kernels, split the sysfs tests to another file, making it able to skip the tests when the attributes don't exists. No functional changes. Signed-off-by: Marcos Paulo de Souza --- tools/testing/selftests/livepatch/Makefile | 1 + .../selftests/livepatch/test-sysfs-stack-attr.sh | 121 +++++++++++++++++= ++++ tools/testing/selftests/livepatch/test-sysfs.sh | 71 ------------ 3 files changed, 122 insertions(+), 71 deletions(-) diff --git a/tools/testing/selftests/livepatch/Makefile b/tools/testing/sel= ftests/livepatch/Makefile index b95aa6e78a273..1982056670fc2 100644 --- a/tools/testing/selftests/livepatch/Makefile +++ b/tools/testing/selftests/livepatch/Makefile @@ -11,6 +11,7 @@ TEST_PROGS :=3D \ test-ftrace.sh \ test-sysfs.sh \ test-sysfs-replace-attr.sh \ + test-sysfs-stack-attr.sh \ test-syscall.sh \ test-kprobe.sh =20 diff --git a/tools/testing/selftests/livepatch/test-sysfs-stack-attr.sh b/t= ools/testing/selftests/livepatch/test-sysfs-stack-attr.sh new file mode 100755 index 0000000000000..2b8b72fe1f6dc --- /dev/null +++ b/tools/testing/selftests/livepatch/test-sysfs-stack-attr.sh @@ -0,0 +1,121 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2022 Song Liu + +. $(dirname $0)/functions.sh + +MOD_LIVEPATCH=3Dtest_klp_livepatch +MOD_LIVEPATCH2=3Dtest_klp_callbacks_demo +MOD_LIVEPATCH3=3Dtest_klp_syscall + +setup_config + +# - load a livepatch and verifies the sysfs stack_order attribute exists + +start_test "check sysfs stack_order attribute" + +load_lp $MOD_LIVEPATCH + +check_sysfs_exists "$MOD_LIVEPATCH" "stack_order" +file_exists=3D$? + +disable_lp $MOD_LIVEPATCH + +unload_lp $MOD_LIVEPATCH + +if [[ "$file_exists" =3D=3D "0" ]]; then + skip "sysfs attribute doesn't exists." +fi + +start_test "check sysfs stack_order permissions" + +load_lp $MOD_LIVEPATCH + +check_sysfs_rights "$MOD_LIVEPATCH" "stack_order" "-r--r--r--" +check_sysfs_value "$MOD_LIVEPATCH" "stack_order" "1" + +disable_lp $MOD_LIVEPATCH + +unload_lp $MOD_LIVEPATCH + +check_result "% insmod test_modules/$MOD_LIVEPATCH.ko +livepatch: enabling patch '$MOD_LIVEPATCH' +livepatch: '$MOD_LIVEPATCH': initializing patching transition +livepatch: '$MOD_LIVEPATCH': starting patching transition +livepatch: '$MOD_LIVEPATCH': completing patching transition +livepatch: '$MOD_LIVEPATCH': patching complete +% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled +livepatch: '$MOD_LIVEPATCH': initializing unpatching transition +livepatch: '$MOD_LIVEPATCH': starting unpatching transition +livepatch: '$MOD_LIVEPATCH': completing unpatching transition +livepatch: '$MOD_LIVEPATCH': unpatching complete +% rmmod $MOD_LIVEPATCH" + +start_test "sysfs test stack_order value" + +load_lp $MOD_LIVEPATCH + +check_sysfs_value "$MOD_LIVEPATCH" "stack_order" "1" + +load_lp $MOD_LIVEPATCH2 + +check_sysfs_value "$MOD_LIVEPATCH2" "stack_order" "2" + +load_lp $MOD_LIVEPATCH3 + +check_sysfs_value "$MOD_LIVEPATCH3" "stack_order" "3" + +disable_lp $MOD_LIVEPATCH2 +unload_lp $MOD_LIVEPATCH2 + +check_sysfs_value "$MOD_LIVEPATCH" "stack_order" "1" +check_sysfs_value "$MOD_LIVEPATCH3" "stack_order" "2" + +disable_lp $MOD_LIVEPATCH3 +unload_lp $MOD_LIVEPATCH3 + +disable_lp $MOD_LIVEPATCH +unload_lp $MOD_LIVEPATCH + +check_result "% insmod test_modules/$MOD_LIVEPATCH.ko +livepatch: enabling patch '$MOD_LIVEPATCH' +livepatch: '$MOD_LIVEPATCH': initializing patching transition +livepatch: '$MOD_LIVEPATCH': starting patching transition +livepatch: '$MOD_LIVEPATCH': completing patching transition +livepatch: '$MOD_LIVEPATCH': patching complete +% insmod test_modules/$MOD_LIVEPATCH2.ko +livepatch: enabling patch '$MOD_LIVEPATCH2' +livepatch: '$MOD_LIVEPATCH2': initializing patching transition +$MOD_LIVEPATCH2: pre_patch_callback: vmlinux +livepatch: '$MOD_LIVEPATCH2': starting patching transition +livepatch: '$MOD_LIVEPATCH2': completing patching transition +$MOD_LIVEPATCH2: post_patch_callback: vmlinux +livepatch: '$MOD_LIVEPATCH2': patching complete +% insmod test_modules/$MOD_LIVEPATCH3.ko +livepatch: enabling patch '$MOD_LIVEPATCH3' +livepatch: '$MOD_LIVEPATCH3': initializing patching transition +livepatch: '$MOD_LIVEPATCH3': starting patching transition +livepatch: '$MOD_LIVEPATCH3': completing patching transition +livepatch: '$MOD_LIVEPATCH3': patching complete +% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled +livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition +$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux +livepatch: '$MOD_LIVEPATCH2': starting unpatching transition +livepatch: '$MOD_LIVEPATCH2': completing unpatching transition +$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux +livepatch: '$MOD_LIVEPATCH2': unpatching complete +% rmmod $MOD_LIVEPATCH2 +% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH3/enabled +livepatch: '$MOD_LIVEPATCH3': initializing unpatching transition +livepatch: '$MOD_LIVEPATCH3': starting unpatching transition +livepatch: '$MOD_LIVEPATCH3': completing unpatching transition +livepatch: '$MOD_LIVEPATCH3': unpatching complete +% rmmod $MOD_LIVEPATCH3 +% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled +livepatch: '$MOD_LIVEPATCH': initializing unpatching transition +livepatch: '$MOD_LIVEPATCH': starting unpatching transition +livepatch: '$MOD_LIVEPATCH': completing unpatching transition +livepatch: '$MOD_LIVEPATCH': unpatching complete +% rmmod $MOD_LIVEPATCH" + +exit 0 diff --git a/tools/testing/selftests/livepatch/test-sysfs.sh b/tools/testin= g/selftests/livepatch/test-sysfs.sh index 0865a7959496a..3327bde59e73d 100755 --- a/tools/testing/selftests/livepatch/test-sysfs.sh +++ b/tools/testing/selftests/livepatch/test-sysfs.sh @@ -5,8 +5,6 @@ . $(dirname $0)/functions.sh =20 MOD_LIVEPATCH=3Dtest_klp_livepatch -MOD_LIVEPATCH2=3Dtest_klp_callbacks_demo -MOD_LIVEPATCH3=3Dtest_klp_syscall =20 setup_config =20 @@ -20,8 +18,6 @@ check_sysfs_rights "$MOD_LIVEPATCH" "" "drwxr-xr-x" check_sysfs_rights "$MOD_LIVEPATCH" "enabled" "-rw-r--r--" check_sysfs_value "$MOD_LIVEPATCH" "enabled" "1" check_sysfs_rights "$MOD_LIVEPATCH" "force" "--w-------" -check_sysfs_rights "$MOD_LIVEPATCH" "stack_order" "-r--r--r--" -check_sysfs_value "$MOD_LIVEPATCH" "stack_order" "1" check_sysfs_rights "$MOD_LIVEPATCH" "transition" "-r--r--r--" check_sysfs_value "$MOD_LIVEPATCH" "transition" "0" check_sysfs_rights "$MOD_LIVEPATCH" "vmlinux/patched" "-r--r--r--" @@ -87,71 +83,4 @@ test_klp_callbacks_demo: post_unpatch_callback: vmlinux livepatch: 'test_klp_callbacks_demo': unpatching complete % rmmod test_klp_callbacks_demo" =20 -start_test "sysfs test stack_order value" - -load_lp $MOD_LIVEPATCH - -check_sysfs_value "$MOD_LIVEPATCH" "stack_order" "1" - -load_lp $MOD_LIVEPATCH2 - -check_sysfs_value "$MOD_LIVEPATCH2" "stack_order" "2" - -load_lp $MOD_LIVEPATCH3 - -check_sysfs_value "$MOD_LIVEPATCH3" "stack_order" "3" - -disable_lp $MOD_LIVEPATCH2 -unload_lp $MOD_LIVEPATCH2 - -check_sysfs_value "$MOD_LIVEPATCH" "stack_order" "1" -check_sysfs_value "$MOD_LIVEPATCH3" "stack_order" "2" - -disable_lp $MOD_LIVEPATCH3 -unload_lp $MOD_LIVEPATCH3 - -disable_lp $MOD_LIVEPATCH -unload_lp $MOD_LIVEPATCH - -check_result "% insmod test_modules/$MOD_LIVEPATCH.ko -livepatch: enabling patch '$MOD_LIVEPATCH' -livepatch: '$MOD_LIVEPATCH': initializing patching transition -livepatch: '$MOD_LIVEPATCH': starting patching transition -livepatch: '$MOD_LIVEPATCH': completing patching transition -livepatch: '$MOD_LIVEPATCH': patching complete -% insmod test_modules/$MOD_LIVEPATCH2.ko -livepatch: enabling patch '$MOD_LIVEPATCH2' -livepatch: '$MOD_LIVEPATCH2': initializing patching transition -$MOD_LIVEPATCH2: pre_patch_callback: vmlinux -livepatch: '$MOD_LIVEPATCH2': starting patching transition -livepatch: '$MOD_LIVEPATCH2': completing patching transition -$MOD_LIVEPATCH2: post_patch_callback: vmlinux -livepatch: '$MOD_LIVEPATCH2': patching complete -% insmod test_modules/$MOD_LIVEPATCH3.ko -livepatch: enabling patch '$MOD_LIVEPATCH3' -livepatch: '$MOD_LIVEPATCH3': initializing patching transition -livepatch: '$MOD_LIVEPATCH3': starting patching transition -livepatch: '$MOD_LIVEPATCH3': completing patching transition -livepatch: '$MOD_LIVEPATCH3': patching complete -% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH2/enabled -livepatch: '$MOD_LIVEPATCH2': initializing unpatching transition -$MOD_LIVEPATCH2: pre_unpatch_callback: vmlinux -livepatch: '$MOD_LIVEPATCH2': starting unpatching transition -livepatch: '$MOD_LIVEPATCH2': completing unpatching transition -$MOD_LIVEPATCH2: post_unpatch_callback: vmlinux -livepatch: '$MOD_LIVEPATCH2': unpatching complete -% rmmod $MOD_LIVEPATCH2 -% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH3/enabled -livepatch: '$MOD_LIVEPATCH3': initializing unpatching transition -livepatch: '$MOD_LIVEPATCH3': starting unpatching transition -livepatch: '$MOD_LIVEPATCH3': completing unpatching transition -livepatch: '$MOD_LIVEPATCH3': unpatching complete -% rmmod $MOD_LIVEPATCH3 -% echo 0 > $SYSFS_KLP_DIR/$MOD_LIVEPATCH/enabled -livepatch: '$MOD_LIVEPATCH': initializing unpatching transition -livepatch: '$MOD_LIVEPATCH': starting unpatching transition -livepatch: '$MOD_LIVEPATCH': completing unpatching transition -livepatch: '$MOD_LIVEPATCH': unpatching complete -% rmmod $MOD_LIVEPATCH" - exit 0 --=20 2.52.0