2020-05-12 17:28:48

by Atish Patra

[permalink] [raw]
Subject: [PATCH] irqchip/sifive-plic: Remove incorrect requirement about number of irq contexts

From: "Wesley W. Terpstra" <[email protected]>

A PLIC may not be connected to all the cores. In that case, nr_contexts
may be less than num_possible_cpus. This requirement is only valid a single
PLIC is the only interrupt controller for the whole system.

Signed-off-by: Atish Patra <[email protected]>
[Atish: Modified the commit text]
Signed-off-by: "Wesley W. Terpstra" <[email protected]>
---
drivers/irqchip/irq-sifive-plic.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
index d0a71febdadc..822e074c0600 100644
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -301,8 +301,6 @@ static int __init plic_init(struct device_node *node,
nr_contexts = of_irq_count(node);
if (WARN_ON(!nr_contexts))
goto out_iounmap;
- if (WARN_ON(nr_contexts < num_possible_cpus()))
- goto out_iounmap;

error = -ENOMEM;
priv->irqdomain = irq_domain_add_linear(node, nr_irqs + 1,
--
2.26.2


2020-05-13 21:38:11

by Palmer Dabbelt

[permalink] [raw]
Subject: Re: [PATCH] irqchip/sifive-plic: Remove incorrect requirement about number of irq contexts

On Tue, 12 May 2020 10:26:36 PDT (-0700), Atish Patra wrote:
> From: "Wesley W. Terpstra" <[email protected]>
>
> A PLIC may not be connected to all the cores. In that case, nr_contexts
> may be less than num_possible_cpus. This requirement is only valid a single
> PLIC is the only interrupt controller for the whole system.
>
> Signed-off-by: Atish Patra <[email protected]>
> [Atish: Modified the commit text]
> Signed-off-by: "Wesley W. Terpstra" <[email protected]>
> ---
> drivers/irqchip/irq-sifive-plic.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
> index d0a71febdadc..822e074c0600 100644
> --- a/drivers/irqchip/irq-sifive-plic.c
> +++ b/drivers/irqchip/irq-sifive-plic.c
> @@ -301,8 +301,6 @@ static int __init plic_init(struct device_node *node,
> nr_contexts = of_irq_count(node);
> if (WARN_ON(!nr_contexts))
> goto out_iounmap;
> - if (WARN_ON(nr_contexts < num_possible_cpus()))
> - goto out_iounmap;
>
> error = -ENOMEM;
> priv->irqdomain = irq_domain_add_linear(node, nr_irqs + 1,

Reviewed-by: Palmer Dabbelt <[email protected]>
Acked-by: Palmer Dabbelt <[email protected]>

I'm assuming this is going through the irqchip tree.

Thanks!

Subject: [tip: irq/core] irqchip/sifive-plic: Remove incorrect requirement about number of irq contexts

The following commit has been merged into the irq/core branch of tip:

Commit-ID: 82f2202ddc97490994fad0dbfec04a014fa5163d
Gitweb: https://git.kernel.org/tip/82f2202ddc97490994fad0dbfec04a014fa5163d
Author: Wesley W. Terpstra <[email protected]>
AuthorDate: Tue, 12 May 2020 10:26:36 -07:00
Committer: Marc Zyngier <[email protected]>
CommitterDate: Mon, 18 May 2020 10:28:30 +01:00

irqchip/sifive-plic: Remove incorrect requirement about number of irq contexts

A PLIC may not be connected to all the cores. In that case, nr_contexts
may be less than num_possible_cpus. This requirement is only valid a single
PLIC is the only interrupt controller for the whole system.

Signed-off-by: Atish Patra <[email protected]>
Signed-off-by: "Wesley W. Terpstra" <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Reviewed-by: Palmer Dabbelt <[email protected]>
Acked-by: Palmer Dabbelt <[email protected]>
Link: https://lore.kernel.org/r/[email protected]

[Atish: Modified the commit text]
---
drivers/irqchip/irq-sifive-plic.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
index d0a71fe..822e074 100644
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -301,8 +301,6 @@ static int __init plic_init(struct device_node *node,
nr_contexts = of_irq_count(node);
if (WARN_ON(!nr_contexts))
goto out_iounmap;
- if (WARN_ON(nr_contexts < num_possible_cpus()))
- goto out_iounmap;

error = -ENOMEM;
priv->irqdomain = irq_domain_add_linear(node, nr_irqs + 1,