Message ID | 20200521223500.834-1-valentin.schneider@arm.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | cc86432aa8cc5a81f99d79eea2a29099da694df3 |
Headers | show |
Series | irqchip/gic-v2, v3: Drop extra IRQ_NOAUTOEN setting for (E)PPIs | expand |
On Thu, 21 May 2020 23:35:00 +0100, Valentin Schneider wrote: > (E)PPIs are per-CPU interrupts, so we want each CPU to go and enable them > via enable_percpu_irq(); this also means we want IRQ_NOAUTOEN for them as > the autoenable would lead to calling irq_enable() instead of the more > appropriate irq_percpu_enable(). > > Calling irq_set_percpu_devid() is enough to get just that since it trickles > down to irq_set_percpu_devid_flags(), which gives us IRQ_NOAUTOEN (and a > few others). Setting IRQ_NOAUTOEN *again* right after this call is just > redundant, so don't do it. > > [...] Applied to irq/irqchip-next, thanks! [1/1] irqchip/gic-v2, v3: Drop extra IRQ_NOAUTOEN setting for (E)PPIs commit: cc86432aa8cc5a81f99d79eea2a29099da694df3 Cheers, M.
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index d7006ef18a0d..1ed0cf9c586f 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -1282,7 +1282,6 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, irq_set_percpu_devid(irq); irq_domain_set_info(d, irq, hw, chip, d->host_data, handle_percpu_devid_irq, NULL, NULL); - irq_set_status_flags(irq, IRQ_NOAUTOEN); break; case SPI_RANGE: diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c index 30ab623343d3..00de05abd3c3 100644 --- a/drivers/irqchip/irq-gic.c +++ b/drivers/irqchip/irq-gic.c @@ -982,7 +982,6 @@ static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, irq_set_percpu_devid(irq); irq_domain_set_info(d, irq, hw, &gic->chip, d->host_data, handle_percpu_devid_irq, NULL, NULL); - irq_set_status_flags(irq, IRQ_NOAUTOEN); } else { irq_domain_set_info(d, irq, hw, &gic->chip, d->host_data, handle_fasteoi_irq, NULL, NULL);
(E)PPIs are per-CPU interrupts, so we want each CPU to go and enable them via enable_percpu_irq(); this also means we want IRQ_NOAUTOEN for them as the autoenable would lead to calling irq_enable() instead of the more appropriate irq_percpu_enable(). Calling irq_set_percpu_devid() is enough to get just that since it trickles down to irq_set_percpu_devid_flags(), which gives us IRQ_NOAUTOEN (and a few others). Setting IRQ_NOAUTOEN *again* right after this call is just redundant, so don't do it. Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> --- drivers/irqchip/irq-gic-v3.c | 1 - drivers/irqchip/irq-gic.c | 1 - 2 files changed, 2 deletions(-)