Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2196282/?format=api
{ "id": 2196282, "url": "http://patchwork.ozlabs.org/api/patches/2196282/?format=api", "web_url": "http://patchwork.ozlabs.org/project/kvm-riscv/patch/20260213103557.3207335-3-xujiakai2025@iscas.ac.cn/", "project": { "id": 70, "url": "http://patchwork.ozlabs.org/api/projects/70/?format=api", "name": "Linux KVM RISC-V", "link_name": "kvm-riscv", "list_id": "kvm-riscv.lists.infradead.org", "list_email": "kvm-riscv@lists.infradead.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "http://lists.infradead.org/pipermail/kvm-riscv/", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260213103557.3207335-3-xujiakai2025@iscas.ac.cn>", "list_archive_url": null, "date": "2026-02-13T10:35:56", "name": "[v7,2/3] KVM: selftests: Refactor UAPI tests into dedicated function", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "ef48739a410a876077b58b1b8c87fe83b46575e1", "submitter": { "id": 92543, "url": "http://patchwork.ozlabs.org/api/people/92543/?format=api", "name": "Jiakai Xu", "email": "xujiakai2025@iscas.ac.cn" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/kvm-riscv/patch/20260213103557.3207335-3-xujiakai2025@iscas.ac.cn/mbox/", "series": [ { "id": 492078, "url": "http://patchwork.ozlabs.org/api/series/492078/?format=api", "web_url": "http://patchwork.ozlabs.org/project/kvm-riscv/list/?series=492078", "date": "2026-02-13T10:35:56", "name": "RISC-V: KVM: Validate SBI STA shmem alignment", "version": 7, "mbox": "http://patchwork.ozlabs.org/series/492078/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2196282/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2196282/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=m3dzltsZ;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fC7rs3Y3Pz1xpl\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 21:36:58 +1100 (AEDT)", "from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1vqqXg-00000003KKw-0xKw;\n\tFri, 13 Feb 2026 10:36:56 +0000", "from smtp25.cstnet.cn ([159.226.251.25] helo=cstnet.cn)\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1vqqXY-00000003KDh-32Wb;\n\tFri, 13 Feb 2026 10:36:52 +0000", "from fric.. (unknown [210.73.43.101])\n\tby APP-05 (Coremail) with SMTP id zQCowAC3RgqO_o5pQN4uCA--.25463S4;\n\tFri, 13 Feb 2026 18:36:01 +0800 (CST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:\n\tMessage-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=Sa0C72Vk2D1l55BPLwsFsxFKsL6YwKZNBj3ABZQUeF8=; b=m3dzltsZnb5NCj\n\tT2xiS8DAKAZsIEkxibNxxbQU/vD4qP8Zuebgwl0tUSAa7a2hS4c6MwVutd2QDX/HCtAAHrNgkgVAS\n\tEDAFobKLlHV85CQiy/l5SJVtiBqeqXe0JX0aHaMZivRKOMVcAxwvb4blgV1i8+IDSQ/zgoShkmPH3\n\tD+1rA0O0kDrhzXlSLXo8FAYzWnEEV67XScnOVzFl2byjeq5QVENaTedM5dyfsfVmrfN5WcXRINfW7\n\tOQdrvkhvfiwHLeyvYppT74m8cSlZlH92NisKMIny9d+BAv1B6w0ewL0tsycQJtq96rViTr1naPLoN\n\t1eltvU1FHQNR3iykb/HQ==;", "From": "Jiakai Xu <xujiakai2025@iscas.ac.cn>", "To": "linux-kernel@vger.kernel.org,\n\tkvm@vger.kernel.org,\n\tkvm-riscv@lists.infradead.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-kselftest@vger.kernel.org", "Cc": "Anup Patel <anup@brainfault.org>,\n\tAtish Patra <atish.patra@linux.dev>,\n\tPaul Walmsley <pjw@kernel.org>,\n\tPalmer Dabbelt <palmer@dabbelt.com>,\n\tAlbert Ou <aou@eecs.berkeley.edu>,\n\tAlexandre Ghiti <alex@ghiti.fr>,\n\tAndrew Jones <ajones@ventanamicro.com>,\n\tPaolo Bonzini <pbonzini@redhat.com>,\n\tShuah Khan <shuah@kernel.org>,\n\tJiakai Xu <xujiakai2025@iscas.ac.cn>,\n\tJiakai Xu <jiakaiPeanut@gmail.com>", "Subject": "[PATCH v7 2/3] KVM: selftests: Refactor UAPI tests into dedicated\n function", "Date": "Fri, 13 Feb 2026 10:35:56 +0000", "Message-Id": "<20260213103557.3207335-3-xujiakai2025@iscas.ac.cn>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20260213103557.3207335-1-xujiakai2025@iscas.ac.cn>", "References": "<20260213103557.3207335-1-xujiakai2025@iscas.ac.cn>", "MIME-Version": "1.0", "X-CM-TRANSID": "zQCowAC3RgqO_o5pQN4uCA--.25463S4", "X-Coremail-Antispam": "1UD129KBjvJXoWxtr4kXr17Gr18Jr17urWUtwb_yoW7XFWkpF\n\t97CrZIqrW8tr4fKw1xWrWv9F15Gw4vkrn7Zry7Zw4rAr4kKrZrJF1xCryjvF98KFZ5X3Wf\n\tZa4SvF47uF4qkF7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n\t9KBjDU0xBIdaVrnRJUUUQY14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0\n\trVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jryl82xGYIkIc2\n\tx26xkF7I0E14v26ryj6s0DM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0\n\tY4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Cr0_Gr1UM2\n\t8EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2vY\n\tz4IE04k24VAvwVAKI4IrM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI64kE6c\n\t02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE\n\t4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4\n\tIIrI8v6xkF7I0E8cxan2IY04v7MxkF7I0En4kS14v26r1q6r43MxAIw28IcxkI7VAKI48J\n\tMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwV\n\tAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVW8ZVWrXwCIc40Y0x0EwIxGrwCI42IY6xIIjxv2\n\t0xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwCI42IY6xAIw20EY4\n\tv20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AK\n\txVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7VUbyCJJUUUUU==", "X-Originating-IP": "[210.73.43.101]", "X-CM-SenderInfo": "50xmxthndljiysv6x2xfdvhtffof0/1tbiBwoRCWmOijX6igAAs9", "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ", "X-CRM114-CacheID": "sfid-20260213_023649_140140_4F40180B ", "X-CRM114-Status": "GOOD ( 11.65 )", "X-Spam-Score": "-1.9 (-)", "X-Spam-Report": "Spam detection software,\n running on the system \"bombadil.infradead.org\",\n has NOT identified this incoming email as spam. The original\n message has been attached to this so you can view it or label\n similar future email. If you have any questions, see\n the administrator of that system for details.\n Content preview: Move steal time UAPI tests from steal_time_init() into a\n separate\n check_steal_time_uapi() function for better code organization and\n maintainability.\n Previously,\n x86 and ARM64 architectures performed UAPI validation tests within\n steal_time_init(), mixing initialization logic with uapi tests.\n Content analysis details: (-1.9 points, 5.0 required)\n pts rule name description\n ---- ----------------------\n --------------------------------------------------\n 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The\n query to Validity was blocked. See\n https://knowledge.validity.com/hc/en-us/articles/20961730681243\n for more information.\n [159.226.251.25 listed in\n sa-trusted.bondedsender.org]\n 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to\n Validity was blocked. See\n https://knowledge.validity.com/hc/en-us/articles/20961730681243\n for more information.\n [159.226.251.25 listed in\n bl.score.senderscore.com]\n 0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to\n Validity was blocked. See\n https://knowledge.validity.com/hc/en-us/articles/20961730681243\n for more information.\n [159.226.251.25 listed in sa-accredit.habeas.com]\n -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no\n trust\n [159.226.251.25 listed in list.dnswl.org]\n -0.0 SPF_HELO_PASS SPF: HELO matches SPF record\n -0.0 SPF_PASS SPF: sender matches SPF record\n -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%\n [score: 0.0000]", "X-BeenThere": "kvm-riscv@lists.infradead.org", "X-Mailman-Version": "2.1.34", "Precedence": "list", "List-Id": "<kvm-riscv.lists.infradead.org>", "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/kvm-riscv>,\n <mailto:kvm-riscv-request@lists.infradead.org?subject=unsubscribe>", "List-Archive": "<http://lists.infradead.org/pipermail/kvm-riscv/>", "List-Post": "<mailto:kvm-riscv@lists.infradead.org>", "List-Help": "<mailto:kvm-riscv-request@lists.infradead.org?subject=help>", "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/kvm-riscv>,\n <mailto:kvm-riscv-request@lists.infradead.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Sender": "\"kvm-riscv\" <kvm-riscv-bounces@lists.infradead.org>", "Errors-To": "kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org" }, "content": "Move steal time UAPI tests from steal_time_init() into a separate\ncheck_steal_time_uapi() function for better code organization and\nmaintainability.\n\nPreviously, x86 and ARM64 architectures performed UAPI validation\ntests within steal_time_init(), mixing initialization logic with\nuapi tests.\n\nChanges by architecture:\nx86_64:\n - Extract MSR reserved bits test from steal_time_init()\n - Move to check_steal_time_uapi() which tests that setting\n MSR_KVM_STEAL_TIME with KVM_STEAL_RESERVED_MASK fails\nARM64:\n - Extract three UAPI tests from steal_time_init():\n \tDevice attribute support check\n \tMisaligned IPA rejection (EINVAL)\n \tDuplicate IPA setting rejection (EEXIST)\n - Move all tests to check_steal_time_uapi()\nRISC-V:\n - Add empty check_steal_time_uapi() stub for future use\n - No changes to steal_time_init() (had no tests to extract)\n\nThe new check_steal_time_uapi() function:\n - Is called once before the per-VCPU test loop\n\nNo functional change intended.\n\nSigned-off-by: Jiakai Xu <xujiakai2025@iscas.ac.cn>\nSigned-off-by: Jiakai Xu <jiakaiPeanut@gmail.com>\n---\n tools/testing/selftests/kvm/steal_time.c | 63 ++++++++++++++++++------\n 1 file changed, 47 insertions(+), 16 deletions(-)", "diff": "diff --git a/tools/testing/selftests/kvm/steal_time.c b/tools/testing/selftests/kvm/steal_time.c\nindex 8edc1fca345ba..a814f6f3f8b41 100644\n--- a/tools/testing/selftests/kvm/steal_time.c\n+++ b/tools/testing/selftests/kvm/steal_time.c\n@@ -69,16 +69,10 @@ static bool is_steal_time_supported(struct kvm_vcpu *vcpu)\n \n static void steal_time_init(struct kvm_vcpu *vcpu, uint32_t i)\n {\n-\tint ret;\n-\n \t/* ST_GPA_BASE is identity mapped */\n \tst_gva[i] = (void *)(ST_GPA_BASE + i * STEAL_TIME_SIZE);\n \tsync_global_to_guest(vcpu->vm, st_gva[i]);\n \n-\tret = _vcpu_set_msr(vcpu, MSR_KVM_STEAL_TIME,\n-\t\t\t (ulong)st_gva[i] | KVM_STEAL_RESERVED_MASK);\n-\tTEST_ASSERT(ret == 0, \"Bad GPA didn't fail\");\n-\n \tvcpu_set_msr(vcpu, MSR_KVM_STEAL_TIME, (ulong)st_gva[i] | KVM_MSR_ENABLED);\n }\n \n@@ -99,6 +93,18 @@ static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)\n \t\t\tst->pad[8], st->pad[9], st->pad[10]);\n }\n \n+static void check_steal_time_uapi(struct kvm_vcpu *vcpu)\n+{\n+\tint ret;\n+\n+\tst_gva[0] = (void *)(ST_GPA_BASE);\n+\tsync_global_to_guest(vcpu->vm, st_gva[0]);\n+\n+\tret = _vcpu_set_msr(vcpu, MSR_KVM_STEAL_TIME,\n+\t\t\t (ulong)st_gva[0] | KVM_STEAL_RESERVED_MASK);\n+\tTEST_ASSERT(ret == 0, \"Bad GPA didn't fail\");\n+}\n+\n #elif defined(__aarch64__)\n \n /* PV_TIME_ST must have 64-byte alignment */\n@@ -170,7 +176,6 @@ static void steal_time_init(struct kvm_vcpu *vcpu, uint32_t i)\n {\n \tstruct kvm_vm *vm = vcpu->vm;\n \tuint64_t st_ipa;\n-\tint ret;\n \n \tstruct kvm_device_attr dev = {\n \t\t.group = KVM_ARM_VCPU_PVTIME_CTRL,\n@@ -178,21 +183,12 @@ static void steal_time_init(struct kvm_vcpu *vcpu, uint32_t i)\n \t\t.addr = (uint64_t)&st_ipa,\n \t};\n \n-\tvcpu_ioctl(vcpu, KVM_HAS_DEVICE_ATTR, &dev);\n-\n \t/* ST_GPA_BASE is identity mapped */\n \tst_gva[i] = (void *)(ST_GPA_BASE + i * STEAL_TIME_SIZE);\n \tsync_global_to_guest(vm, st_gva[i]);\n \n-\tst_ipa = (ulong)st_gva[i] | 1;\n-\tret = __vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);\n-\tTEST_ASSERT(ret == -1 && errno == EINVAL, \"Bad IPA didn't report EINVAL\");\n-\n \tst_ipa = (ulong)st_gva[i];\n \tvcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);\n-\n-\tret = __vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);\n-\tTEST_ASSERT(ret == -1 && errno == EEXIST, \"Set IPA twice without EEXIST\");\n }\n \n static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)\n@@ -205,6 +201,34 @@ static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)\n \tksft_print_msg(\" st_time: %ld\\n\", st->st_time);\n }\n \n+static void check_steal_time_uapi(struct kvm_vcpu *vcpu)\n+{\n+\tstruct kvm_vm *vm = vcpu->vm;\n+\tuint64_t st_ipa;\n+\tint ret;\n+\n+\tstruct kvm_device_attr dev = {\n+\t\t.group = KVM_ARM_VCPU_PVTIME_CTRL,\n+\t\t.attr = KVM_ARM_VCPU_PVTIME_IPA,\n+\t\t.addr = (uint64_t)&st_ipa,\n+\t};\n+\n+\tvcpu_ioctl(vcpu, KVM_HAS_DEVICE_ATTR, &dev);\n+\n+\tst_gva[0] = (void *)(ST_GPA_BASE);\n+\tsync_global_to_guest(vm, st_gva[0]);\n+\n+\tst_ipa = (ulong)st_gva[0] | 1;\n+\tret = __vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);\n+\tTEST_ASSERT(ret == -1 && errno == EINVAL, \"Bad IPA didn't report EINVAL\");\n+\n+\tst_ipa = (ulong)st_gva[0];\n+\tvcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);\n+\n+\tret = __vcpu_ioctl(vcpu, KVM_SET_DEVICE_ATTR, &dev);\n+\tTEST_ASSERT(ret == -1 && errno == EEXIST, \"Set IPA twice without EEXIST\");\n+}\n+\n #elif defined(__riscv)\n \n /* SBI STA shmem must have 64-byte alignment */\n@@ -301,6 +325,11 @@ static void steal_time_dump(struct kvm_vm *vm, uint32_t vcpu_idx)\n \tpr_info(\"\\n\");\n }\n \n+static void check_steal_time_uapi(struct kvm_vcpu *vcpu)\n+{\n+\t/* RISC-V UAPI tests will be added in a subsequent patch */\n+}\n+\n #endif\n \n static void *do_steal_time(void *arg)\n@@ -369,6 +398,8 @@ int main(int ac, char **av)\n \tTEST_REQUIRE(is_steal_time_supported(vcpus[0]));\n \tksft_set_plan(NR_VCPUS);\n \n+\tcheck_steal_time_uapi(vcpus[0]);\n+\n \t/* Run test on each VCPU */\n \tfor (i = 0; i < NR_VCPUS; ++i) {\n \t\tsteal_time_init(vcpus[i], i);\n", "prefixes": [ "v7", "2/3" ] }