From patchwork Mon Feb 17 08:45:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 13977307 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 CBC36C021A6 for ; Mon, 17 Feb 2025 08:45:19 +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=sJnWeP5+qLgc3ntMm6vvhHmtMS0+Mh3ZwTUvT/r7d/4=; b=oZENIdg3QbJfVv 4L6cEViU4pTv+sIILgoCYl2WXjOgJ3PUOcMIywlMDk4BEUVEGDj8CpbJGL3H2UVFlCoR8si+BoNKa dZKWvWzR3/oHwD14narwMqql4SqC8bjaQ0XUof/zgn+khXg3ff8/jMzKt7/0+uO4nqoEGG9qaUpNV h4IcLyani2ecoTeKd4gpsUqTb+P4vsv6CzIJ2M6ybX2AftSkgwaiRL3+mFNsYXX7cNPwYsw1dg/1i /C1lObvPXnhIQ9ZmQxV1w1YqW3ow+7kDpnbme6VEhHi1qdKxx8YaK3l2N5rimSvXF2DYhm6eTnc+1 e7yT3PSHGOf6jlBgXG9A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tjwkd-00000003nPo-25C4; Mon, 17 Feb 2025 08:45:15 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tjwkZ-00000003nLH-0ret for linux-riscv@lists.infradead.org; Mon, 17 Feb 2025 08:45:13 +0000 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-38f22fe889aso3098230f8f.3 for ; Mon, 17 Feb 2025 00:45:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1739781909; x=1740386709; 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; bh=tmOiuBasU6JQWrtvlHuH5EGMnpuZux+G/rw1YW3ZnKQ=; b=iqE38VDPriJ+JoIdAckv0hcOr3PSVj5jtcMVyOILR+jGtn6wbCRjI/aHbwnVOHbWda v0lCxf36Lr6SUV897SfbyPzucGySlNsQjOPDldlQ7rdnhdZCn78zzT78Glj9hJFFeUEo vEDhLxUJ5R1AOaK1HuX15a5eQum/i0oDsb2N+c0O7JFfZ5FcllSucTSAumcIL+72UnDu hsVHm6eMLIjdEu2D7E1t2+XzuC1A1cOHklteTi2MP2UZxprHaTy6ojeSLUK97YDlbdjo RyUZyjaKelt7YXQa9KMeepO8kjVe8KL3x59grUc/tJKz+xNfPP7w4qwke4XETpSuOcWt +HZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739781909; x=1740386709; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tmOiuBasU6JQWrtvlHuH5EGMnpuZux+G/rw1YW3ZnKQ=; b=Nbhy4DHR8IfHMF2U2Z7WRfZGbXmYw1Ag35t7bb2ybJiKVtQQR1E5DwC3/U1+uDgICZ 8gTlhapkZe9YqWjSXDfEzk/NCEuDxtM/0SyRaE1oOcJcxb0MI5O5yvfFvy3LXW75WFQC I+dVOP/uMhU7IwQWdbbKaiVusqszna7QdhWRTXo/sF3TLqnxTFrXqW3/uFbKMrp3tab4 dJfypm/7CtjprhaZnq6Y+KL1mO6m1oTb0QN3Qf6IIPFb/Qw7bzQ62pHw/f0UqmGrQxCs f1b9UqPFxM8ZZh/HForUVTc9Zn238AqjtdwMEVa4fjnpoKN8ZZ53042J0VrYYP6Mw0mN mABw== X-Forwarded-Encrypted: i=1; AJvYcCVMrUn46WTkaXL3rhkbYRkV2fG2/9wPogIXvriojikp/vsbagtLM6wWWbzseiT9XiRFhtc+iM4aqtNvyA==@lists.infradead.org X-Gm-Message-State: AOJu0YxykC9pVzxFtJImgRmaNe4bASS0oo4iuGSmhhR5UBtCJnsATj3p OdnKBQki1K+z8KNq1S8v/mc+J5WTX/uQbiDsdD99nHfxOZgDqF2W0P76OOxLyvU= X-Gm-Gg: ASbGncsuFyr4bSV4PxiU/s/3G0R91lhDsYHXfL75IYFYMW9h+jAM4oQF4Tr5tLGqMnq it/IBY7rRR8L1EZ0aev35Blb+33+cAQ71vKT9owBxNAgsLVHN25iAyD7pWpZvgqVlGT4TTf8rbU 9ryvCK/4Iuhf2Z62Vwv6sh8SDgUtJsOQsmmRzl1jO/M1rilG/IOv+h1HYIgoDem0BbM1szt6e0F CqxwpNw33ri+oPI8ncG72IaHmKCEzKSgzlgDxd582I4sW9lpxtydQxiLDz5Em9ZGf/GG929vc6n RRI= X-Google-Smtp-Source: AGHT+IG4XexX5u4a9ST4SKpxQS8lH/aGBNXid1q/a0drWF3aciYyLxMBoUybxw0lIHE5NbqdkQOXHQ== X-Received: by 2002:a5d:694b:0:b0:38e:65db:517d with SMTP id ffacd0b85a97d-38f33f5107dmr7035502f8f.40.1739781909479; Mon, 17 Feb 2025 00:45:09 -0800 (PST) Received: from localhost ([2a02:8308:a00c:e200::766e]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f258f8c4bsm11630555f8f.46.2025.02.17.00.45.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 00:45:09 -0800 (PST) From: Andrew Jones To: kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: anup@brainfault.org, atishp@atishpatra.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, cleger@rivosinc.com Subject: [PATCH 1/5] riscv: KVM: Fix hart suspend status check Date: Mon, 17 Feb 2025 09:45:08 +0100 Message-ID: <20250217084506.18763-8-ajones@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250217084506.18763-7-ajones@ventanamicro.com> References: <20250217084506.18763-7-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250217_004511_244699_0BF2FDA3 X-CRM114-Status: GOOD ( 10.76 ) 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: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org "Not stopped" means started or suspended so we need to check for a single state in order to have a chance to check for each state. Also, we need to use target_vcpu when checking for the suspend state. Fixes: 763c8bed8c05 ("RISC-V: KVM: Implement SBI HSM suspend call") Signed-off-by: Andrew Jones Reviewed-by: Anup Patel --- arch/riscv/kvm/vcpu_sbi_hsm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/riscv/kvm/vcpu_sbi_hsm.c b/arch/riscv/kvm/vcpu_sbi_hsm.c index dce667f4b6ab..13a35eb77e8e 100644 --- a/arch/riscv/kvm/vcpu_sbi_hsm.c +++ b/arch/riscv/kvm/vcpu_sbi_hsm.c @@ -79,12 +79,12 @@ static int kvm_sbi_hsm_vcpu_get_status(struct kvm_vcpu *vcpu) target_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, target_vcpuid); if (!target_vcpu) return SBI_ERR_INVALID_PARAM; - if (!kvm_riscv_vcpu_stopped(target_vcpu)) - return SBI_HSM_STATE_STARTED; - else if (vcpu->stat.generic.blocking) + if (kvm_riscv_vcpu_stopped(target_vcpu)) + return SBI_HSM_STATE_STOPPED; + else if (target_vcpu->stat.generic.blocking) return SBI_HSM_STATE_SUSPENDED; else - return SBI_HSM_STATE_STOPPED; + return SBI_HSM_STATE_STARTED; } static int kvm_sbi_ext_hsm_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, From patchwork Mon Feb 17 08:45:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 13977308 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 54390C021A0 for ; Mon, 17 Feb 2025 08:45:21 +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=J7N7LNRleh3g6HmsYbcy1LUDHv1/mhmbBqIYSW/cBeo=; b=MOTbemeWbyLtS7 qExnO0Y7BaHTC/y4Iifs/Aua8q+1Fo5vu6bPj7GlD6EUgCoWVglmzafvfXOomCAU0C6YjdJexxTdh n8rSFkf2eYIFeHh8ZcgakuOfXR97FmZLCsZaPCd9sab2puBgpQhQZpxDC9BpufhbzJP/fyOXTY7Mt BS9ryOdVuaSJCTHQHrk6QqI66uiXOyohhpFb5rgQh+VVHSb/7SphxTiN0xvIppWMnSOQkArXWg3+9 xRepyyg36cLtFvtAXsboUJN6QRS9z34pqjk2M3FKA2XobZoa2B1K57z3uQw7TYJmqEZxzRVT/QbG1 zk7bGma+gQcj7DwygqYg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tjwke-00000003nRZ-3IRY; Mon, 17 Feb 2025 08:45:16 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tjwka-00000003nMG-1wGe for linux-riscv@lists.infradead.org; Mon, 17 Feb 2025 08:45:13 +0000 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-439714a799aso15413575e9.2 for ; Mon, 17 Feb 2025 00:45:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1739781911; x=1740386711; 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; bh=JiPZGt3cqKuKVygJ0gOXQMkedPlfCXA7o5CUpSUfKvM=; b=XzoLg4FQSBNwx7LBE88Q4CyVGGv0o2mzpuIxD51yz6z/dcL1QvWY908gjTA83esEvt 2IMKWFm/kxTTqUG3RbC4SH6276Kj2vsA87xfNzP2FO0pkveTYdVolGoXCMYo452RmtSg z4ApoNg3LbfPc8bcH9g6MGUCeOPguLrXq5r5Wz7Qmw6bB0xA3WYGT9XCY07coXn8KuFa d5AU4VqTt6cMZkNRsO6Ar/UR4f7MEM+ZID0KozR5Lz3AXBnoBJ59GRjWLp0GqBIH5Oc+ 5AiaJdbaO5NBhyvtYL+iHUlFYfGP9b4pMs5jeoykI3baKOTbG89z/3nsuu022AIc9IBb 3BCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739781911; x=1740386711; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JiPZGt3cqKuKVygJ0gOXQMkedPlfCXA7o5CUpSUfKvM=; b=meFcciRjdZ7SM1dry12I3b+61t6tPANlw6/bfXLxPiQUYgkCy0LDmUXqGVxJH1YshW /TyuWLkGNF0x+G58S7mYtaRADiQm7Pfqh1LSjax9DeqWkBI4XGpMJZiE1c6Uai3fmyg+ Wir8jkvExUxhiGjI9rwBcU9hoPuyCS1qbDo1fW97sNWbQ7XgrWHF+uSHZULA961h+bmG jmSoihdVye2R759Z0ARcr/Nqga7xf5VmDVnbfjs8L168LxIFPQLfsc+bWl6ICqp/torK u9HrE7FtBGiD1WFTfCUG4Sl0PP00DIkSBx2ATibA5bnOcPgDv+rCR12sXytcy97Sb8yE rHCw== X-Forwarded-Encrypted: i=1; AJvYcCUXz+boMpjt9BKTBoHMFbrCHAgiRAUK4praq2MUDJN+buvg61fgItLGcOZbygRaVLYYobgh98Pz/gi12w==@lists.infradead.org X-Gm-Message-State: AOJu0YzUNU9+ZUycuwQgAeKk87yF+8MCmcTbLeQt8HmJR2G5gSBjJmRt OYwX0fgN2/hvSOqtXZSCPcTLc0IPhxDBtZvWllu9EUl2RsUERCwWybLAd7wlDwk= X-Gm-Gg: ASbGncsnMqRPApjeH1D7Bz5z5u2Yka+VibTZ7kPe1yvtoBrauJ3LrzJqIza8xK96T8c F3/4xa2dMdoyqCdhxIBfi4agcKoar8ketpFGDb/spQiZgcj6X60cU/iJiwnzpk0APFQQ78FufGN qW3OCX6XAMiCKrI3cUTzG63sw3GzkgU2L54ecZEG7nM7JJ98b44h/Xw75Qdpwx60SWbzsa1zuEP 465CIBLTVmcsndNJQRlcAR75vh8s7lsZ+pO2k2B60XA8EYbKkawlYHhykOG+ybX4MmyE8KnpXzi /s8= X-Google-Smtp-Source: AGHT+IE+AUAR1iy2Ln8DmzcEm5nnGqOi/Plq/QkgSq3ISWZGeoiGgqYDSZCBPokxQUbiUvFLMTErfQ== X-Received: by 2002:a05:600c:1c24:b0:439:6304:e28a with SMTP id 5b1f17b1804b1-4396e5b56e7mr95001465e9.0.1739781910716; Mon, 17 Feb 2025 00:45:10 -0800 (PST) Received: from localhost ([2a02:8308:a00c:e200::766e]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-439858741e9sm14517775e9.1.2025.02.17.00.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 00:45:10 -0800 (PST) From: Andrew Jones To: kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: anup@brainfault.org, atishp@atishpatra.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, cleger@rivosinc.com Subject: [PATCH 2/5] riscv: KVM: Fix hart suspend_type use Date: Mon, 17 Feb 2025 09:45:09 +0100 Message-ID: <20250217084506.18763-9-ajones@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250217084506.18763-7-ajones@ventanamicro.com> References: <20250217084506.18763-7-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250217_004512_492388_A1C6E8EA X-CRM114-Status: UNSURE ( 9.94 ) X-CRM114-Notice: Please train this message. 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: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org The spec says suspend_type is 32 bits wide and "In case the data is defined as 32bit wide, higher privilege software must ensure that it only uses 32 bit data." Mask off upper bits of suspend_type before using it. Fixes: 763c8bed8c05 ("RISC-V: KVM: Implement SBI HSM suspend call") Signed-off-by: Andrew Jones Reviewed-by: Anup Patel --- arch/riscv/kvm/vcpu_sbi_hsm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/riscv/kvm/vcpu_sbi_hsm.c b/arch/riscv/kvm/vcpu_sbi_hsm.c index 13a35eb77e8e..3070bb31745d 100644 --- a/arch/riscv/kvm/vcpu_sbi_hsm.c +++ b/arch/riscv/kvm/vcpu_sbi_hsm.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -109,7 +110,7 @@ static int kvm_sbi_ext_hsm_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, } return 0; case SBI_EXT_HSM_HART_SUSPEND: - switch (cp->a0) { + switch (lower_32_bits(cp->a0)) { case SBI_HSM_SUSPEND_RET_DEFAULT: kvm_riscv_vcpu_wfi(vcpu); break; From patchwork Mon Feb 17 08:45:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 13977309 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 18847C021A4 for ; Mon, 17 Feb 2025 08:45:23 +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=IR08DwXppqayiF5ZxKQ8B6/h5WC9KUc7KWcz8fs+s5s=; b=ResNeSFlYdYxKL 6xbYbvRu8KlHv38f2v2jWeeFp/Jn7yjn2vgz59eLNyQijdXCbPWbOqft76ZJUxaZRUyAJP/tB4uHt 5ZgiFhRiUIjR4RVob98WLl+FUKlL/6nWU4ev4QVkPkcdDq1955EmvMZ5UTOVkEbv8Ivdbqnt1IDMX +tTGIUNv0YryYFDSxmoo1IzDoOuy6epetPTO2auEezPjA/HtlCS0roFHXkqZrpc9jTx4kLYa38IKy xyBGP5gqSkwEPx72gcE5TSCxWK+VOTvrpARhDUptJEZwSvwFG7ab6pKdu7oBZrIq9ZzE4LhmzMWOW jvwp0rCKtFySryCrK+eg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tjwkf-00000003nSQ-20zF; Mon, 17 Feb 2025 08:45:17 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tjwkb-00000003nNA-0wR7 for linux-riscv@lists.infradead.org; Mon, 17 Feb 2025 08:45:14 +0000 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-38f325dd9e6so1015416f8f.1 for ; Mon, 17 Feb 2025 00:45:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1739781912; x=1740386712; 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; bh=VZ3VO18adCEYhhZu71Kqt+W1Lctj7LPPm0C4PWap/Pc=; b=gMZHyV/YS0B6NxiDkbQ1VvCBv/FXJXv+EwimTq9yK0kfL9aRHnypsMdzi/rqzPPt/8 1qhOo018eCoo8QIpDDwr1+H9Zw8CwCFJa7cWxqS0rdgDyvITVhMQWuVeO3Z3IfeUAL6Y V+6mljG7NuIFXIRyuBGvxoTOPkwnpyaaioAzNLgY4ot1aDeY01yPt1/abahnPgfF7x5e zwBC6PHlFUpWGvx9BkAGCRiSxnTkmGhkTRv7Y/2evk1A6HwWlPeuxWaRwXndmqBTUPEF bVlibblp8iDcIiWrW62iFJKS5rurpsQrJBw9wZKpa0MEgYGERR0aafMM/583LVgtFupR RnFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739781912; x=1740386712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VZ3VO18adCEYhhZu71Kqt+W1Lctj7LPPm0C4PWap/Pc=; b=Lfvs9BXJaeMIkr8LGzr3elcw6kbIcXBrDCtQ/lbDhZniNgAltIchUiPOrqQXBgbp5K BH+RZP17Vs+XHqJPEkJ1FBVZM364k9clfWCC01YoGiH9e/YjkrIuvtCnTdl4Ksjd2vP0 h5yxaHwKfmHWSo+w/XXup5qiJxkYuZlrinBtWnNFO7Qpagnq2bvyRacDgnHIFc2umU73 vX3BPO2wfqH0H+0rL5F0/WjHqwJ6t8IwMhoyivJAdb/8gRJ0tGWF2LAcdORZD/dgAETv IQCcaurUQKmaSMBvqJ4UfrQQootTeG/pvIA5Pac/Ib6rBodFTkmNrS/pOSYoiPYM92AP F72Q== X-Forwarded-Encrypted: i=1; AJvYcCWExnZGD880FvuQwCQzZ9EstOzEy9ZKXYaChS8XpASmURxqmOn9bD+BTP0OjUQvUgnOiDJ9x7U221s5lw==@lists.infradead.org X-Gm-Message-State: AOJu0YzvSUz1Yht/Ri0C8PRN4dRNkrT+2VsLUht79qqiIFsRaIF8QMDL oTtzBawdXR2T3k6aMG0/rDLPB9RkTOr3t55aenYL+id6tQvFCbZ3FiZEV1uXIAmsEDpP82JdcOn l X-Gm-Gg: ASbGncv/WXS94EHsX70EtL/suHDucyH35Vsc5qkpiQ3/X9m8dRfORG73RKP0N0JE7go JDmNeDOBWVbf4P9yqqzScwVRpRhUbVcrN31ft+7qaGOkKIb/hbrDR10RveUfybaHLB3f5eHZMaK PVZV7V4NeN9kTNRC2wv7+VUQhyiM2zUMYrcI5mTAACbsG6GH+1PjyIu2VP73raCkvh1W5Wci+8k xZe0aoMf7GWIfKP3posl5niKgkFufbAQOJ2RLdtV4A8RupOG3M8O6SvZyvjSC58/BaF38EO7Eq4 mvA= X-Google-Smtp-Source: AGHT+IFjCjQDRbtQRRPY7ND3UbrR6FOcJiCBfSPf1KsHHS/VGqmXJkoBgEpraPdPyIlzSWNaqsOAIg== X-Received: by 2002:a05:6000:1548:b0:38f:4251:597b with SMTP id ffacd0b85a97d-38f42515b99mr2778376f8f.8.1739781911976; Mon, 17 Feb 2025 00:45:11 -0800 (PST) Received: from localhost ([2a02:8308:a00c:e200::766e]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f259fe1efsm11711548f8f.97.2025.02.17.00.45.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 00:45:11 -0800 (PST) From: Andrew Jones To: kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: anup@brainfault.org, atishp@atishpatra.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, cleger@rivosinc.com Subject: [PATCH 3/5] riscv: KVM: Fix SBI IPI error generation Date: Mon, 17 Feb 2025 09:45:10 +0100 Message-ID: <20250217084506.18763-10-ajones@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250217084506.18763-7-ajones@ventanamicro.com> References: <20250217084506.18763-7-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250217_004513_274269_64A515CC X-CRM114-Status: GOOD ( 14.21 ) 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: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org When an invalid function ID of an SBI extension is used we should return not-supported, not invalid-param. Also, when we see that at least one hartid constructed from the base and mask parameters is invalid, then we should return invalid-param. Finally, rather than relying on overflowing a left shift to result in zero and then using that zero in a condition which [correctly] skips sending an IPI (but loops unnecessarily), explicitly check for overflow and exit the loop immediately. Fixes: 5f862df5585c ("RISC-V: KVM: Add v0.1 replacement SBI extensions defined in v0.2") Signed-off-by: Andrew Jones Reviewed-by: Anup Patel --- arch/riscv/kvm/vcpu_sbi_replace.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/arch/riscv/kvm/vcpu_sbi_replace.c b/arch/riscv/kvm/vcpu_sbi_replace.c index 9c2ab3dfa93a..74e3a38c6a29 100644 --- a/arch/riscv/kvm/vcpu_sbi_replace.c +++ b/arch/riscv/kvm/vcpu_sbi_replace.c @@ -51,9 +51,10 @@ static int kvm_sbi_ext_ipi_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, struct kvm_cpu_context *cp = &vcpu->arch.guest_context; unsigned long hmask = cp->a0; unsigned long hbase = cp->a1; + unsigned long hart_bit = 0, sentmask = 0; if (cp->a6 != SBI_EXT_IPI_SEND_IPI) { - retdata->err_val = SBI_ERR_INVALID_PARAM; + retdata->err_val = SBI_ERR_NOT_SUPPORTED; return 0; } @@ -62,15 +63,23 @@ static int kvm_sbi_ext_ipi_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, if (hbase != -1UL) { if (tmp->vcpu_id < hbase) continue; - if (!(hmask & (1UL << (tmp->vcpu_id - hbase)))) + hart_bit = tmp->vcpu_id - hbase; + if (hart_bit >= __riscv_xlen) + goto done; + if (!(hmask & (1UL << hart_bit))) continue; } ret = kvm_riscv_vcpu_set_interrupt(tmp, IRQ_VS_SOFT); if (ret < 0) break; + sentmask |= 1UL << hart_bit; kvm_riscv_vcpu_pmu_incr_fw(tmp, SBI_PMU_FW_IPI_RCVD); } +done: + if (hbase != -1UL && (hmask ^ sentmask)) + retdata->err_val = SBI_ERR_INVALID_PARAM; + return ret; } From patchwork Mon Feb 17 08:45:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 13977310 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 75387C021A0 for ; Mon, 17 Feb 2025 08:45:23 +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=O3NhroBSNq/ov87Km9JgGvg82b8l3AWHJsReb2LaDdI=; b=vxkKlDTvLkDUsC P3dyMkXLPeqKkLws0hUr2uq071luaZbdtA7fjXco2RcfMg521o0TLx8AM8ASN8KQ+3pPu+H2WthRj RWSS3igoXG0hTvwOc7H1mYqIrsASLCPCBRkDMTrlE/qbHIOtLjlnJLQcuQ0LFM2Rd3+2AZM7pgJ9q fw2W/Uxsa8o6idrXNokbtVe9izFkZ7D7FAxKI0ORMWkAHBmxDV1NxnpRShd4r2vwF56zuBzBMBX/z +I1xtWVEsiJmZ/iJzMJvEoa5PfKeppLcJPMBfdzTkd2Xqj610kcDRsLjzW/ZfUjQQhysDjzu5Do2s wCYL0Z0mT6C4c/GmKb/w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tjwkh-00000003nUi-1CpC; Mon, 17 Feb 2025 08:45:19 +0000 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tjwkc-00000003nNx-32CD for linux-riscv@lists.infradead.org; Mon, 17 Feb 2025 08:45:15 +0000 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4396424d173so38463655e9.0 for ; Mon, 17 Feb 2025 00:45:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1739781913; x=1740386713; 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; bh=DPqGeqDxSe+aOIAEww9m1M//H8GA90MJiJy6W/MxoXw=; b=cNFpYyJ/GEcZddWnyfOY2ZaQUQHv3CvOnSwKRCcuR9jYW4FITTXhigOYByj0ZlPV8Q lRSpWWWSx5ABsGlJkUEvt53i5eVFwMPpzpcFVMXzha65oIYH7LpXY1d85shE5tFV15hQ wH8n3RP6ZmD6adXvFCOSO+GpnLbqqvxQl5pXZG5EVO7aPkESUTHKhH3rvAXzJlZwat+V WuRpbvqM10tg3vGxShRLrmFennaNXTnDT3jHA9mPvpztDC0HQx9B65fKJLXN9lxOz+PC v+QCQxQon8rOqP9tm42kv2PNzBwI0QX+ft3ZG5k59TrBTm1tL1zUNDD/5kJuAYH7zHu9 36ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739781913; x=1740386713; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DPqGeqDxSe+aOIAEww9m1M//H8GA90MJiJy6W/MxoXw=; b=nmFOIWjEWesFb9WZmL7BWRtVVmj6Ru08+THzIz0Kh/3t2x1S9xRI06Bn5kK8KTOKKx 9L5Uxt/tOvrMW2mwcUYhwKYz+9Ia9YDj0fC5N2iSVbp7yAg5QlIVP1djsgXx/jdbjnBz 3vJiUpl2/e94W80CWAguPtD5FF1HoshVMk6FWyiVL7Z3pnAB1xgsdz45CqP/MhmpxDat j5UEiYISyl+rSxYoBfyFDWkpn2J41Ga8X+4GRPR0Fco/1KLJ15Op3beMlm3WAPXQhuEA bid6qbZ89ehC5vLl5FmBP+UQX4w0iNKlh148M6ddCoNzoM0hI+E2aaNLa+i3EjII/ONU r1+Q== X-Forwarded-Encrypted: i=1; AJvYcCUjb4SlGlkAp8e4EtS82yJnedF9TuNwwLoIYcpiYe43eFDeP8XYvAxPWFHI/RBOYl6uWVwApkfWsdsojQ==@lists.infradead.org X-Gm-Message-State: AOJu0Yw4xeZ52J4aBeHguEPjf2fYPPxwz3x+SxIf6jEtIhiW9DVRL8Vc 5DP4giee9J/1ICpYJ6LomNMOotNOnGOzPz6OFuGGSen4H5dYRtVwqbDDDCNg1K0= X-Gm-Gg: ASbGncvwQ5SJR1lzg+Gxvl3a0rS4lhmKFvaOmB8X+vRDRdEfkY6UsAD7YdvJgRKo4Sy Du5wCE/4zN7mH7X2Axk4mH0UixZBUWQfZch0yKLRdta8+6ohFka37vDZakaiMgiiGVBHM94t9B1 emI3/HEl1bEmhPcIO1KvM4opmTNSxvPHEoLYsJIa1mmJnXNjhEu5mUuQZtvOOFP2OnkOabArpnM x4PJwFp5Mwp1X+uGey23Qbrb+wHSgubm2G/+Seyns15Y3/t8s7QBCY3J4cqYWr0Ul/fLj1RAkg0 f68= X-Google-Smtp-Source: AGHT+IFw2SQlG3mEiHsZKLXfCIe42+z2FtTbwXKzNb64tTScHuV6pXuwf02llElP/bUJfKsa7cfpqA== X-Received: by 2002:a5d:648b:0:b0:38f:31fe:6d12 with SMTP id ffacd0b85a97d-38f33f295f7mr8268862f8f.19.1739781913174; Mon, 17 Feb 2025 00:45:13 -0800 (PST) Received: from localhost ([2a02:8308:a00c:e200::766e]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f258ccdccsm11661079f8f.24.2025.02.17.00.45.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 00:45:12 -0800 (PST) From: Andrew Jones To: kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: anup@brainfault.org, atishp@atishpatra.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, cleger@rivosinc.com Subject: [PATCH 4/5] riscv: KVM: Fix SBI TIME error generation Date: Mon, 17 Feb 2025 09:45:11 +0100 Message-ID: <20250217084506.18763-11-ajones@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250217084506.18763-7-ajones@ventanamicro.com> References: <20250217084506.18763-7-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250217_004514_762520_7B28F103 X-CRM114-Status: GOOD ( 11.12 ) 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: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org When an invalid function ID of an SBI extension is used we should return not-supported, not invalid-param. Fixes: 5f862df5585c ("RISC-V: KVM: Add v0.1 replacement SBI extensions defined in v0.2") Signed-off-by: Andrew Jones Reviewed-by: Anup Patel --- arch/riscv/kvm/vcpu_sbi_replace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/kvm/vcpu_sbi_replace.c b/arch/riscv/kvm/vcpu_sbi_replace.c index 74e3a38c6a29..5fbf3f94f1e8 100644 --- a/arch/riscv/kvm/vcpu_sbi_replace.c +++ b/arch/riscv/kvm/vcpu_sbi_replace.c @@ -21,7 +21,7 @@ static int kvm_sbi_ext_time_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, u64 next_cycle; if (cp->a6 != SBI_EXT_TIME_SET_TIMER) { - retdata->err_val = SBI_ERR_INVALID_PARAM; + retdata->err_val = SBI_ERR_NOT_SUPPORTED; return 0; } From patchwork Mon Feb 17 08:45:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jones X-Patchwork-Id: 13977311 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 DC3ABC021A6 for ; Mon, 17 Feb 2025 08:45:24 +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=aCtYOyICtIIdFDvacmrvtTDlN9ck4L1Vaq7hcBa8ULk=; b=VJAFc/6u6nx7Wf XJaNOBZgoY4gGG1xeJ5ZbOvfTt50vcK6Cf40o6xVXQ5KLpWjquhYuNZUhX953dkG0FSo+KxhqG1if dGB/FGSTWrph6LTDqgLb6/WsdaemTYu6dCrfcdMzJyf9YxFbH2GwB3oHHxHQucrlGs/+0h2c+F42Q crkSDutn4tyTqDws4sRfkJ/RjMrlzmQ4s8FwNh3U++gKGdGUx1YgfeiPulJM3/vAr7A+KFa75wI47 Qlu0v464y8l3/3GbEqc002UGstXMVrjBHSQQ6GmuH7F6onjvXnCBIirQDE6UJeA0zWGik1W5adC5q i4mX0H3rg93pbneuNqww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tjwki-00000003nX7-2lc9; Mon, 17 Feb 2025 08:45:20 +0000 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tjwke-00000003nPV-0dmK for linux-riscv@lists.infradead.org; Mon, 17 Feb 2025 08:45:17 +0000 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-38f2c4382d1so1468856f8f.0 for ; Mon, 17 Feb 2025 00:45:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1739781914; x=1740386714; 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; bh=tUiohrMXynF4IhELzrFmGh0geLQ0Ng2lOgwpKuwejQg=; b=iiZ5u8Rfw8UV5cc/zYOwdNTA94g/jUOxGiorYpdnbmQNUlGHj64atzHqNYp1nX/ldK jydg6M23jCxjLFc5uflf32Jx2rkesJ0Tp9Dw6SM/bRstITPFjCfofbPSOt6Oje22HNUB q6OBfGJz+J+9qrLdjhWVDZc5+NVi8B7BmwxZ5oJP6Es7ByrbpzTcmolFMmXKKNgTJacm eCEMhO61G3MMjaZ4pkdvOFV5Vm6DpQD4CV1WVOfsHel5huXTYZPGKYUXeOOLdIRHjlg9 tZ3WzSrbuifFST//REiDbZGfe0OgkfFtLLzjmdaxxAdjb9hH6rPKkuv8YIru6vhKRNwJ VepQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739781914; x=1740386714; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tUiohrMXynF4IhELzrFmGh0geLQ0Ng2lOgwpKuwejQg=; b=Fjn1xTnzE1Vexo2KZ1Am8ZL4SfHRdQIZ63BvX7cMDwTwEvRVmVT7EPfOupIyfgI8OY dFPk3QG+38AFqyCG13K37vOKnRDT3MKOqe92CkG4G2DQodFshSJXBCBOlSOjnQQXXGku tHB02I1raUGMFL0MZ95UebmVqqBFP1si1VeTEtiV9XBFZhrNv61UtTitcZTjkuUCP04g 7XFryuyhOsMAq6GfOLNCJODmY44uZTLN7G90euzyXY9lFzfQjRA6YYsWEEKOiV+BuPri PSFYGmD68WhkupUyVpxQrexKIQ+Rc0bQPjuY4H+czmeCfi9aHAUjMf3+6Z+CFS6UumI1 3Q2w== X-Forwarded-Encrypted: i=1; AJvYcCViiHvKDajtIGpOmb5AvKJlFkPpP4/R+dkpw18pUthFr4EZZK+ljeXQSZ5uQ+cKsW7sejSs+AWPyDfC7g==@lists.infradead.org X-Gm-Message-State: AOJu0Yzjc9kMOWu9lNqsLHlpI6U2JkMfWK49XnEJ0fLzffkH1o1EKJAM u3iuK4WCi/V3d5RPFdWXmbIzb8EehmvhzhZJprFaeyUVaUOZAJjFNZ9+I2cVFsoa4pGREEMSIc4 I X-Gm-Gg: ASbGncuxv1Vhl9bL8z/bEaYKwICluQuylHYkCaZGsQlOYGRHLoLWGkXhi9BHHlH3SsS Xwl72IOStrSZ8rxc/pHhj8KJkgY6xxMY49v8H/mpio/W+ifSXCl9UPWCl6zzF4TBIOGtWeh1LHq sxzSkNxmmBObNN85fAA2Tbxtz80Eu+cFFasltaFr+PrmbLbHejObKtNE67HLxeMIKeC3gtDnRr4 GPora6u7kRdPMGyB7GlkOjbvA6dy21m0GFHg4TC2gx9FEMryOmhrBTw0J3tFWuCg598JK7r7ZW0 6Q4= X-Google-Smtp-Source: AGHT+IELeloq+YGu7jeWFNzVErrIwYQyO3BkZOQqDo2NauOC4G+f26bXlMmY85lR2Dzf3d+ItLp71w== X-Received: by 2002:a5d:64a7:0:b0:38d:ae1e:2f3c with SMTP id ffacd0b85a97d-38f33c2886emr8174108f8f.25.1739781914336; Mon, 17 Feb 2025 00:45:14 -0800 (PST) Received: from localhost ([2a02:8308:a00c:e200::766e]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38f258b4491sm11387499f8f.7.2025.02.17.00.45.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Feb 2025 00:45:14 -0800 (PST) From: Andrew Jones To: kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Cc: anup@brainfault.org, atishp@atishpatra.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, cleger@rivosinc.com Subject: [PATCH 5/5] riscv: KVM: Fix SBI sleep_type use Date: Mon, 17 Feb 2025 09:45:12 +0100 Message-ID: <20250217084506.18763-12-ajones@ventanamicro.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250217084506.18763-7-ajones@ventanamicro.com> References: <20250217084506.18763-7-ajones@ventanamicro.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250217_004516_266215_76377CEE X-CRM114-Status: GOOD ( 10.98 ) 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: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org The spec says sleep_type is 32 bits wide and "In case the data is defined as 32bit wide, higher privilege software must ensure that it only uses 32 bit data." Mask off upper bits of sleep_type before using it. Fixes: 023c15151fbb ("RISC-V: KVM: Add SBI system suspend support") Signed-off-by: Andrew Jones Reviewed-by: Anup Patel --- arch/riscv/kvm/vcpu_sbi_system.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/riscv/kvm/vcpu_sbi_system.c b/arch/riscv/kvm/vcpu_sbi_system.c index 5d55e08791fa..bc0ebba89003 100644 --- a/arch/riscv/kvm/vcpu_sbi_system.c +++ b/arch/riscv/kvm/vcpu_sbi_system.c @@ -4,6 +4,7 @@ */ #include +#include #include #include @@ -19,7 +20,7 @@ static int kvm_sbi_ext_susp_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, switch (funcid) { case SBI_EXT_SUSP_SYSTEM_SUSPEND: - if (cp->a0 != SBI_SUSP_SLEEP_TYPE_SUSPEND_TO_RAM) { + if (lower_32_bits(cp->a0) != SBI_SUSP_SLEEP_TYPE_SUSPEND_TO_RAM) { retdata->err_val = SBI_ERR_INVALID_PARAM; return 0; }