summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorXu Lu <luxu.kernel@bytedance.com>2026-01-04 21:34:57 +0800
committerAnup Patel <anup@brainfault.org>2026-02-06 19:05:34 +0530
commit376e2f8cca2816c489a9196e65cc904d1a907fd2 (patch)
tree02c454b2ed0325bea19a1f245e0986dccc027102 /include
parented7ae7a34bea06f81270866dfbe619a22518666b (diff)
irqchip/riscv-imsic: Adjust the number of available guest irq files
Currently, KVM assumes the minimum of implemented HGEIE bits and "BIT(gc->guest_index_bits) - 1" as the number of guest files available across all CPUs. This will not work when CPUs have different number of guest files because KVM may incorrectly allocate a guest file on a CPU with fewer guest files. To address above, during initialization, calculate the number of available guest interrupt files according to MMIO resources and constrain the number of guest interrupt files that can be allocated by KVM. Signed-off-by: Xu Lu <luxu.kernel@bytedance.com> Reviewed-by: Nutty Liu <nutty.liu@hotmail.com> Reviewed-by: Anup Patel <anup@brainfault.org> Acked-by: Thomas Gleixner <tglx@kernel.org> Link: https://lore.kernel.org/r/20260104133457.57742-1-luxu.kernel@bytedance.com Signed-off-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/irqchip/riscv-imsic.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/irqchip/riscv-imsic.h b/include/linux/irqchip/riscv-imsic.h
index 7f3ff5c5ea53..4b348836de7a 100644
--- a/include/linux/irqchip/riscv-imsic.h
+++ b/include/linux/irqchip/riscv-imsic.h
@@ -68,6 +68,9 @@ struct imsic_global_config {
/* Number of guest interrupt identities */
u32 nr_guest_ids;
+ /* Number of guest interrupt files per core */
+ u32 nr_guest_files;
+
/* Per-CPU IMSIC addresses */
struct imsic_local_config __percpu *local;
};