From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B29E8C53200 for ; Wed, 29 Jul 2026 23:25:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=GEbudrlmhvW/EpcfnIVP/twC37SOmhApeYIi9gBiiCY=; b=Z+dLiiE7CBeYOo HD5XZDK1kv/E8PFM5ono5qgXd6heQ5GTIdBMTE4EydoDjax96tY4M4/YnTFKNSKG+bmz2smCKwecL uhsPayfp4ACxlk/Kn1Oq/jKOB7ltf5a+1XWnY8ib9xn9AirbXRRZdMiHfl1mQ5xBz8U0grL7VtNPk XyfLuxsleIo/RFwaDpDBPYZGuh4oTvTqEJczGTafFljDACvaSrK3fCEPSfQ6GG2o7dZqJetqKrfv4 Ct+8YE8jqhUC4fHG/QXy6Zg7FaQYIGYRdBRzuVyBt++Yxfiy5xMVmWAjSPO+4dBB8zicjuyJEjPyy 7LkrZr+AS2jpOLb1NELw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wpDep-0000000971p-1ZA0; Wed, 29 Jul 2026 23:25:51 +0000 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wpDem-000000096yy-3Keh for kvm-riscv@lists.infradead.org; Wed, 29 Jul 2026 23:25:49 +0000 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2ce7d2adef4so22816065ad.3 for ; Wed, 29 Jul 2026 16:25:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785367548; x=1785972348; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=fOohDTGKU0Fji4CKKyS8ZYpTWzbljIE/mTc4CCY1QKo=; b=BVfnGZ/tkSwSN9pSSV9lS+wuXFOo+7VOSMwMGQHVXiwbKAQH6rZQ8LpiuIZsi1mVud TrIVyDyW4vax9gyQTrDYCv0sISBWiXjWeEo8k+0hIvX7H2rCqP3Gm/9tYJYYWzGr+fcV B+nmZXv61IuUdMBlilBPTLgTDM7YmjdVaPIxHTviIp3D3/VMc+fI3ih2jkA0Pymi6M3F hHp5fbajlxRRzMeEXbfeJwdjg4OpOnDrsrqXvAw7IRlNoA1uJRV/RiD0ymwbsjD9jiIl Bo4ZDAcnN5zNB06O4wq7yfWPcQcl5mp7F5ybHpIY4XIY34tX2f0pdFh3T+xj/8yAJsNG /imA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785367548; x=1785972348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=fOohDTGKU0Fji4CKKyS8ZYpTWzbljIE/mTc4CCY1QKo=; b=P1VKFeGHYqSH7EZApbTjCrz3IHVPk4JL/7pS+SDxfKYwTqEqr77aeTWjHTX5af2e3X blN7mvD/FxPqx84B0/QjccXuvS7WgsK7koC5DoKY79USCpn4lnEHtY0gWanN2+qn7pGI Dw3x2gUAAWEmyvF7cMnve9zoqOOu7II/vYtU91u9P741qHb0BmvTg8b+MHoh89qaeffn dcJX5uOsVeiiPFevYLYVSRLl41Mas11Sm5K+RaI9cML4XTf64MTLsrwM+ezoU4A2CKxf XgLqHg2pcicvyHA/TLMjrBMvdhHEL7ru9mR7EwtmVWI5q4g4hgpbVFk4aKIzcM+8t3pg 1Gwg== X-Forwarded-Encrypted: i=1; AHgh+Rp7S56OvroysDjnKFtfmpEq5M5vZzDHOgfzLyYZaw9jOJH5wX5gqvUgXx9M2Z4cqpBbH48ctjMdWYM=@lists.infradead.org X-Gm-Message-State: AOJu0YxY4blsRf7jtg77YoEFRPo6Xaj1iyCAg/Nl8TVTZjOWcwe5HhMM GyHdg8f3Zpbo68oPg4y3vQU3YMX7stNAvvhsXTfoflqnU0ew79j93yIg X-Gm-Gg: AR+sD12VWDJH/TQBut1BjVrMWSnpegCgmIMG7hxbzYaAHzgwjDSuR5zYVNWynGVWrbe 3eriLmu8+zryvyrOibuQYXFp6QmACeAKFo4dKf10iRhetxm2SG5iy+oFE2hvKNTgxnAAtv4GAGj wMEKl9R8CnlYnwZOs4gaQ+hDoFdxDiaaSafXPJg6JjJHpXLYQWZwdpIXOFInvDlf1mpWxty87i3 tD5J/8t2Y5QVssIaOf0awPpbJn9NLhpo3PdgKRXB6Mgdq/8Uufemr/lAUBl1di5FX28qVrVH98D JA9JPkBcnDrcDIIAEqjsiLA8XBa/JkmuwNCMHQ1STpmE3W6AoavZvaEUP4WY3MKJ3CQSAyPyfmg vb341yrZf5jfyBOMTFjEdTIxI5h127FhHAEZY+YYZe3TOsS/t2QdyCPbVoduxPMpAoRUiMm9hhq 8ADWRhgQE2PJ/dAFZC3R5YaQGJ5kBFJYlGRCTE1q1GEI+zJvvFyLzRBQXDDzI= X-Received: by 2002:a17:902:d48b:b0:2cc:80c5:73be with SMTP id d9443c01a7336-2d035d154dfmr3101295ad.40.1785367547941; Wed, 29 Jul 2026 16:25:47 -0700 (PDT) Received: from localhost ([2001:19f0:8000:3e6e:5400:6ff:fe38:3d01]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d022a15215sm17512995ad.8.2026.07.29.16.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jul 2026 16:25:47 -0700 (PDT) From: Inochi Amaoto To: Anup Patel , Atish Patra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: Inochi Amaoto , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Yixun Lan , Longbin Li Subject: [PATCH v3 3/4] RISC-V: KVM: Reset the SBI extension when disable it Date: Thu, 30 Jul 2026 07:25:24 +0800 Message-ID: <20260729232527.139183-4-inochiama@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260729232527.139183-1-inochiama@gmail.com> References: <20260729232527.139183-1-inochiama@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260729_162548_841609_E6342B8F X-CRM114-Status: GOOD ( 11.61 ) X-BeenThere: kvm-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org The SBI extension validation callback can only fix the parameter if the extension is enabled. However, if the extension is disabled after modifty some parameters, the state of the extension is still broken. Reset the extension when the extension is disabled so it can have a clear context. Signed-off-by: Inochi Amaoto --- arch/riscv/kvm/vcpu_sbi.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/riscv/kvm/vcpu_sbi.c b/arch/riscv/kvm/vcpu_sbi.c index b737e9a7a12a..1c4f874368fb 100644 --- a/arch/riscv/kvm/vcpu_sbi.c +++ b/arch/riscv/kvm/vcpu_sbi.c @@ -221,6 +221,7 @@ static int riscv_vcpu_set_sbi_ext_single(struct kvm_vcpu *vcpu, { struct kvm_vcpu_sbi_context *scontext = &vcpu->arch.sbi_context; const struct kvm_riscv_sbi_extension_entry *sext; + const struct kvm_vcpu_sbi_extension *ext; if (reg_val != 1 && reg_val != 0) return -EINVAL; @@ -229,6 +230,12 @@ static int riscv_vcpu_set_sbi_ext_single(struct kvm_vcpu *vcpu, if (!sext || scontext->ext_status[sext->ext_idx] == KVM_RISCV_SBI_EXT_STATUS_UNAVAILABLE) return -ENOENT; + ext = sext->ext_ptr; + + if (!reg_val && scontext->ext_status[sext->ext_idx] == KVM_RISCV_SBI_EXT_STATUS_ENABLED && + ext->reset) + ext->reset(vcpu); + scontext->ext_status[sext->ext_idx] = (reg_val) ? KVM_RISCV_SBI_EXT_STATUS_ENABLED : KVM_RISCV_SBI_EXT_STATUS_DISABLED; -- 2.55.0 -- kvm-riscv mailing list kvm-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kvm-riscv From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 8988C3FADF7 for ; Wed, 29 Jul 2026 23:25:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785367549; cv=none; b=P/YFWQnThVN0PeCB4YqCHYe6ByhLiG8dC8s11xCCaqr8/FMqBxt9A9LX2RhuMOn49T7TPF38Tuq9MbmsxZo95Cav3qLan8p3tvLweSDHWUDG0+tssfq3N5NgYuNXwK1WjgEuxvi3bb7xgmbL8PIOfIe1fgPMUT4NYfkQd0H2h6k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785367549; c=relaxed/simple; bh=dJl0fLMWiJp1FXHaF7fslhtFbIf2M+oujlq+vFCvrJg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OQryPvTYokFWYWTVB2+Df2+VVoOgbjFLY0dbXAHtnfu01/oDRgux/QrfTy2EhmEIODQtJul6KrtcPjQUW0WsIs3v1dIiKIoh5E/FErjizJcmEPv944rP6LctLXIhe5wJdNvf+Oila1DX2H1Mj3PsUEOcNuL/TWPnqgm+Rk3XYdM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Z7jUOitG; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Z7jUOitG" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2cacf197759so23327795ad.2 for ; Wed, 29 Jul 2026 16:25:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785367548; x=1785972348; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=fOohDTGKU0Fji4CKKyS8ZYpTWzbljIE/mTc4CCY1QKo=; b=Z7jUOitGYPUmx4u320wcnKAkkGLdCv0sTDbcKJz4Q1kOoF9ABnt9aRXPkZCoWLg9Be dE3qiceT8FySk3576ivUt6q7UpgBghm6tMZGYKSMtX1CCdINgACewh8yoZuHXKNQQVYv dAtgzgRzLDcwXpM99pl5ACU8ihiaXhTc2nPGjzM8/ZGHWNpcjDI+Hrb5cn5ZlCvKXOny HdSbbCE3bLYAFMBq2x+0NA6XfwiPHsuChEPkdj4Tn12ERwPRqvK1vS2zXwy+3QA1iVy8 DbdaQy/I7Gn+9BdtO3Uz4BwbjhDo9CUVG/8o/qEGRil6yA56+UkLMKSB4oHONTZ8/QW7 KolA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785367548; x=1785972348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=fOohDTGKU0Fji4CKKyS8ZYpTWzbljIE/mTc4CCY1QKo=; b=JecMqHapaZIHcGxe1VS6gKRRy93ygywaTgVMkRbPZv4Qv+TCHlSxFLFbVaWnEANces RkBLlcXkkFzuIyffD+Saq7H/Xx+x82F0U7t+L726vELzn/QLRzqe6a4vGqTFsAYyT2cc 2wnJnI22BCe+kNyszcLVpGgz06+hww67V8Ej7j68x+/6ayKs5Y/mdDYalKONzGnGMfRL GWaq4ror0I+3+B358tKcX0FyyZBD1zs+2fRbIvpxcHGdGqM3qgmIUOr1Y+nZpE+bGYmX H9hMrkGmr6TyKgZMX91OzFLgp3bm685tiGobXB/SCZzwSRF1ZMGU3VZ136FETNpct8u7 G7iQ== X-Forwarded-Encrypted: i=1; AHgh+Rpe5qpwFn0Owkt+LPGMQNPzB6srd2yX/lfxAPomrXXP6UuCL3726YrIH44mKMcXfx+s3FYaa3VniyjM/EQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7mAmXsniSa6yvqVzRvfA51obQKk3uSnLx4I1hQXPDmZe/aawt 0lA2TE5dX0AwDwzM8UYit9oKl/WQ6AE3WO1q5gVyFTk5glAbdYjweqZZ X-Gm-Gg: AR+sD10cOab6Sunhn4WSCw0dc9mtbnMp1JDAFEfKit7OARg64aVD6w5aVoo+tEITFuG KbXRa0DT1M33E71lPxshkt3GHcB8tKPa7c/ysmOrc0WHgMvQw+Y/s3uqtAGkh6p2y9GkcifcDB6 WTI3Eqvs2d88fZS95SIBcjh/7JX4i/g2+aLkr5nBx4ltwpz/PwS7ftp4UfGJfgNg8Cf5kvgnkcn n8j0Pou4UOSZb0tvdtjBYj80g59Q4hk651qL5wI7rc07VhCSLyUrwSwD9Dt/d+JKbX03bDavPi6 yXpjPXWihYssXzuhxXyYghC4blYa2tjUcsUiqjhEBKMq+Z7hPwO5Ii4+sVmlY+eq6Ed3pBFA0jt +Zz/t2xY/LPoIosg/lvaAwA4cSHi63jibMaCvIBpXmyO4/YG/VsoSaolb6l6G/JJ0exbDr2yoV0 nOAFgcqz61zhQGDs7t+Luyw2i9hg/sLdsXN1tFPNd4nGo5KFNbz3f4PKcJkNY= X-Received: by 2002:a17:902:d48b:b0:2cc:80c5:73be with SMTP id d9443c01a7336-2d035d154dfmr3101295ad.40.1785367547941; Wed, 29 Jul 2026 16:25:47 -0700 (PDT) Received: from localhost ([2001:19f0:8000:3e6e:5400:6ff:fe38:3d01]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d022a15215sm17512995ad.8.2026.07.29.16.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jul 2026 16:25:47 -0700 (PDT) From: Inochi Amaoto To: Anup Patel , Atish Patra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: Inochi Amaoto , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Yixun Lan , Longbin Li Subject: [PATCH v3 3/4] RISC-V: KVM: Reset the SBI extension when disable it Date: Thu, 30 Jul 2026 07:25:24 +0800 Message-ID: <20260729232527.139183-4-inochiama@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260729232527.139183-1-inochiama@gmail.com> References: <20260729232527.139183-1-inochiama@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The SBI extension validation callback can only fix the parameter if the extension is enabled. However, if the extension is disabled after modifty some parameters, the state of the extension is still broken. Reset the extension when the extension is disabled so it can have a clear context. Signed-off-by: Inochi Amaoto --- arch/riscv/kvm/vcpu_sbi.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/riscv/kvm/vcpu_sbi.c b/arch/riscv/kvm/vcpu_sbi.c index b737e9a7a12a..1c4f874368fb 100644 --- a/arch/riscv/kvm/vcpu_sbi.c +++ b/arch/riscv/kvm/vcpu_sbi.c @@ -221,6 +221,7 @@ static int riscv_vcpu_set_sbi_ext_single(struct kvm_vcpu *vcpu, { struct kvm_vcpu_sbi_context *scontext = &vcpu->arch.sbi_context; const struct kvm_riscv_sbi_extension_entry *sext; + const struct kvm_vcpu_sbi_extension *ext; if (reg_val != 1 && reg_val != 0) return -EINVAL; @@ -229,6 +230,12 @@ static int riscv_vcpu_set_sbi_ext_single(struct kvm_vcpu *vcpu, if (!sext || scontext->ext_status[sext->ext_idx] == KVM_RISCV_SBI_EXT_STATUS_UNAVAILABLE) return -ENOENT; + ext = sext->ext_ptr; + + if (!reg_val && scontext->ext_status[sext->ext_idx] == KVM_RISCV_SBI_EXT_STATUS_ENABLED && + ext->reset) + ext->reset(vcpu); + scontext->ext_status[sext->ext_idx] = (reg_val) ? KVM_RISCV_SBI_EXT_STATUS_ENABLED : KVM_RISCV_SBI_EXT_STATUS_DISABLED; -- 2.55.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BDDFBC54FCD for ; Wed, 29 Jul 2026 23:26:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2tBzWVwfp/4wjgfCA7oDhs7k255DJIXpQ4cPqnxagOQ=; b=RB+Mtl3M/foB7u 8wrFbE6GeMRq/D4UVInP7PwF1dMiThedtMi4UWYheY4E76yXsPtQmMky5dtLSMObYUwbwgGXmHt04 QMJuGdi0Ki3M40OLJuHfxLuIzkrXv+6OawlR8q1cJke3UV0j0W18hP7HBr+lk136b2m2mOrDonIjR cYacv7KRzqqvGa96mBH5AdyMvbAZkRGUgWM7eYOiqYmb0eXbFl58pQxfp6rHjZiM5oFi0r/VpHtuK wCWCGXjpWzDSWdX3nrTP5NFPPBJGbCom9oKl5S1niPDlEq6RsmzjES0k4N6A3IGmd5W/QJjCycq/S vlJ7W3EDiFNehR+PLmXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wpDep-0000000971e-1Alt; Wed, 29 Jul 2026 23:25:51 +0000 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wpDem-000000096yz-3Kph for linux-riscv@lists.infradead.org; Wed, 29 Jul 2026 23:25:49 +0000 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2ced3386430so15247655ad.1 for ; Wed, 29 Jul 2026 16:25:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785367548; x=1785972348; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=fOohDTGKU0Fji4CKKyS8ZYpTWzbljIE/mTc4CCY1QKo=; b=BVfnGZ/tkSwSN9pSSV9lS+wuXFOo+7VOSMwMGQHVXiwbKAQH6rZQ8LpiuIZsi1mVud TrIVyDyW4vax9gyQTrDYCv0sISBWiXjWeEo8k+0hIvX7H2rCqP3Gm/9tYJYYWzGr+fcV B+nmZXv61IuUdMBlilBPTLgTDM7YmjdVaPIxHTviIp3D3/VMc+fI3ih2jkA0Pymi6M3F hHp5fbajlxRRzMeEXbfeJwdjg4OpOnDrsrqXvAw7IRlNoA1uJRV/RiD0ymwbsjD9jiIl Bo4ZDAcnN5zNB06O4wq7yfWPcQcl5mp7F5ybHpIY4XIY34tX2f0pdFh3T+xj/8yAJsNG /imA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785367548; x=1785972348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=fOohDTGKU0Fji4CKKyS8ZYpTWzbljIE/mTc4CCY1QKo=; b=FslxXh/QnOYCs5yGiuLN7BGsVn5Qv73gIr5iBDjwyRqfVeGksMI0gP4agSMq+ACvNs /UbpUxPwblhizqm9mRGm7pfWc1deigr67DzMIPcL2tDM5ilDLWMCyRBjV6kQXdLGA7lo IdYB80PEXZdJ2g2l+uExuEpzFIHlCgxqoeBkfFoaJMxmeI6sQ6ou08Mfw5jhzCgd+0Gn f3DOfrkN1HbWDy2K0VkWQbSEMM5Q/EaSS+LigfyyosM7o0evPZIME4kNR2ro+u1SYjk5 dmQG6FcYmi7MdYPGTHV8k4FG27YE1t1Eu1x1NFQw5pwwOCtlgI6u5OI3VKkdfAX5gEQe E1aA== X-Forwarded-Encrypted: i=1; AHgh+RpOmOtNWe2cpVi4pgZB2O6lPlHtTxnVXcOpJMoIsCrMbLIGrqqlC8Eyziz4qqF2Kj5VelxPTw2Hh2N9OA==@lists.infradead.org X-Gm-Message-State: AOJu0YwvcTNK/xq3I2zeqFntoixzyeikSVITHyAc3/J6boGDB5kUPquN wfvXdasWE0AnXipgE1aYMxrgsFb+j+SfDBqgcQgkhCGlgfxofeN3GRut X-Gm-Gg: AR+sD11BTAUKjBxreJcYdQBu1xf64DfnV8W7xjqPd9e5ytcuLB+fZFPzKrxCRugJNhc z7Ge1jmcs+ZrjaqlRjzMEFdEqpERTFZvnY0ygaYCFpfTi4YYhx7u/j0/OT4tkO/yJZd2RgRLqdG QrvFZK3NDA72o+N1tu9RomODalza4mnzKfBpsj7cbb+2tiRDy4SgTzfkZ4qhJUdG25ZLrt6eVAK rR8iORCgb5ZxmxxINHpSySOYW1jCzip3qi04V24sv26v4hnwcqQPhWT3UZbLv/sgt4iOWLw/a/F n/UHX6Szp60hVIKrHUJptExBt4carUmr8MxnYtBw5PQZIREnGLIMWrcYPFENG/VFKmZrw6XvCyr /EnfDFXbmqXiwXccgMJqDGeGmZlH3wJBtUItWrF7Rnuz9I/e5QX43qXUScFcerypYdJyF0AsaJv semKdSqaRk4ZZMIHo4USjXqy0rs0/zGh0+cUZm0iGzlkztXOMkJCy2n6qBQDk= X-Received: by 2002:a17:902:d48b:b0:2cc:80c5:73be with SMTP id d9443c01a7336-2d035d154dfmr3101295ad.40.1785367547941; Wed, 29 Jul 2026 16:25:47 -0700 (PDT) Received: from localhost ([2001:19f0:8000:3e6e:5400:6ff:fe38:3d01]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d022a15215sm17512995ad.8.2026.07.29.16.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jul 2026 16:25:47 -0700 (PDT) From: Inochi Amaoto To: Anup Patel , Atish Patra , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: Inochi Amaoto , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Yixun Lan , Longbin Li Subject: [PATCH v3 3/4] RISC-V: KVM: Reset the SBI extension when disable it Date: Thu, 30 Jul 2026 07:25:24 +0800 Message-ID: <20260729232527.139183-4-inochiama@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260729232527.139183-1-inochiama@gmail.com> References: <20260729232527.139183-1-inochiama@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260729_162548_841261_E4EF798B X-CRM114-Status: GOOD ( 11.61 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org The SBI extension validation callback can only fix the parameter if the extension is enabled. However, if the extension is disabled after modifty some parameters, the state of the extension is still broken. Reset the extension when the extension is disabled so it can have a clear context. Signed-off-by: Inochi Amaoto --- arch/riscv/kvm/vcpu_sbi.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/riscv/kvm/vcpu_sbi.c b/arch/riscv/kvm/vcpu_sbi.c index b737e9a7a12a..1c4f874368fb 100644 --- a/arch/riscv/kvm/vcpu_sbi.c +++ b/arch/riscv/kvm/vcpu_sbi.c @@ -221,6 +221,7 @@ static int riscv_vcpu_set_sbi_ext_single(struct kvm_vcpu *vcpu, { struct kvm_vcpu_sbi_context *scontext = &vcpu->arch.sbi_context; const struct kvm_riscv_sbi_extension_entry *sext; + const struct kvm_vcpu_sbi_extension *ext; if (reg_val != 1 && reg_val != 0) return -EINVAL; @@ -229,6 +230,12 @@ static int riscv_vcpu_set_sbi_ext_single(struct kvm_vcpu *vcpu, if (!sext || scontext->ext_status[sext->ext_idx] == KVM_RISCV_SBI_EXT_STATUS_UNAVAILABLE) return -ENOENT; + ext = sext->ext_ptr; + + if (!reg_val && scontext->ext_status[sext->ext_idx] == KVM_RISCV_SBI_EXT_STATUS_ENABLED && + ext->reset) + ext->reset(vcpu); + scontext->ext_status[sext->ext_idx] = (reg_val) ? KVM_RISCV_SBI_EXT_STATUS_ENABLED : KVM_RISCV_SBI_EXT_STATUS_DISABLED; -- 2.55.0 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv