From nobody Sat Nov 15 17:50:04 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1595656038; cv=none; d=zohomail.com; s=zohoarc; b=FPikuyuwKEBYLLNYOkEu24DqTegxrhuKoSpeEBzqaVbFg7rFzlmjR+AHEMuh9SYff7WyR78Tu+q94n3A2X9SEols1H3uBI8/Ax/pGI6rJPVSGcm5d2QOdcAf5Kj3NhtuGx+9HVbeJm7RSxMWFWGDDpM7pOzQ6cIbszQUTxU2pcI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1595656038; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=nDjs8ao0bwKmF5L7WaJYy5LjZysH86haciu9B+gD+NM=; b=Q/XaQxsjLhfJlmRnpoK2IUZ2Td+3rRWHvpTO6shb//ul3aQgT9zyDok0CeN1bvpvcKFyOaJq+U9FPF/1YlJ3M2y1vULL9vlw2PDBr2XpHD9i7jHUUJ2nWa7rdjFbjuCFQMTUBaAtv/Vaede8T2kewTPK8zw9ny8I4E5hDd7aBb8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1595656038028481.84510672054114; Fri, 24 Jul 2020 22:47:18 -0700 (PDT) Received: from localhost ([::1]:59330 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jzD1g-00076r-UV for importer@patchew.org; Sat, 25 Jul 2020 01:47:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47992) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jzCz4-0003ui-A7; Sat, 25 Jul 2020 01:44:34 -0400 Received: from esa6.hgst.iphmx.com ([216.71.154.45]:4667) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jzCz2-00054k-J8; Sat, 25 Jul 2020 01:44:34 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 25 Jul 2020 13:44:32 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jul 2020 22:32:45 -0700 Received: from cnf007830.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.58.124]) by uls-op-cesaip02.wdc.com with ESMTP; 24 Jul 2020 22:44:31 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1595655873; x=1627191873; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=IXjQaYSKp/KRab7qi0wsM5kCyfMdF4d7gzReheNEn6M=; b=f7xnuxAadjPhsk5ARb55xraUf8Npklx2ojDLz4yltY3uCPrwZdXCFP4s Yl920I2T+LuQH8yaxHj7IvLZFOUkWxdePNrnV0fGuYHwsIFCy0JgRKWck /qfdh5Eoqw7lSsVONXAVsh9ybAtlCS0d09grYJwUGULKgEOaVnM16/F7l SKFvsecOdSZp9tbPnC7cg261WzphqICyhgTUpyNp+9SAoPZUFNaRfypJQ yYknHowBd+edSipf5jq1VC9o3ef49sED92hz2B5ezSM3HNPtHAKRqYlBT mkQnbHe3t5BWcljmw3OMok0VHL5RG62ivD9tKcZVsCfCL+dRwSaXQ1Fj4 g==; IronPort-SDR: NyR4QwrnUdXkSnZ5RcNW4M4IfmzIcV3fD+KrCo+q8nVQd0PS+FFmwx4owgQh83UpfPtEvO6CLT mtJcTyJvDHtEC1IOQoJUPIeMHi97j2RH0GML0wg9FvZH02LzXaLR5Ot2yQd5Xr8JEBh71+qPTW 67rvdWCuzukZI3Px7R0lC5PajtKf14zN0nLC6SRXyKptYZQkzDbyqCd5LbjjuU1jr5beOy8bvI hN2AanuZZFlX0L7lNxhf6bWbCKU8EzP+WqKAe6mG9aN+JbwBPjr6rbok77flPwXCW32smz/Usv bjE= X-IronPort-AV: E=Sophos;i="5.75,392,1589212800"; d="scan'208";a="144611254" IronPort-SDR: YmBQGBCbEYcIZ4vQhZkUgdREXquX7Jyap0HuHmGwLa6hJjCdu+GXLLsMqHbjDeEnXJTzKxoDgi vliSsUdDGI3suhbMlM7u/nMIqt17ppsFY= IronPort-SDR: zDMKS1vp1ZUrUZkzrts89+KXoclUMYL6tKC8DNGylqbCFiiY+mUEIerUE3L08+uYt8LMXZp8kT y13TFJJRJzlw== WDCIronportException: Internal From: Alistair Francis To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Subject: [PATCH v1 3/3] hw/intc: ibex_plic: Honour source priorities Date: Fri, 24 Jul 2020 22:34:45 -0700 Message-Id: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.71.154.45; envelope-from=prvs=46842bc30=alistair.francis@wdc.com; helo=esa6.hgst.iphmx.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/25 01:44:23 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair.francis@wdc.com, palmer@dabbelt.com, alistair23@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This patch follows what commit aa4d30f6618dc "riscv: plic: Honour source priorities" does and ensures that the highest priority interrupt will be serviced first. Signed-off-by: Alistair Francis Cc: Jessica Clarke Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/intc/ibex_plic.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/hw/intc/ibex_plic.c b/hw/intc/ibex_plic.c index 669247ef08..f49fa67c91 100644 --- a/hw/intc/ibex_plic.c +++ b/hw/intc/ibex_plic.c @@ -57,6 +57,8 @@ static void ibex_plic_irqs_set_pending(IbexPlicState *s, = int irq, bool level) static bool ibex_plic_irqs_pending(IbexPlicState *s, uint32_t context) { int i; + uint32_t max_irq =3D 0; + uint32_t max_prio =3D s->threshold; =20 for (i =3D 0; i < s->pending_num; i++) { uint32_t irq_num =3D ctz64(s->pending[i]) + (i * 32); @@ -66,14 +68,17 @@ static bool ibex_plic_irqs_pending(IbexPlicState *s, ui= nt32_t context) continue; } =20 - if (s->priority[irq_num] > s->threshold) { - if (!s->claim) { - s->claim =3D irq_num; - } - return true; + if (s->priority[irq_num] > max_prio) { + max_irq =3D irq_num; + max_prio =3D s->priority[irq_num]; } } =20 + if (max_irq) { + s->claim =3D max_irq; + return true; + } + return false; } =20 --=20 2.27.0