From patchwork Mon Apr 15 06:49:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yong-Xuan Wang X-Patchwork-Id: 1923584 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=VvjQ7QaO; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=sifive.com header.i=@sifive.com header.a=rsa-sha256 header.s=google header.b=az4Rbfj3; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VHySw0GPWz1yYB for ; Mon, 15 Apr 2024 16:49:20 +1000 (AEST) 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:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id: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:In-Reply-To:References: List-Owner; bh=CgeRQnbEPPuBKIIy0li8GyETDhCNSNuiF3QB7ZUVQYQ=; b=VvjQ7QaO/wrwlJ MgrkiMKgnztCBiLXoB64sTUvzZMJmnDlLuhUyqazHUUerWGJ4PGN1UerEXRAYlXKaedcxd+0kpPZN 3VrveL7HrY8gX75sJ4zi5h+v/ocawg2YHunTfD9bhu7u9/8Y704tBtTLRrNaRvtLGHkMZmA7tYfbS OpF+wCgmDasG46L2UHNVJD2D6Z53vGrP28Z+jwTASZ0IITMoyAA6QzZNKspgzraU1jWNg3e3YerH3 RfBSmRstpUB6K8ReCrNTdwCbuOtOspdc6U2EoPxzX4BJcDM6HEvWfx3cw0V5EamwsLoho5zoGNziQ oNicdgmbm9zoW9gYa73Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rwG9W-00000007DQ4-1rdk; Mon, 15 Apr 2024 06:49:18 +0000 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rwG9T-00000007DMa-0OFl for kvm-riscv@lists.infradead.org; Mon, 15 Apr 2024 06:49:16 +0000 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-6eff2be3b33so465148b3a.2 for ; Sun, 14 Apr 2024 23:49:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1713163750; x=1713768550; darn=lists.infradead.org; h=message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DErZWi0JRkT/kr88yhBbwPniJ+j3I4IxiglXEXSEUgM=; b=az4Rbfj3pqaGFqLFkClt8In5jxXlswRmOX8vD+hwte/tybvC6Z5XT11RrTr2/gQ71Y oNeMfgs8YgNMDKF5mJz5IKBSCrUhInUw83xfvGCH3i5WKO6zFbU0sJZxxBuebbneHh0w BKBYgWS5mBxQjm/mQ9KnlEHMsMtntOpVFKkQH15LoMKR/7EC0J2kO/sJfefRizxw74mk rKRZlfKNX5wKjTOi2xwWepPme7ZdfhmMMW6f1St1uUp0B6qYZD3I3gkxd3VH5bbsHzNe X+GPNN+uBUceqn0ASLMGxtFLg2oVp/pqcKbuIHDm1uKblsD9rrCH7rMm16yTzBQfNMso L/5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713163750; x=1713768550; h=message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DErZWi0JRkT/kr88yhBbwPniJ+j3I4IxiglXEXSEUgM=; b=jvNDvYyApSxqwhcExS3MEYE8pbKbpQ4Wc4n5rNiv8/Sj8sB/3Fcry5LpM5B3ctWCOh 97lV4gxjFkyP5vrksqKXdXFBH5i2zmLT9gB6Ygf3n/z3D+p8ptt0Ndh6BjTyM/RVdLVh jqpGLj3bFTmS/hhFLXLXVdncnFJxYvWjhVzBknD4+uxfCY/B9cg/Re5b5Pf83y3/0daD /vMLZDJqlTBzRWbQSFr8pfp8JX3PbHgHWNGryHKsWwoyy1h1ToasxStHYXRhRP0NKoNO 7OOWLYe2H6lWNcgnUPSNQyIJxbGQrFiiHkrDYjR7VbIwrZLjkHauK2sk5lffPHsvcPhy rW1w== X-Forwarded-Encrypted: i=1; AJvYcCV8Kp9YPU5VQO8Y2i0SXJt1Zi9Xrtcw8OsK88DfzNtJ323oXqyJcuCMlP58ej+6W0AjN08/xrkmXo+RbiZEmLEVC4DWQ59Mbm9kY7FfJw== X-Gm-Message-State: AOJu0YzwJbdF1QgZIM/OSMBBJtsqTGpccQ3M0NS+XJj2qLRENvXHFkbY FwceN12+3Uagi+TmHETQxigFSLyryJcDjiHILyFrSH/u1+iJsznjrzT0bBsCriQ= X-Google-Smtp-Source: AGHT+IGn1W1xzHSGwkwC4Rv3qdVaNOqbbshITL3vRArjugmKJXVhxAVawHtGIDLdUvZYMVcufJ5VDQ== X-Received: by 2002:a05:6a21:6da2:b0:1a9:4055:6dca with SMTP id wl34-20020a056a216da200b001a940556dcamr9192611pzb.40.1713163750420; Sun, 14 Apr 2024 23:49:10 -0700 (PDT) Received: from hsinchu26.internal.sifive.com (59-124-168-89.hinet-ip.hinet.net. [59.124.168.89]) by smtp.gmail.com with ESMTPSA id f18-20020a170902ce9200b001e421f98ebdsm7148962plg.280.2024.04.14.23.49.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Apr 2024 23:49:10 -0700 (PDT) From: Yong-Xuan Wang To: linux-riscv@lists.infradead.org, kvm-riscv@lists.infradead.org Cc: greentime.hu@sifive.com, vincent.chen@sifive.com, Yong-Xuan Wang , Anup Patel , Atish Patra , Paul Walmsley , Palmer Dabbelt , Albert Ou , kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/1] RISC-V: KVM: No need to use mask when hart-index-bit is 0 Date: Mon, 15 Apr 2024 14:49:04 +0800 Message-Id: <20240415064905.25184-1-yongxuan.wang@sifive.com> X-Mailer: git-send-email 2.17.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240414_234915_314041_E2D4FE37 X-CRM114-Status: GOOD ( 10.85 ) X-Spam-Score: -0.2 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: When the maximum hart number within groups is 1, hart-index-bit is set to 0. Consequently, there is no need to restore the hart ID from IMSIC addresses and hart-index-bit settings. Currently, QEMU and [...] Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:42d listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 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: , MIME-Version: 1.0 Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org When the maximum hart number within groups is 1, hart-index-bit is set to 0. Consequently, there is no need to restore the hart ID from IMSIC addresses and hart-index-bit settings. Currently, QEMU and kvmtool do not pass correct hart-index-bit values when the maximum hart number is a power of 2, thereby avoiding this issue. Corresponding patches for QEMU and kvmtool will also be dispatched. Fixes: 89d01306e34d ("RISC-V: KVM: Implement device interface for AIA irqchip") Signed-off-by: Yong-Xuan Wang --- arch/riscv/kvm/aia_device.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/riscv/kvm/aia_device.c b/arch/riscv/kvm/aia_device.c index 0eb689351b7d..5cd407c6a8e4 100644 --- a/arch/riscv/kvm/aia_device.c +++ b/arch/riscv/kvm/aia_device.c @@ -237,10 +237,11 @@ static gpa_t aia_imsic_ppn(struct kvm_aia *aia, gpa_t addr) static u32 aia_imsic_hart_index(struct kvm_aia *aia, gpa_t addr) { - u32 hart, group = 0; + u32 hart = 0, group = 0; - hart = (addr >> (aia->nr_guest_bits + IMSIC_MMIO_PAGE_SHIFT)) & - GENMASK_ULL(aia->nr_hart_bits - 1, 0); + if (aia->nr_hart_bits) + hart = (addr >> (aia->nr_guest_bits + IMSIC_MMIO_PAGE_SHIFT)) & + GENMASK_ULL(aia->nr_hart_bits - 1, 0); if (aia->nr_group_bits) group = (addr >> aia->nr_group_shift) & GENMASK_ULL(aia->nr_group_bits - 1, 0);