Scheduled removal of SA_xxx interrupt flags
Subsystems (22)
cover Scheduled removal of SA_xxx interrupt flags
Andrew,
the following series removes the deprecated SA_xx interrupt flags as scheduled. There are some new users of those flags since the initial cleanup patch. The fixup of those users is split into two parts:
1) mainline fixups
2) -mm fixups
tglx
PATCH 1/3 Scheduled removal of SA_xxx interrupt flags
The name space cleanup of the interrupt request flags (SA_xxx -> IRQF_xxx) left a 6 month grace period for the old deprecated flags. Remove them.
Documentation/feature-removal-schedule.txt +0 -9
@@ -182,15 +182,6 @@ Who: Nick Piggin <[email protected]> --------------------------- -What: Interrupt only SA_* flags -When: Januar 2007 -Why: The interrupt related SA_* flags are replaced by IRQF_* to move them - out of the signal namespace. - -Who: Thomas Gleixner <[email protected]> - ---------------------------- - What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment When: October 2008 Why: The stacking of class devices makes these values misleading and
include/linux/interrupt.h +0 -16
@@ -49,22 +49,6 @@#define IRQF_TIMER 0x00000200#define IRQF_PERCPU 0x00000400 -/* -* Migration helpers. Scheduled for removal in 1/2007 -* Do not use for new code ! -*/ -#define SA_INTERRUPT IRQF_DISABLED -#define SA_SAMPLE_RANDOM IRQF_SAMPLE_RANDOM -#define SA_SHIRQ IRQF_SHARED -#define SA_PROBEIRQ IRQF_PROBE_SHARED -#define SA_PERCPU IRQF_PERCPU - -#define SA_TRIGGER_LOW IRQF_TRIGGER_LOW -#define SA_TRIGGER_HIGH IRQF_TRIGGER_HIGH -#define SA_TRIGGER_FALLING IRQF_TRIGGER_FALLING -#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING -#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK -typedef irqreturn_t (*irq_handler_t )(int ,void *);struct irqaction {
Quoted 2 lines · On Sun, 14 Jan 2007 08:33:45 -0000 Thomas Gleixner <[email protected]> wrote:
The name space cleanup of the interrupt request flags (
SA_xxx->IRQF_xxx) left a 6 month grace period for the old deprecated flags. Remove them.
fwiw, I'll make this [patch 3/3], so the kernel compiles OK at each step.
This is going to break a lot of external stuff. We should have found a way to make usage of SA_* emit deprecated warnings (or _some_ warning) to warn people of impending doom. But I can't immediately find a way of doing that.
If we _can_ find a way of doing this, I suspect we'll need to do it, and give people another six months. It's going to get ugly out there. We shall see...
Quoted 4 lines · Andrew Morton
Quoted 2 lines
The name space cleanup of the interrupt request flags (
SA_xxx->IRQF_xxx) left a 6 month grace period for the old deprecated flags. Remove them.fwiw, I'll make this [patch 3/3], so the kernel compiles OK at each step.
Yup, should have thought about that.
Quoted 7 lines
This is going to break a lot of external stuff. We should have found a way to make usage of SA_* emit deprecated warnings (or _some_ warning) to warn people of impending doom. But I can't immediately find a way of doing that.
if we _can_ find a way of doing this, I suspect we'll need to do it, and give people another six months. It's going to get ugly out there. We shall see...
Ugly, but might work:
static inline unsigned int __deprecated __sa_shirq(void) { return IRQF_DISABLED; }
#define SA_SHIRQ __sa_shirq()
tglx
PATCH 1/1 Deprecate SA_xxx interrupt flags -V2
The deprecation of the SA_xxx interrupt flags did not emit deprecated warnings. Andrew said about the removal of the deprecated flag defines:
Quoted 6 lines
This is going to break a lot of external stuff. We should have found a way to make usage of SA_* emit deprecated warnings (or _some_ warning) to warn people of impending doom. But I can't immediately find a way of doing that. if we _can_ find a way of doing this, I suspect we'll need to do it, and give people another six months. It's going to get ugly out there. We shall see...
Define the deprecated flags as a call to a __deprecated inline function so a warning is emitted on compile time.
Extend the reprieve of out of tree drivers to 9/2007.
---
Documentation/feature-removal-schedule.txt +1 -1
@@ -171,7 +171,7 @@ Who: Greg Kroah-Hartman <[email protected]> --------------------------- What: Interrupt only SA_* flags -When: Januar 2007 +When: September 2007 Why: The interrupt related SA_* flags are replaced by IRQF_* to move them out of the signal namespace.
include/linux/interrupt.h +18 -12
@@ -54,20 +54,26 @@#define IRQF_NOBALANCING 0x00000800/* -* Migration helpers. Scheduled for removal in 1/2007 +* Migration helpers. Scheduled for removal in 9/2007 * Do not use for new code ! */ -#define SA_INTERRUPT IRQF_DISABLED -#define SA_SAMPLE_RANDOM IRQF_SAMPLE_RANDOM -#define SA_SHIRQ IRQF_SHARED -#define SA_PROBEIRQ IRQF_PROBE_SHARED -#define SA_PERCPU IRQF_PERCPU - -#define SA_TRIGGER_LOW IRQF_TRIGGER_LOW -#define SA_TRIGGER_HIGH IRQF_TRIGGER_HIGH -#define SA_TRIGGER_FALLING IRQF_TRIGGER_FALLING -#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING -#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK +static inline +unsigned long __deprecated deprecated_irq_flag (unsigned long flag) +{ +return flag; +} + +#define SA_INTERRUPT deprecated_irq_flag(IRQF_DISABLED) +#define SA_SAMPLE_RANDOM deprecated_irq_flag(IRQF_SAMPLE_RANDOM) +#define SA_SHIRQ deprecated_irq_flag(IRQF_SHARED) +#define SA_PROBEIRQ deprecated_irq_flag(IRQF_PROBE_SHARED) +#define SA_PERCPU deprecated_irq_flag(IRQF_PERCPU) + +#define SA_TRIGGER_LOW deprecated_irq_flag(IRQF_TRIGGER_LOW) +#define SA_TRIGGER_HIGH deprecated_irq_flag(IRQF_TRIGGER_HIGH) +#define SA_TRIGGER_FALLING deprecated_irq_flag(IRQF_TRIGGER_FALLING) +#define SA_TRIGGER_RISING deprecated_irq_flag(IRQF_TRIGGER_RISING) +#define SA_TRIGGER_MASK deprecated_irq_flag(IRQF_TRIGGER_MASK)typedef irqreturn_t (*irq_handler_t )(int ,void *);
Re: [PATCH] Deprecate SA_xxx interrupt flags -V2
Quoted 63 lines · On Fri, 06 Apr 2007 15:49:26 +0200 Thomas Gleixner <[email protected]> wrote:
The deprecation of the
SA_xxxinterrupt flags did not emit deprecated warnings. Andrew said about the removal of the deprecated flag defines:Quoted 6 lines
This is going to break a lot of external stuff. We should have found a way to make usage of SA_* emit deprecated warnings (or _some_ warning) to warn people of impending doom. But I can't immediately find a way of doing that. if we _can_ find a way of doing this, I suspect we'll need to do it, and give people another six months. It's going to get ugly out there. We shall see...
Define the deprecated flags as a call to a
__deprecatedinline function so a warning is emitted on compile time.Extend the reprieve of out of tree drivers to 9/2007.
Signed-off-by Thomas Gleixner <[email protected]>---
Documentation/feature-removal-schedule.txt +1
-1@@ -171,7 +171,7 @@ Who: Greg Kroah-Hartman <[email protected]> --------------------------- What: Interrupt only SA_* flags -When: Januar 2007 +When: September 2007 Why: The interrupt related SA_* flags are replaced by IRQF_* to move them out of the signal namespace.include/linux/interrupt.h +11
-12@@ -54,20 +54,26 @@#define IRQF_NOBALANCING 0x00000800/* -* Migration helpers. Scheduled for removal in 1/2007 +* Migration helpers. Scheduled for removal in 9/2007 * Do not use for new code ! */ -#define SA_INTERRUPT IRQF_DISABLED -#define SA_SAMPLE_RANDOM IRQF_SAMPLE_RANDOM -#define SA_SHIRQ IRQF_SHARED -#define SA_PROBEIRQ IRQF_PROBE_SHARED -#define SA_PERCPU IRQF_PERCPU - -#define SA_TRIGGER_LOW IRQF_TRIGGER_LOW -#define SA_TRIGGER_HIGH IRQF_TRIGGER_HIGH -#define SA_TRIGGER_FALLING IRQF_TRIGGER_FALLING -#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING -#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK +static inline +unsigned long __deprecated deprecated_irq_flag (unsigned long flag) +{ +return flag; +} + +#define SA_INTERRUPT deprecated_irq_flag(IRQF_DISABLED) +#define SA_SAMPLE_RANDOM deprecated_irq_flag(IRQF_SAMPLE_RANDOM) +#define SA_SHIRQ deprecated_irq_flag(IRQF_SHARED) +#define SA_PROBEIRQ deprecated_irq_flag(IRQF_PROBE_SHARED)
include/linux/interrupt.h line 79
Quoted 10 lines
include/linux/interrupt.h +7
-0+#define SA_PERCPU deprecated_irq_flag(IRQF_PERCPU) + +#define SA_TRIGGER_LOW deprecated_irq_flag(IRQF_TRIGGER_LOW) +#define SA_TRIGGER_HIGH deprecated_irq_flag(IRQF_TRIGGER_HIGH) +#define SA_TRIGGER_FALLING deprecated_irq_flag(IRQF_TRIGGER_FALLING) +#define SA_TRIGGER_RISING deprecated_irq_flag(IRQF_TRIGGER_RISING) +#define SA_TRIGGER_MASK deprecated_irq_flag(IRQF_TRIGGER_MASK)typedef irqreturn_t (*irq_handler_t )(int ,void *);
Yeah. I tried something like this and code broke. For example, arch/mips/sni/irq.c has
struct irqaction sni_isa_irq = {
.handler = sni_isa_irq_handler,
.name = "ISA",
.flags = SA_SHIRQ
};
there are presumably only a few such stragglers left in the tree but there are probably more instances out-of-tree.
But I think we should just apply your patch anyway. Only a small proportion of things will break and we do need to be rid of the old definitions one day.
It would be great if someone could do another pass across the tree, clean up the remaining SA_* usages.
Ingo Molnar
Acked-byRe: [PATCH] Deprecate SA_xxx interrupt flags -V2
Quoted 11 lines · Andrew Morton
Yeah. I tried something like this and code broke. For example,
arch/mips/sni/irq.chasstruct irqaction
sni_isa_irq= {
.handler =sni_isa_irq_handler,
.name = "ISA",
.flags =SA_SHIRQ
};there are presumably only a few such stragglers left in the tree but there are probably more instances out-of-tree.
i quick grep suggests that this seems to be the only one left with a similar pattern:
dione:~/linux/ find . -name '*.[ch]' | xargs grep -E '\..*=.*\<SA_' |
grep -vE '\;|\(|=='
./arch/mips/sni/irq.c: .flags = SA_SHIRQ
so the patch is fine to me:
Ingo
Re: [PATCH] Deprecate SA_xxx interrupt flags -V2
In reply to Andrew MortonQuoted 8 lines · Andrew Morton
Yeah. I tried something like this and code broke. For example,
arch/mips/sni/irq.chasstruct irqaction
sni_isa_irq= {
.handler =sni_isa_irq_handler,
.name = "ISA",
.flags =SA_SHIRQ
};
Grr. I fixed that one at least once.
Quoted 6 lines
there are presumably only a few such stragglers left in the tree but there are probably more instances out-of-tree.
But I think we should just apply your patch anyway. Only a small proportion of things will break and we do need to be rid of the old definitions one day.
For above use cases there is no way of emiting a deprecation warning. OTOH it leads the user directly to the place, where he can find the fix. Removing them completely might leave folks clueless.
Quoted 2 lines
It would be great if someone could do another pass across the tree, clean up the remaining SA_* usages.
The above seems the only one in Linus tree. I check -mm as well.
tglx
PATCH 1/1 Replace deprecated SA_xxx interrupt flags
Fix the last refractory users of the deprecated SA_xxx interrupt flags.
arch/mips/sni/irq.c +1 -1
@@ -42,7 +42,7 @@ static irqreturn_t sni_isa_irq_handler(int dummy, void *p)struct irqaction sni_isa_irq = { .handler = sni_isa_irq_handler, .name ="ISA" , - .flags =SA_SHIRQ + .flags =IRQF_SHARED };/*
drivers/scsi/sni_53c710.c +1 -1
@@ -98,7 +98,7 @@ static int __init snirm710_probe(struct platform_device *dev) host->this_id =7 ; host->base = base; host->irq =platform_get_irq (dev,0 ); -if (request_irq (host->irq, NCR_700_intr,SA_SHIRQ ,"snirm710" , host)) { +if (request_irq (host->irq, NCR_700_intr,IRQF_SHARED ,"snirm710" , host)) {printk (KERN_ERR "snirm710: request_irq failed!\n" ); goto out_put_host; }
[PATCH-mm] Replace more deprecated SA_xxx interrupt flags
Fix the obnoxious users of the deprecated SA_xxx interrupt flags.
drivers/i2c/busses/i2c-bfin-twi.c +1 -1
@@ -573,7 +573,7 @@ static int i2c_bfin_twi_probe(struct pla p_adap->dev.parent = &dev->dev; rc =request_irq (iface->irq, bfin_twi_interrupt_entry, -SA_INTERRUPT , dev->name, iface); +IRQF_DISABLED , dev->name, iface);if (rc) {dev_err (&(p_adap->dev),"i2c-bfin-twi: can't get IRQ %d !\n" , iface->irq);
drivers/input/keyboard/pxa27x_keyboard.c +1 -1
@@ -181,7 +181,7 @@ static int __devinit pxakbd_probe(struct } } - error =request_irq (IRQ_KEYPAD , pxakbd_irq_handler,SA_INTERRUPT , + error =request_irq (IRQ_KEYPAD , pxakbd_irq_handler,IRQF_DISABLED ,DRIVER_NAME , pdev);if (error) {printk (KERN_ERR "Cannot request keypad IRQ\n" );
drivers/net/vioc/vioc_irq.c +1 -1
@@ -319,7 +319,7 @@ static int vioc_irq_install(struct pci_d ret =request_irq (vioc_interrupts[vioc_id].intreq[intr_id].irq, vioc_interrupts[vioc_id].intreq[intr_id].hthandler, -SA_INTERRUPT , +IRQF_DISABLED , vioc_interrupts[vioc_id].intreq[intr_id].name, vioc_interrupts[vioc_id].intreq[intr_id]. intrFuncparm);
PATCH 2/3 Scheduled removal of SA_xxx interrupt flags fixups
In reply to Thomas GleixnerThe obsolete SA_xxx interrupt flags have been used despite the scheduled removal. Fixup the remaining users.
kernel/irq/manage.c +1 -1
@@ -442,7 +442,7 @@ int request_irq(unsigned int irq, irq_ha/* * Lockdep wants atomic interrupt handlers: */ - irqflags |=SA_INTERRUPT ; + irqflags |=IRQF_DISABLED ;#endif /* * Sanity-check: shared interrupts must pass in a real dev-ID,
drivers/usb/host/ohci-ep93xx.c +1 -1
@@ -78,7 +78,7 @@ static int usb_hcd_ep93xx_probe(const stohci_hcd_init (hcd_to_ohci (hcd)); - retval =usb_add_hcd (hcd, pdev->resource[1 ].start,SA_INTERRUPT ); + retval =usb_add_hcd (hcd, pdev->resource[1 ].start,IRQF_DISABLED );if (retval ==0 )return retval;
drivers/usb/host/ohci-pnx4008.c +1 -1
@@ -421,7 +421,7 @@ static int __devinit usb_hcd_pnx4008_proohci_hcd_init (ohci);dev_info (&pdev->dev,"at 0x%p, irq %d\n" , hcd->regs, hcd->irq); - ret =usb_add_hcd (hcd, irq,SA_INTERRUPT ); + ret =usb_add_hcd (hcd, irq,IRQF_DISABLED );if (ret ==0 )return ret;
drivers/usb/host/ohci-pnx8550.c +1 -1
@@ -107,7 +107,7 @@ int usb_hcd_pnx8550_probe (const structohci_hcd_init (hcd_to_ohci (hcd)); - retval =usb_add_hcd (hcd, dev->resource[1 ].start,SA_INTERRUPT ); + retval =usb_add_hcd (hcd, dev->resource[1 ].start,IRQF_DISABLED );if (retval ==0 )return retval;
drivers/usb/gadget/pxa2xx_udc.c +1 -1
@@ -2614,7 +2614,7 @@ lubbock_fail0:#endif if (vbus_irq) { retval =request_irq (vbus_irq, udc_vbus_irq, -SA_INTERRUPT |SA_SAMPLE_RANDOM , +IRQF_DISABLED |IRQF_SAMPLE_RANDOM , driver_name, dev);if (retval !=0 ) { printk(KERN_ERR "%s: can't get irq %i, err %d\n",
drivers/net/qla3xxx.c +2 -2
@@ -2999,7 +2999,7 @@ static int ql_adapter_up(struct ql3_adap {struct net_device *ndev = qdev->ndev;int err; -unsigned long irq_flags =SA_SAMPLE_RANDOM |SA_SHIRQ ; +unsigned long irq_flags =IRQF_SAMPLE_RANDOM |IRQF_SHARED ;unsigned long hw_flags;if (ql_alloc_mem_resources (qdev)) {
@@ -3018,7 +3018,7 @@ static int ql_adapter_up(struct ql3_adap }else { printk(KERN_INFO PFX "%s: MSI Enabled...\n", qdev->ndev->name);set_bit (QL_MSI_ENABLED ,&qdev->flags); - irq_flags &= ~SA_SHIRQ ; + irq_flags &= ~IRQF_SHARED ; } }
drivers/scsi/aic94xx/aic94xx_init.c +1 -1
@@ -646,7 +646,7 @@ static int __devinit asd_pci_probe(strucif (use_msi)pci_enable_msi (asd_ha->pcidev); - err =request_irq (asd_ha->pcidev->irq, asd_hw_isr,SA_SHIRQ , + err =request_irq (asd_ha->pcidev->irq, asd_hw_isr,IRQF_SHARED ,ASD_DRIVER_NAME , asd_ha);if (err) { asd_printk("couldn't get irq %d for %s\n",
drivers/net/netxen/netxen_nic_main.c +2 -2
@@ -619,8 +619,8 @@ static int netxen_nic_open(struct net_de } adapter->irq = adapter->ahw.pdev->irq; err =request_irq (adapter->ahw.pdev->irq, &netxen_intr, -SA_SHIRQ |SA_SAMPLE_RANDOM , netdev->name, - adapter); +IRQF_SHARED |IRQF_SAMPLE_RANDOM , + netdev->name, adapter);if (err) {printk (KERN_ERR "request_irq failed with: %d\n" , err);netxen_free_hw_resources (adapter);
drivers/misc/tifm_7xx1.c +1 -1
@@ -340,7 +340,7 @@ static int tifm_7xx1_probe(struct pci_deif (!fm->addr) goto err_out_free; - rc =request_irq (dev->irq, tifm_7xx1_isr,SA_SHIRQ ,DRIVER_NAME , fm); + rc =request_irq (dev->irq, tifm_7xx1_isr,IRQF_SHARED ,DRIVER_NAME , fm);if (rc) goto err_out_unmap;
arch/ia64/kernel/irq_ia64.c +1 -1
@@ -275,7 +275,7 @@ static struct irqaction ipi_irqaction =static struct irqaction resched_irqaction = { .handler = dummy_handler, - .flags =SA_INTERRUPT , + .flags =IRQF_DISABLED , .name ="resched" };#endif
arch/m68k/atari/stdma.c +1 -1
@@ -174,7 +174,7 @@ int stdma_islocked(void)void __init stdma_init (void ) { stdma_isr =NULL ; -request_irq (IRQ_MFP_FDC , stdma_int,IRQ_TYPE_SLOW |SA_SHIRQ , +request_irq (IRQ_MFP_FDC , stdma_int,IRQ_TYPE_SLOW |IRQF_SHARED ,"ST-DMA: floppy/ACSI/IDE/Falcon-SCSI" , stdma_int); }
arch/ppc/syslib/i8259.c +1 -1
@@ -154,7 +154,7 @@ static struct resource pic_edgectrl_iorestatic struct irqaction i8259_irqaction = { .handler = no_action, - .flags =SA_INTERRUPT , + .flags =IRQF_DISABLED , .mask =CPU_MASK_NONE , .name ="82c59 secondary cascade" , };
drivers/ata/pata_mpiix.c +1 -1
@@ -229,7 +229,7 @@ static int mpiix_init_one(struct pci_dev probe[0 ].sht = &mpiix_sht; probe[0 ].pio_mask =0x1F ; probe[0 ].irq =14 ; - probe[0 ].irq_flags =SA_SHIRQ ; + probe[0 ].irq_flags =IRQF_SHARED ; probe[0 ].port_flags =ATA_FLAG_SLAVE_POSS |ATA_FLAG_SRST ; probe[0 ].n_ports =1 ; probe[0 ].port[0 ].cmd_addr =0x1F0 ;
drivers/ata/pata_pcmcia.c +1 -1
@@ -256,7 +256,7 @@ next_entry: ae.n_ports =1 ; ae.pio_mask =1 ;/* ISA so PIO 0 cycles */ ae.irq = pdev->irq.AssignedIRQ; - ae.irq_flags =SA_SHIRQ ; + ae.irq_flags =IRQF_SHARED ; ae.port_flags =ATA_FLAG_SLAVE_POSS |ATA_FLAG_SRST ; ae.port[0 ].cmd_addr = io_base; ae.port[0 ].altstatus_addr = ctl_base;
drivers/ata/pata_pdc2027x.c +2 -2
@@ -804,8 +804,8 @@ static int __devinit pdc2027x_init_one(s probe_ent->udma_mask = pdc2027x_port_info[board_idx].udma_mask; probe_ent->port_ops = pdc2027x_port_info[board_idx].port_ops; - probe_ent->irq = pdev->irq; - probe_ent->irq_flags =SA_SHIRQ ; + probe_ent->irq = pdev->irq; + probe_ent->irq_flags =IRQF_SHARED ; probe_ent->mmio_base = mmio_base;pdc_ata_setup_port (&probe_ent->port[0 ], base +0x17c0 );
drivers/char/watchdog/rm9k_wdt.c +1 -1
@@ -192,7 +192,7 @@ static int wdt_gpi_open(struct inode *in locked =0 ; } - res =request_irq (wd_irq, wdt_gpi_irqhdl,SA_SHIRQ |SA_INTERRUPT , + res =request_irq (wd_irq, wdt_gpi_irqhdl,IRQF_SHARED |IRQF_DISABLED , wdt_gpi_name, &miscdev);if (unlikely (res))return res;
drivers/infiniband/hw/amso1100/c2.c +1 -1
@@ -1073,7 +1073,7 @@ static int __devinit c2_probe(struct pci 0xffffc000) / sizeof(struct c2_rxp_desc);/* Request an interrupt line for the driver */ - ret =request_irq (pcidev->irq, c2_interrupt,SA_SHIRQ ,DRV_NAME , c2dev); + ret =request_irq (pcidev->irq, c2_interrupt,IRQF_SHARED ,DRV_NAME , c2dev);if (ret) { printk(KERN_ERR PFX "%s: requested IRQ %u is busy\n", pci_name(pcidev), pcidev->irq);
drivers/infiniband/hw/ehca/ehca_eq.c +2 -2
@@ -122,7 +122,7 @@ int ehca_create_eq(struct ehca_shca *shc/* register interrupt handlers and initialize work queues */ if (type ==EHCA_EQ ) { ret =ibmebus_request_irq (NULL , eq->ist, ehca_interrupt_eq, -SA_INTERRUPT ,"ehca_eq" , +IRQF_DISABLED ,"ehca_eq" , (void *)shca);if (ret <0 )ehca_err (ib_dev,"Can't map interrupt handler." );
@@ -130,7 +130,7 @@ int ehca_create_eq(struct ehca_shca *shctasklet_init (&eq->interrupt_task, ehca_tasklet_eq, (long )shca); }else if (type ==EHCA_NEQ ) { ret =ibmebus_request_irq (NULL , eq->ist, ehca_interrupt_neq, -SA_INTERRUPT ,"ehca_neq" , +IRQF_DISABLED ,"ehca_neq" , (void *)shca);if (ret <0 )ehca_err (ib_dev,"Can't map interrupt handler." );
drivers/net/7990.c +1 -1
@@ -500,7 +500,7 @@ int lance_open (struct net_device *dev)int res;/* Install the Interrupt handler. Or we could shunt this out to specific drivers? */ -if (request_irq (lp->irq, lance_interrupt,SA_SHIRQ , lp->name, dev)) +if (request_irq (lp->irq, lance_interrupt,IRQF_SHARED , lp->name, dev))return -EAGAIN ; res =lance_reset (dev);
drivers/net/ehea/ehea_main.c +4 -4
@@ -882,7 +882,7 @@ static int ehea_reg_interrupts(struct ne , "%s-recv%d", dev->name, i); ret =ibmebus_request_irq (NULL , pr->recv_eq->attr.ist1, ehea_recv_irq_handler, -SA_INTERRUPT , pr->int_recv_name, pr); +IRQF_DISABLED , pr->int_recv_name, pr);if (ret) { ehea_error("failed registering irq for ehea_recv_int:" "port_res_nr:%d, ist=%X", i,
@@ -899,7 +899,7 @@ static int ehea_reg_interrupts(struct ne ret =ibmebus_request_irq (NULL , port->qp_eq->attr.ist1, ehea_qp_aff_irq_handler, -SA_INTERRUPT , port->int_aff_name, port); +IRQF_DISABLED , port->int_aff_name, port);if (ret) {ehea_error ("failed registering irq for qp_aff_irq_handler:" "ist=%X" , port->qp_eq->attr.ist1);
@@ -916,7 +916,7 @@ static int ehea_reg_interrupts(struct ne "%s-send%d", dev->name, i); ret =ibmebus_request_irq (NULL , pr->send_eq->attr.ist1, ehea_send_irq_handler, -SA_INTERRUPT , pr->int_send_name, +IRQF_DISABLED , pr->int_send_name, pr);if (ret) { ehea_error("failed registering irq for ehea_send "
@@ -2509,7 +2509,7 @@ static int __devinit ehea_probe(struct i (unsigned long)adapter); ret =ibmebus_request_irq (NULL , adapter->neq->attr.ist1, - ehea_interrupt_neq,SA_INTERRUPT , + ehea_interrupt_neq,IRQF_DISABLED ,"ehea_neq" , adapter);if (ret) {dev_err (&dev->ofdev.dev,"requesting NEQ IRQ failed" );
drivers/net/macb.c +1 -1
@@ -1068,7 +1068,7 @@ static int __devinit macb_probe(struct p } dev->irq =platform_get_irq (pdev,0 ); - err =request_irq (dev->irq, macb_interrupt,SA_SAMPLE_RANDOM , + err =request_irq (dev->irq, macb_interrupt,IRQF_SAMPLE_RANDOM , dev->name, dev);if (err) { printk(KERN_ERR
drivers/net/ucc_geth.c +2 -2
@@ -4001,8 +4001,8 @@ static void ugeth_phy_startup_timer(unsi/* Grab the PHY interrupt, if necessary/possible */ if (ugeth->ug_info->board_flags &FSL_UGETH_BRD_HAS_PHY_INTR ) {if (request_irq (ugeth->ug_info->phy_interrupt, - phy_interrupt, -SA_SHIRQ ,"phy_interrupt" , mii_info->dev) <0 ) { + phy_interrupt,IRQF_SHARED , +"phy_interrupt" , mii_info->dev) <0 ) {ugeth_err ("%s: Can't get IRQ %d (PHY)" , mii_info->dev->name, ugeth->ug_info->phy_interrupt);
drivers/pci/pcie/aer/aerdrv.c +1 -1
@@ -220,7 +220,7 @@ static int __devinit aer_probe (struct p }/* Request IRQ ISR */ -if ((status =request_irq (dev->irq, aer_irq,SA_SHIRQ ,"aerdrv" , +if ((status =request_irq (dev->irq, aer_irq,IRQF_SHARED ,"aerdrv" , dev))) {printk (KERN_DEBUG "%s: Request ISR fails on PCIE device[%s]\n" , __FUNCTION__, device->bus_id);
drivers/rtc/rtc-omap.c +2 -2
@@ -417,13 +417,13 @@ static int __devinit omap_rtc_probe(strurtc_write (OMAP_RTC_STATUS_ALARM ,OMAP_RTC_STATUS_REG );/* handle periodic and alarm irqs */ -if (request_irq (omap_rtc_timer, rtc_irq,SA_INTERRUPT , +if (request_irq (omap_rtc_timer, rtc_irq,IRQF_DISABLED , rtc->class_dev.class_id, &rtc->class_dev)) {pr_debug ("%s: RTC timer interrupt IRQ%d already claimed\n" , pdev->name, omap_rtc_timer); goto fail0; } -if (request_irq (omap_rtc_alarm, rtc_irq,SA_INTERRUPT , +if (request_irq (omap_rtc_alarm, rtc_irq,IRQF_DISABLED , rtc->class_dev.class_id, &rtc->class_dev)) {pr_debug ("%s: RTC alarm interrupt IRQ%d already claimed\n" , pdev->name, omap_rtc_alarm);
drivers/rtc/rtc-s3c.c +2 -2
@@ -350,7 +350,7 @@ static int s3c_rtc_open(struct device *dint ret; ret =request_irq (s3c_rtc_alarmno, s3c_rtc_alarmirq, -SA_INTERRUPT ,"s3c2410-rtc alarm" , rtc_dev); +IRQF_DISABLED ,"s3c2410-rtc alarm" , rtc_dev);if (ret) {dev_err (dev,"IRQ%d error %d\n" , s3c_rtc_alarmno, ret);
@@ -358,7 +358,7 @@ static int s3c_rtc_open(struct device *d } ret =request_irq (s3c_rtc_tickno, s3c_rtc_tickirq, -SA_INTERRUPT ,"s3c2410-rtc tick" , rtc_dev); +IRQF_DISABLED ,"s3c2410-rtc tick" , rtc_dev);if (ret) {dev_err (dev,"IRQ%d error %d\n" , s3c_rtc_tickno, ret);
drivers/scsi/arcmsr/arcmsr_hba.c +1 -1
@@ -322,7 +322,7 @@ static int arcmsr_probe(struct pci_dev * goto out_iounmap; error =request_irq (pdev->irq, arcmsr_do_interrupt, -SA_INTERRUPT |SA_SHIRQ ,"arcmsr" , acb); +IRQF_DISABLED |IRQF_SHARED ,"arcmsr" , acb);if (error) goto out_free_ccb_pool;
drivers/scsi/ibmvscsi/ibmvstgt.c +1 -1
@@ -580,7 +580,7 @@ static int crq_queue_create(struct crq_q } err =request_irq (vport->dma_dev->irq, &ibmvstgt_interrupt, -SA_INTERRUPT ,"ibmvstgt" , target); +IRQF_DISABLED ,"ibmvstgt" , target);if (err) goto req_irq_failed;
drivers/scsi/qla4xxx/ql4_os.c +1 -1
@@ -1257,7 +1257,7 @@ static int __devinit qla4xxx_probe_adaptINIT_WORK (&ha->dpc_work, qla4xxx_do_dpc); ret =request_irq (pdev->irq, qla4xxx_intr_handler, -SA_INTERRUPT |SA_SHIRQ ,"qla4xxx" , ha); +IRQF_DISABLED |IRQF_SHARED ,"qla4xxx" , ha);if (ret) {dev_warn (&ha->pdev->dev,"Failed to reserve interrupt %d" " already in use.\n" , pdev->irq);
drivers/video/intelfb/intelfbhw.c +2 -1
@@ -1990,7 +1990,8 @@ int intelfbhw_enable_irq(struct intelfb_info *dinfo, int reenable) {if (!test_and_set_bit (0 , &dinfo->irq_flags)) { -if (request_irq (dinfo->pdev->irq, intelfbhw_irq,SA_SHIRQ ,"intelfb" , dinfo)) { +if (request_irq (dinfo->pdev->irq, intelfbhw_irq,IRQF_SHARED , +"intelfb" , dinfo)) {clear_bit (0 , &dinfo->irq_flags);return -EINVAL ; }
Re: [patch 2/3] Scheduled removal of SA_xxx interrupt flags fixups
Quoted 4 lines · Thomas Gleixner
The obsolete
SA_xxxinterrupt flags have been used despite the scheduled removal. Fixup the remaining users.Signed-off-by Thomas Gleixner <[email protected]>
i have tested your patch-queue ontop of rc4-mm1 (trivial reject fixups are below), it builds and boots fine.
Ingo
--- drivers/char/nozomi.c | 2 +- drivers/net/qla3xxx.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/char/nozomi.c +1 -1
@@ -1378,7 +1378,7 @@ static int nozomi_setup_interrupt(struct {int rval; - rval =request_irq (dc->pdev->irq, &interrupt_handler,SA_SHIRQ , + rval =request_irq (dc->pdev->irq, &interrupt_handler,IRQF_SHARED ,NOZOMI_NAME , dc);if (rval) dev_err(&dc->pdev->dev, "Cannot open because IRQ %d "
drivers/net/qla3xxx.c +2 -2
@@ -2999,7 +2999,7 @@ static int ql_adapter_up(struct ql3_adap {struct net_device *ndev = qdev->ndev;int err; -unsigned long irq_flags =SA_SAMPLE_RANDOM |SA_SHIRQ ; +unsigned long irq_flags =IRQF_SAMPLE_RANDOM |IRQF_SHARED ;unsigned long hw_flags;if (ql_alloc_mem_resources (qdev)) {
@@ -3018,7 +3018,7 @@ static int ql_adapter_up(struct ql3_adap }else { printk(KERN_INFO PFX "%s: MSI Enabled...\n", qdev->ndev->name);set_bit (QL_MSI_ENABLED ,&qdev->flags); - irq_flags &= ~SA_SHIRQ ; + irq_flags &= ~IRQF_SHARED ; } }
Re: [patch 2/3] Scheduled removal of SA_xxx interrupt flags fixups
Quoted 4 lines · Ingo Molnar
i have tested your patch-queue ontop of rc4-mm1 (trivial reject fixups are below), it builds and boots fine.
Acked-by Ingo Molnar <[email protected]>
You tested my yesterday queue against rc2-mm1. The patches in the mail are against rc4-mm1 and contain the fix already.
tglx
Re: [patch 2/3] Scheduled removal of SA_xxx interrupt flags fixups
Quoted 8 lines · Thomas Gleixner
Quoted 4 lines · Ingo Molnar
i have tested your patch-queue ontop of rc4-mm1 (trivial reject fixups are below), it builds and boots fine.
Acked-by Ingo Molnar <[email protected]>You tested my yesterday queue against rc2-mm1. The patches in the mail are against rc4-mm1 and contain the fix already.
ok - great!
Ingo
PATCH 3/3 Scheduled removal of SA_xxx interrupt flags fixups 2 (mm)
In reply to Thomas GleixnerThe obsolete SA_xxx interrupt flags have been used despite the scheduled removal. Fixup the remaining users in -mm.
arch/i386/kernel/vmitime.c +4 -6
@@ -121,12 +121,10 @@ static struct clocksource clocksource_vmstatic irqreturn_t vmi_timer_interrupt (int irq,void *dev_id);struct irqaction vmi_timer_irq = { - vmi_timer_interrupt, -SA_INTERRUPT , -CPU_MASK_NONE , -"VMI-alarm" , -NULL , -NULL + .handler = vmi_timer_interrupt, + .flags =IRQF_DISABLED , + .mask =CPU_MASK_NONE , + .name ="VMI-alarm" , };/* Alarm rate */
drivers/char/nozomi.c +1 -1
@@ -1378,7 +1378,7 @@ static int nozomi_setup_interrupt(struct {int rval; - rval =request_irq (dc->pdev->irq, &interrupt_handler,SA_SHIRQ , + rval =request_irq (dc->pdev->irq, &interrupt_handler,IRQF_SHARED ,NOZOMI_NAME , dc);if (rval) dev_err(&dc->pdev->dev, "Cannot open because IRQ %d "
drivers/firewire/fw-ohci.c +1 -1
@@ -714,7 +714,7 @@ static int ohci_enable(struct fw_card *creg_write (ohci, OHCI1394_AsReqFilterHiSet,0x80000000 );if (request_irq (dev->irq, irq_handler, -SA_SHIRQ , ohci_driver_name, ohci)) { +IRQF_SHARED , ohci_driver_name, ohci)) {fw_error ("Failed to allocate shared interrupt %d.\n" , dev->irq); dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE,
drivers/input/keyboard/gpio_keys.c +1 -1
@@ -78,7 +78,7 @@ static int __devinit gpio_keys_probe(strint irq =IRQ_GPIO (pdata->buttons[i].gpio);set_irq_type (irq,IRQ_TYPE_EDGE_BOTH ); - error =request_irq (irq, gpio_keys_isr,SA_SAMPLE_RANDOM , + error =request_irq (irq, gpio_keys_isr,IRQF_SAMPLE_RANDOM , pdata->buttons[i].desc ? pdata->buttons[i].desc :"gpio_keys" , pdev);if (error) {
drivers/mtd/nand/cafe.c +2 -1
@@ -596,7 +596,8 @@ static int __devinit cafe_nand_probe(strcafe_writel (cafe,0xffffffff ,NAND_TIMING3 ); }cafe_writel (cafe,0xffffffff ,NAND_IRQ_MASK ); - err =request_irq (pdev->irq, &cafe_nand_interrupt,SA_SHIRQ ,"CAFE NAND" , mtd); + err =request_irq (pdev->irq, &cafe_nand_interrupt,IRQF_SHARED , +"CAFE NAND" , mtd);if (err) {dev_warn (&pdev->dev,"Could not register IRQ %d\n" , pdev->irq);
drivers/net/cxgb3/cxgb3_main.c +2 -1
@@ -709,7 +709,8 @@ static int cxgb_up(struct adapter *adap)t3_intr_handler (adap, adap->sge.qs[0 ].rspq. polling), - (adap->flags &USING_MSI ) ?0 :SA_SHIRQ , + (adap->flags &USING_MSI ) ? +0 :IRQF_SHARED , adap->name, adap))) goto irq_err;
drivers/net/sc92031.c +1 -1
@@ -1035,7 +1035,7 @@ static int sc92031_open(struct net_devic priv->tx_head = priv->tx_tail =0 ; err =request_irq (pdev->irq, sc92031_interrupt, -SA_SHIRQ , dev->name, dev); +IRQF_SHARED , dev->name, dev);if (unlikely (err <0 )) goto out_request_irq;
kernel/irq/manage.c +3 -3
@@ -394,7 +394,7 @@ void free_irq(unsigned int irq, void *de/* Make sure it's not being used on another CPU */ synchronize_irq (irq); -if (action->flags &SA_SHIRQ ) +if (action->flags &IRQF_SHARED ) handler = action->handler;kfree (action);return ;
@@ -487,14 +487,14 @@ int request_irq(unsigned int irq, irq_haselect_smp_affinity (irq);#ifdef CONFIG_DEBUG_SHIRQ -if (irqflags &SA_SHIRQ ) { +if (irqflags &IRQF_SHARED ) {/* * It's a shared IRQ -- the driver ought to be prepared for it * to happen immediately, so let's make sure.... * We do this before actually registering it, to make sure that * a 'real' IRQ doesn't run in parallel with our fake */ -if (irqflags &SA_INTERRUPT ) { +if (irqflags &IRQF_DISABLED ) {unsigned long flags;local_irq_save (flags);