From nobody Sat Jul 25 04:31:00 2026 Received: from cstnet.cn (smtp81.cstnet.cn [159.226.251.81]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2DD219DF62 for ; Sat, 18 Jul 2026 03:51:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.81 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784346723; cv=none; b=KY+MNz7mgQAJrjaJXS81uBk3CUUiRSlE+ZIgTEJOhDr042sL54K4w+XBojqIcnPc7QhyTmJ/B/Tw0RJaJFaNZTaBE4q1+2ff5iWsVVkx15++ctUaIBiwvTSvuPiZRvXppl7EutJ+o4256ZCbI6CvEuLynsM9hXFibobvtW6Br1M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784346723; c=relaxed/simple; bh=KDNQCOumQfN4E3rCmefFBQ8b5us9K6s/bOYFlvj1vFs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=eKo6eLjD7FxUW6H12RaUEQYaPmtGbGVMe65wTakd6HIuJrg8AYZcgrmtLB2EZuwCmdiWss9S7RYgtdmygCr2BFrddyJIm1B0kWgs2npOIFx0oHWx10ULBvfMRqBwJoDUzh+HxzemABj+NW6435wQKuUUrHJe7zYGLiDmDSJsEYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=iscas.ac.cn; spf=pass smtp.mailfrom=iscas.ac.cn; arc=none smtp.client-ip=159.226.251.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=iscas.ac.cn Received: from localhost.localdomain (unknown [111.196.245.140]) by APP-03 (Coremail) with SMTP id rQCowACnc0FO+FpqwtwtAA--.37348S2; Sat, 18 Jul 2026 11:51:42 +0800 (CST) From: Pengpeng Hou To: Anup Patel Cc: Pengpeng Hou , Thomas Gleixner , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] irqchip/riscv-imsic: Fix MMIO regset lookup loop bound Date: Sat, 18 Jul 2026 11:51:41 +0800 Message-ID: <20260718033646.001.7e022554-caplitmus-rv@iscas.ac.cn> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: rQCowACnc0FO+FpqwtwtAA--.37348S2 X-Coremail-Antispam: 1UD129KBjvJXoW7Gr1DAF4kJryUAw47XrWrZrb_yoW8JryUpF W5Wr9akrW7uw4jqr13Aa1vva4rGas0vrZxKFW8Jw4fu34qvFyDXFn8K34rZw4UJr42934Y gFWYga48W3WUAFUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUU9F14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26r4j6ryUM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j 6F4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr 1j6F4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv 7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r 1j6r4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02 628vn2kIc2xKxwCY1x0262kKe7AKxVWUtVW8ZwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4 IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1r MI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJV WUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j 6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_GrUvcS sGvfC2KfnxnUUI43ZEXa7VUbGQ6JUUUUU== X-CM-SenderInfo: pshqw1xhqjqxpvfd2hldfou0/ Content-Type: text/plain; charset="utf-8" nr_mmios is the number of elements in the MMIO resource arrays, while j is the index that advances through them. The loop currently tests the nonzero count on every iteration. If no region contains reloff, it reads past mmios before reaching the existing not-found check. Compare j with nr_mmios. This preserves successful lookups and lets the not-found path handle an offset beyond the listed regions. Fixes: 21a8f8a0eb35 ("irqchip: Add RISC-V incoming MSI controller early dri= ver") Signed-off-by: Pengpeng Hou Reviewed-by: Anup Patel --- drivers/irqchip/irq-riscv-imsic-state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-riscv-imsic-state.c b/drivers/irqchip/irq-= riscv-imsic-state.c index b8d1bbbf42f73..008dfcf343e53 100644 --- a/drivers/irqchip/irq-riscv-imsic-state.c +++ b/drivers/irqchip/irq-riscv-imsic-state.c @@ -896,7 +896,7 @@ int __init imsic_setup_state(struct fwnode_handle *fwno= de, void *opaque) index =3D nr_mmios; reloff =3D i * BIT(global->guest_index_bits) * IMSIC_MMIO_PAGE_SZ; - for (j =3D 0; nr_mmios; j++) { + for (j =3D 0; j < nr_mmios; j++) { if (reloff < resource_size(&mmios[j])) { index =3D j; break; --=20 2.43.0