mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 09:34:12 +08:00
powerpc/irq: Remove IRQF_DISABLED
Since commit [e58aa3d2
: genirq: Run irq handlers with interrupts disabled], We run all interrupt handlers with interrupts disabled and we even check and yell when an interrupt handler returns with interrupts enabled (see commit [b738a50a
: genirq: Warn when handler enables interrupts]). So now this flag is a NOOP and can be removed. Signed-off-by: Yong Zhang <yong.zhang0@gmail.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Geoff Levand <geoff@infradead.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
1c8ee73395
commit
a3a9f3b47d
@ -108,10 +108,10 @@ static int fd_request_irq(void)
|
||||
{
|
||||
if (can_use_virtual_dma)
|
||||
return request_irq(FLOPPY_IRQ, floppy_hardint,
|
||||
IRQF_DISABLED, "floppy", NULL);
|
||||
0, "floppy", NULL);
|
||||
else
|
||||
return request_irq(FLOPPY_IRQ, floppy_interrupt,
|
||||
IRQF_DISABLED, "floppy", NULL);
|
||||
0, "floppy", NULL);
|
||||
}
|
||||
|
||||
static int vdma_dma_setup(char *addr, unsigned long size, int mode, int io)
|
||||
|
@ -15,8 +15,8 @@
|
||||
#define DEFAULT_PRIORITY 5
|
||||
|
||||
/*
|
||||
* Mark IPIs as higher priority so we can take them inside interrupts that
|
||||
* arent marked IRQF_DISABLED
|
||||
* Mark IPIs as higher priority so we can take them inside interrupts
|
||||
* FIXME: still true now?
|
||||
*/
|
||||
#define IPI_PRIORITY 4
|
||||
|
||||
|
@ -187,7 +187,7 @@ int smp_request_message_ipi(int virq, int msg)
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
err = request_irq(virq, smp_ipi_action[msg], IRQF_DISABLED|IRQF_PERCPU,
|
||||
err = request_irq(virq, smp_ipi_action[msg], IRQF_PERCPU,
|
||||
smp_ipi_name[msg], 0);
|
||||
WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
|
||||
virq, smp_ipi_name[msg], err);
|
||||
|
@ -230,7 +230,7 @@ static int __init beat_register_event(void)
|
||||
}
|
||||
ev->virq = virq;
|
||||
|
||||
rc = request_irq(virq, ev->handler, IRQF_DISABLED,
|
||||
rc = request_irq(virq, ev->handler, 0,
|
||||
ev->typecode, NULL);
|
||||
if (rc != 0) {
|
||||
printk(KERN_ERR "Beat: failed to request virtual IRQ"
|
||||
|
@ -514,7 +514,7 @@ static __init int celleb_setup_pciex(struct device_node *node,
|
||||
virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
|
||||
oirq.size);
|
||||
if (request_irq(virq, pciex_handle_internal_irq,
|
||||
IRQF_DISABLED, "pciex", (void *)phb)) {
|
||||
0, "pciex", (void *)phb)) {
|
||||
pr_err("PCIEXC:Failed to request irq\n");
|
||||
goto error;
|
||||
}
|
||||
|
@ -412,8 +412,7 @@ static void cell_iommu_enable_hardware(struct cbe_iommu *iommu)
|
||||
IIC_IRQ_IOEX_ATI | (iommu->nid << IIC_IRQ_NODE_SHIFT));
|
||||
BUG_ON(virq == NO_IRQ);
|
||||
|
||||
ret = request_irq(virq, ioc_interrupt, IRQF_DISABLED,
|
||||
iommu->name, iommu);
|
||||
ret = request_irq(virq, ioc_interrupt, 0, iommu->name, iommu);
|
||||
BUG_ON(ret);
|
||||
|
||||
/* set the IOC segment table origin register (and turn on the iommu) */
|
||||
|
@ -392,7 +392,7 @@ static int __init cbe_init_pm_irq(void)
|
||||
}
|
||||
|
||||
rc = request_irq(irq, cbe_pm_irq,
|
||||
IRQF_DISABLED, "cbe-pmu-0", NULL);
|
||||
0, "cbe-pmu-0", NULL);
|
||||
if (rc) {
|
||||
printk("ERROR: Request for irq on node %d failed\n",
|
||||
node);
|
||||
|
@ -442,8 +442,7 @@ static int spu_request_irqs(struct spu *spu)
|
||||
snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0",
|
||||
spu->number);
|
||||
ret = request_irq(spu->irqs[0], spu_irq_class_0,
|
||||
IRQF_DISABLED,
|
||||
spu->irq_c0, spu);
|
||||
0, spu->irq_c0, spu);
|
||||
if (ret)
|
||||
goto bail0;
|
||||
}
|
||||
@ -451,8 +450,7 @@ static int spu_request_irqs(struct spu *spu)
|
||||
snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1",
|
||||
spu->number);
|
||||
ret = request_irq(spu->irqs[1], spu_irq_class_1,
|
||||
IRQF_DISABLED,
|
||||
spu->irq_c1, spu);
|
||||
0, spu->irq_c1, spu);
|
||||
if (ret)
|
||||
goto bail1;
|
||||
}
|
||||
@ -460,8 +458,7 @@ static int spu_request_irqs(struct spu *spu)
|
||||
snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2",
|
||||
spu->number);
|
||||
ret = request_irq(spu->irqs[2], spu_irq_class_2,
|
||||
IRQF_DISABLED,
|
||||
spu->irq_c2, spu);
|
||||
0, spu->irq_c2, spu);
|
||||
if (ret)
|
||||
goto bail2;
|
||||
}
|
||||
|
@ -272,7 +272,6 @@ static struct irqaction xmon_action = {
|
||||
|
||||
static struct irqaction gatwick_cascade_action = {
|
||||
.handler = gatwick_action,
|
||||
.flags = IRQF_DISABLED,
|
||||
.name = "cascade",
|
||||
};
|
||||
|
||||
|
@ -200,7 +200,7 @@ static int psurge_secondary_ipi_init(void)
|
||||
|
||||
if (psurge_secondary_virq)
|
||||
rc = request_irq(psurge_secondary_virq, psurge_ipi_intr,
|
||||
IRQF_DISABLED|IRQF_PERCPU, "IPI", NULL);
|
||||
IRQF_PERCPU, "IPI", NULL);
|
||||
|
||||
if (rc)
|
||||
pr_err("Failed to setup secondary cpu IPI\n");
|
||||
@ -408,7 +408,7 @@ static int __init smp_psurge_kick_cpu(int nr)
|
||||
|
||||
static struct irqaction psurge_irqaction = {
|
||||
.handler = psurge_ipi_intr,
|
||||
.flags = IRQF_DISABLED|IRQF_PERCPU,
|
||||
.flags = IRQF_PERCPU,
|
||||
.name = "primary IPI",
|
||||
};
|
||||
|
||||
|
@ -825,7 +825,7 @@ static int ps3_probe_thread(void *data)
|
||||
|
||||
spin_lock_init(&dev.lock);
|
||||
|
||||
res = request_irq(irq, ps3_notification_interrupt, IRQF_DISABLED,
|
||||
res = request_irq(irq, ps3_notification_interrupt, 0,
|
||||
"ps3_notification", &dev);
|
||||
if (res) {
|
||||
pr_err("%s:%u: request_irq failed %d\n", __func__, __LINE__,
|
||||
|
@ -800,8 +800,6 @@ static void mpic_end_ipi(struct irq_data *d)
|
||||
* IPIs are marked IRQ_PER_CPU. This has the side effect of
|
||||
* preventing the IRQ_PENDING/IRQ_INPROGRESS logic from
|
||||
* applying to them. We EOI them late to avoid re-entering.
|
||||
* We mark IPI's with IRQF_DISABLED as they must run with
|
||||
* irqs disabled.
|
||||
*/
|
||||
mpic_eoi(mpic);
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ static int __init ppc4xx_l2c_probe(void)
|
||||
}
|
||||
|
||||
/* Install error handler */
|
||||
if (request_irq(irq, l2c_error_handler, IRQF_DISABLED, "L2C", 0) < 0) {
|
||||
if (request_irq(irq, l2c_error_handler, 0, "L2C", 0) < 0) {
|
||||
printk(KERN_ERR "Cannot install L2C error handler"
|
||||
", cache is not enabled\n");
|
||||
of_node_put(np);
|
||||
|
@ -134,11 +134,10 @@ static void xics_request_ipi(void)
|
||||
BUG_ON(ipi == NO_IRQ);
|
||||
|
||||
/*
|
||||
* IPIs are marked IRQF_DISABLED as they must run with irqs
|
||||
* disabled, and PERCPU. The handler was set in map.
|
||||
* IPIs are marked IRQF_PERCPU. The handler was set in map.
|
||||
*/
|
||||
BUG_ON(request_irq(ipi, icp_ops->ipi_action,
|
||||
IRQF_DISABLED|IRQF_PERCPU, "IPI", NULL));
|
||||
IRQF_PERCPU, "IPI", NULL));
|
||||
}
|
||||
|
||||
int __init xics_smp_probe(void)
|
||||
|
Loading…
Reference in New Issue
Block a user