From nobody Tue Apr 7 10:39:26 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 B5B2B382F1E for ; Fri, 13 Mar 2026 20:59:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773435549; cv=none; b=MEhtFkyC7y+wD/UP5QCfJufUJrf6B3+tcyO+K31lVuukxlZnCsEr8nIN2u/U+stJYn581W7rQNHGLF+JWi5pNo3W5ZdnG7on3UQPnjgSb1FFlaszaAzBa9WlGjFUvw/+3BNfTJxhaiZfKHEZsuO+tN2JYDE8H+lwsNflXA3Nb4Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773435549; c=relaxed/simple; bh=5yfrb4REjla72hyuadKvBD65CovUyvEY7fUSzyt+1JE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WZbxHg5W83zros/ulGtWs0fl+CctUtxzQRuosUJXOgdp30a/BFNifk5Qn2hqbrvXkPh/UOH4aKLKkTT1SYKQV8UFXLp8JF74MMwdkE1iLANAVIfjfoNCzqRvUkYjUBnfjwLPrxuCM+y3VbnEfOA7jYydfSNyHVw6s2Jhl4XMek8= 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=Tdb07EKE; arc=none smtp.client-ip=209.85.128.46 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="Tdb07EKE" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-48334ee0aeaso24421825e9.1 for ; Fri, 13 Mar 2026 13:59:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1773435543; x=1774040343; 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=JUlmk5Uej4Q4zAW57SpQCMgrWe47+shWlWuNt0RZn1k=; b=Tdb07EKEWDRIoh1bQToLzd4cD8nKezLZqPgVgGVxU1NuWDRNK57GQuUNtija/U1p28 ePlcdg5WNMV7cl3/HIjHMIrY+ye8NkaskvMGLNezYTfAtRdpS9yuTZ9R1uXgrChyN4E/ yR5FZkzL3qs2RXUmY+lu9PX+FM4VG7A6fVw+GcXfxYtex46TCv5ZOQlGmi2PFKhOzhUB 4+/hWNqoG/HZGvUj8dy2k5nPlF0y5hRrHTRR5N83bpya3KKFDFZMr9nxBs9z3IpxmiE/ d8L25cnL/iA23W5t7M8yy3uBe+KFPfQATMIfEL2pKZCNaXt0grrGZWJdo7pRQBhYHB0T dk9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773435543; x=1774040343; 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=JUlmk5Uej4Q4zAW57SpQCMgrWe47+shWlWuNt0RZn1k=; b=KaZ1J7UfVQwVKaH+12cWxTkyP9OTnQyogZbiuJLnTqwF+KuCqe87XwLf9tpXpL0USW 3z9fSx6d0k9uvJtNz5S+WI2f8SWGSBkr2rmN6qhIC2fDVQaqtUwDwSEO/Vb6U4I94mv6 FBsqtgc+npwfiUW+prMuuHCoGzUIlZifQxoVVDfnQyObG7IlzP8zSwJBAwTYZ3kmmqAJ 1pUcXkLKNAP0byAOaxn0RCkJoZVt5RslQpsU3EtD7XqKNJdi2W1sVZ+FtYyspTJH7HBS 55f7iJ5YMXY5CgifdA6zsf5pRMXo9/C5uxD9KknVygf+O0sNVNfSkmnAEdX0XlCMPN6M SXZg== X-Forwarded-Encrypted: i=1; AJvYcCWqsA8GtdtP2DasKM2PV9VT/anzRlRMBZPCWJtwz7hnqGr+6TDgmES+1mWwzCa3mIv1/EY7TY+Ga6RK47k=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2Nqu/T+x+2hJYOqqGa570Zhn3cQ4VEJ2yHoEcXYueG+1lBZeC ON9G4/cxX8K7sKwyb37qnrYLL+aoyeaRIjSHi0u6OwIe5zEFYDvwubbnPLAUwDQdZF5Ap96Z2sJ z96geGvw= X-Gm-Gg: ATEYQzxkG274VsLR8y+/o1lukzzqT0TBirUATQ2NvP/eARQ8bs01BFlz3Sej8QKN/l2 SckGevxPJLxo5/8cEKlAn92UE6yKvoNEgFl6cFCHssUycptUObln0BHUYORTpV9uo1LF4CMpHx/ eg8fZQwgT7/G8kZKICOOKsXOl2M0lGcHI8e6ZmXth2/ys+EUqpc/BfPoMz3sR6lBr4Xn5YNzV+o jSIE91+undW6z0GeVNwVJrevyF/ZIyLt3hUoj8rZUt7Ety+OfghB1CkLfJ8kqWtcR5aiUJ7Yafh rwX/SlvLcjZCqXfoPSLLbZ4sG3pKDyR3kWmkT3xtw01h63t/UO8oJM3f3GvALKg521im5wWcZUT By9V3X9AW/KwUEOxBJ3C/1ni7uAqRr20LHE/PrkzmAa/wtsU2TiE/gT4uiP+hpmH5SP6TEoh7Na 28fKgkUrVdhtennaMl1zkq X-Received: by 2002:a05:600c:3b90:b0:485:345b:ccb1 with SMTP id 5b1f17b1804b1-48556720f86mr72676115e9.27.1773435542687; Fri, 13 Mar 2026 13:59:02 -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.58.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Mar 2026 13:59:01 -0700 (PDT) From: Marcos Paulo de Souza Date: Fri, 13 Mar 2026 17:58:36 -0300 Subject: [PATCH 5/8] selftests: livepatch: sysfs: Split tests of replace 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-5-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=6599; i=mpdesouza@suse.com; s=20231031; h=from:subject:message-id; bh=5yfrb4REjla72hyuadKvBD65CovUyvEY7fUSzyt+1JE=; b=IqJehXZ8pHnYEfwizMu/gVOB6kUw2ak2avpUcTUa8h9svETYAo3obiieKHnthJ1fojDANuMtN UEnxmJijSNAATMeixB7B1zX3mHBE87dfSXPfQcl7GdNhlH2MQbBDTHS 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-replace-attr.sh | 75 ++++++++++++++++++= ++++ tools/testing/selftests/livepatch/test-sysfs.sh | 48 -------------- 3 files changed, 76 insertions(+), 48 deletions(-) diff --git a/tools/testing/selftests/livepatch/Makefile b/tools/testing/sel= ftests/livepatch/Makefile index a080eb54a215d..b95aa6e78a273 100644 --- a/tools/testing/selftests/livepatch/Makefile +++ b/tools/testing/selftests/livepatch/Makefile @@ -10,6 +10,7 @@ TEST_PROGS :=3D \ test-state.sh \ test-ftrace.sh \ test-sysfs.sh \ + test-sysfs-replace-attr.sh \ test-syscall.sh \ test-kprobe.sh =20 diff --git a/tools/testing/selftests/livepatch/test-sysfs-replace-attr.sh b= /tools/testing/selftests/livepatch/test-sysfs-replace-attr.sh new file mode 100755 index 0000000000000..d1051211fe320 --- /dev/null +++ b/tools/testing/selftests/livepatch/test-sysfs-replace-attr.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2022 Song Liu + +. $(dirname $0)/functions.sh + +MOD_LIVEPATCH=3Dtest_klp_livepatch + +setup_config + +# - load a livepatch and verifies the sysfs replace attribute exists + +start_test "check sysfs replace attribute" + +load_lp $MOD_LIVEPATCH + +check_sysfs_exists "$MOD_LIVEPATCH" "replace" +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 "sysfs test replace enabled" + +MOD_LIVEPATCH=3Dtest_klp_atomic_replace +load_lp $MOD_LIVEPATCH replace=3D1 + +check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--" +check_sysfs_value "$MOD_LIVEPATCH" "replace" "1" + +disable_lp $MOD_LIVEPATCH +unload_lp $MOD_LIVEPATCH + +check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=3D1 +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 replace disabled" + +load_lp $MOD_LIVEPATCH replace=3D0 + +check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--" +check_sysfs_value "$MOD_LIVEPATCH" "replace" "0" + +disable_lp $MOD_LIVEPATCH +unload_lp $MOD_LIVEPATCH + +check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=3D0 +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" + +exit 0 diff --git a/tools/testing/selftests/livepatch/test-sysfs.sh b/tools/testin= g/selftests/livepatch/test-sysfs.sh index 58fe1d96997cd..0865a7959496a 100755 --- a/tools/testing/selftests/livepatch/test-sysfs.sh +++ b/tools/testing/selftests/livepatch/test-sysfs.sh @@ -20,7 +20,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" "replace" "-r--r--r--" 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--" @@ -88,53 +87,6 @@ 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 replace enabled" - -MOD_LIVEPATCH=3Dtest_klp_atomic_replace -load_lp $MOD_LIVEPATCH replace=3D1 - -check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--" -check_sysfs_value "$MOD_LIVEPATCH" "replace" "1" - -disable_lp $MOD_LIVEPATCH -unload_lp $MOD_LIVEPATCH - -check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=3D1 -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 replace disabled" - -load_lp $MOD_LIVEPATCH replace=3D0 - -check_sysfs_rights "$MOD_LIVEPATCH" "replace" "-r--r--r--" -check_sysfs_value "$MOD_LIVEPATCH" "replace" "0" - -disable_lp $MOD_LIVEPATCH -unload_lp $MOD_LIVEPATCH - -check_result "% insmod test_modules/$MOD_LIVEPATCH.ko replace=3D0 -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" =20 load_lp $MOD_LIVEPATCH --=20 2.52.0