[PATCH v2 6/6] lib: sbi_irqchip: fix MSI EIID gap and tail allocation logic in register_msi
Anup Patel
anup.patel at oss.qualcomm.com
Thu Jul 9 01:38:08 PDT 2026
On Thu, Jun 18, 2026 at 12:16 AM Pawandeep Oza
<pawandeep.oza at oss.qualcomm.com> wrote:
>
> Fix sbi_irqchip_register_msi() that prevented contiguous EIID allocation:
>
> - Gap check condition was inverted: the original `h->first_hwirq -
> hwirq < num_hwirq` incorrectly set `found = true` when the gap was
> too small to fit num_hwirq entries. Correct to `>= num_hwirq` so
> allocation only proceeds when sufficient space exists between
> registered handlers.
>
> - Tail-space check `!found && !hwirq` never triggered after iteration
> Replace with `(chip->num_hwirq - hwirq) >= num_hwirq` to correctly
> allocate if handler list is empty.
>
> Fixes: 79e63bc8348d ("irqchip: add sbi_irqchip_register_msi support")
>
> Signed-off-by: Oza Pawandeep <pawandeep.oza at oss.qualcomm.com>
LGTM.
Reviewed-by: Anup Patel <anup at brainfault.org>
> ---
> lib/sbi/sbi_irqchip.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/sbi/sbi_irqchip.c b/lib/sbi/sbi_irqchip.c
> index 49fa4806..a4480751 100644
> --- a/lib/sbi/sbi_irqchip.c
> +++ b/lib/sbi/sbi_irqchip.c
> @@ -354,7 +354,7 @@ int sbi_irqchip_register_msi(struct sbi_irqchip_device *chip, u32 num_hwirq,
> if (h->first_hwirq <= hwirq && hwirq < (h->first_hwirq + h->num_hwirq)) {
> hwirq = h->first_hwirq + h->num_hwirq;
> } else if (hwirq < h->first_hwirq) {
> - if (h->first_hwirq - hwirq < num_hwirq) {
> + if (h->first_hwirq - hwirq >= num_hwirq) {
> found = true;
> break;
> } else {
> @@ -362,7 +362,7 @@ int sbi_irqchip_register_msi(struct sbi_irqchip_device *chip, u32 num_hwirq,
> }
> }
> }
> - if (!found && !hwirq)
> + if (!found && (chip->num_hwirq - hwirq) >= num_hwirq)
> found = true;
> if (!found)
> return SBI_ENOSPC;
> --
> 2.43.0
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
Thanks,
Anup
More information about the opensbi
mailing list