Skip to content

Commit 5c858d6

Browse files
Sebastian Andrzej SiewiorThomas Gleixner
authored andcommitted
EDAC/altera: Remove IRQF_ONESHOT
Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also prevents force-threading of the primary handler and the irq-core will warn about this. Remove IRQF_ONESHOT from irqflags. Fixes: a29d64a ("EDAC, altera: Add IRQ Flags to disable IRQ while handling") Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260128095540.863589-11-bigeasy@linutronix.de
1 parent 1affd29 commit 5c858d6

1 file changed

Lines changed: 4 additions & 7 deletions

File tree

drivers/edac/altera_edac.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1563,8 +1563,7 @@ static int altr_portb_setup(struct altr_edac_device_dev *device)
15631563
goto err_release_group_1;
15641564
}
15651565
rc = devm_request_irq(&altdev->ddev, altdev->sb_irq,
1566-
prv->ecc_irq_handler,
1567-
IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
1566+
prv->ecc_irq_handler, IRQF_TRIGGER_HIGH,
15681567
ecc_name, altdev);
15691568
if (rc) {
15701569
edac_printk(KERN_ERR, EDAC_DEVICE, "PortB SBERR IRQ error\n");
@@ -1587,8 +1586,7 @@ static int altr_portb_setup(struct altr_edac_device_dev *device)
15871586
goto err_release_group_1;
15881587
}
15891588
rc = devm_request_irq(&altdev->ddev, altdev->db_irq,
1590-
prv->ecc_irq_handler,
1591-
IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
1589+
prv->ecc_irq_handler, IRQF_TRIGGER_HIGH,
15921590
ecc_name, altdev);
15931591
if (rc) {
15941592
edac_printk(KERN_ERR, EDAC_DEVICE, "PortB DBERR IRQ error\n");
@@ -1970,8 +1968,7 @@ static int altr_edac_a10_device_add(struct altr_arria10_edac *edac,
19701968
goto err_release_group1;
19711969
}
19721970
rc = devm_request_irq(edac->dev, altdev->sb_irq, prv->ecc_irq_handler,
1973-
IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
1974-
ecc_name, altdev);
1971+
IRQF_TRIGGER_HIGH, ecc_name, altdev);
19751972
if (rc) {
19761973
edac_printk(KERN_ERR, EDAC_DEVICE, "No SBERR IRQ resource\n");
19771974
goto err_release_group1;
@@ -1993,7 +1990,7 @@ static int altr_edac_a10_device_add(struct altr_arria10_edac *edac,
19931990
goto err_release_group1;
19941991
}
19951992
rc = devm_request_irq(edac->dev, altdev->db_irq, prv->ecc_irq_handler,
1996-
IRQF_ONESHOT | IRQF_TRIGGER_HIGH,
1993+
IRQF_TRIGGER_HIGH,
19971994
ecc_name, altdev);
19981995
if (rc) {
19991996
edac_printk(KERN_ERR, EDAC_DEVICE, "No DBERR IRQ resource\n");

0 commit comments

Comments
 (0)