Commit 64d8ad93 authored by Michael Opdenacker's avatar Michael Opdenacker Committed by Jesper Nilsson

cris: remove deprecated IRQF_DISABLED

This patch proposes to remove the IRQF_DISABLED flag from CRIS
architecture code. It's a NOOP since 2.6.35 and it will be removed
one day.

Comments mentioning IRQF_DISABLED are also updated, knowing
that all interrupts are now "fast interrupts", their handlers
running with interrupts disabled.

Don't hesitate to let me know if you have other ways of
rephrasing the comments!

This is an update for 3.11 of a patch already sent for 3.10
Signed-off-by: default avatarMichael Opdenacker <michael.opdenacker@free-electrons.com>
Signed-off-by: default avatarJesper Nilsson <jespern@axis.com>
parent ceb3b021
...@@ -838,13 +838,13 @@ static int __init gpio_init(void) ...@@ -838,13 +838,13 @@ static int __init gpio_init(void)
* in some tests. * in some tests.
*/ */
res = request_irq(TIMER0_IRQ_NBR, gpio_poll_timer_interrupt, res = request_irq(TIMER0_IRQ_NBR, gpio_poll_timer_interrupt,
IRQF_SHARED | IRQF_DISABLED, "gpio poll", gpio_name); IRQF_SHARED, "gpio poll", gpio_name);
if (res) { if (res) {
printk(KERN_CRIT "err: timer0 irq for gpio\n"); printk(KERN_CRIT "err: timer0 irq for gpio\n");
return res; return res;
} }
res = request_irq(PA_IRQ_NBR, gpio_interrupt, res = request_irq(PA_IRQ_NBR, gpio_interrupt,
IRQF_SHARED | IRQF_DISABLED, "gpio PA", gpio_name); IRQF_SHARED, "gpio PA", gpio_name);
if (res) if (res)
printk(KERN_CRIT "err: PA irq for gpio\n"); printk(KERN_CRIT "err: PA irq for gpio\n");
......
...@@ -580,7 +580,7 @@ static int sync_serial_open(struct inode *inode, struct file *file) ...@@ -580,7 +580,7 @@ static int sync_serial_open(struct inode *inode, struct file *file)
if (port == &ports[0]) { if (port == &ports[0]) {
if (request_irq(8, if (request_irq(8,
manual_interrupt, manual_interrupt,
IRQF_SHARED | IRQF_DISABLED, IRQF_SHARED,
"synchronous serial manual irq", "synchronous serial manual irq",
&ports[0])) { &ports[0])) {
printk(KERN_CRIT "Can't alloc " printk(KERN_CRIT "Can't alloc "
...@@ -590,7 +590,7 @@ static int sync_serial_open(struct inode *inode, struct file *file) ...@@ -590,7 +590,7 @@ static int sync_serial_open(struct inode *inode, struct file *file)
} else if (port == &ports[1]) { } else if (port == &ports[1]) {
if (request_irq(8, if (request_irq(8,
manual_interrupt, manual_interrupt,
IRQF_SHARED | IRQF_DISABLED, IRQF_SHARED,
"synchronous serial manual irq", "synchronous serial manual irq",
&ports[1])) { &ports[1])) {
printk(KERN_CRIT "Can't alloc " printk(KERN_CRIT "Can't alloc "
......
...@@ -178,13 +178,11 @@ timer_interrupt(int irq, void *dev_id) ...@@ -178,13 +178,11 @@ timer_interrupt(int irq, void *dev_id)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
/* timer is IRQF_SHARED so drivers can add stuff to the timer irq chain /* timer is IRQF_SHARED so drivers can add stuff to the timer irq chain */
* it needs to be IRQF_DISABLED to make the jiffies update work properly
*/
static struct irqaction irq2 = { static struct irqaction irq2 = {
.handler = timer_interrupt, .handler = timer_interrupt,
.flags = IRQF_SHARED | IRQF_DISABLED, .flags = IRQF_SHARED,
.name = "timer", .name = "timer",
}; };
......
...@@ -978,7 +978,7 @@ static int __init gpio_init(void) ...@@ -978,7 +978,7 @@ static int __init gpio_init(void)
CRIS_LED_DISK_WRITE(0); CRIS_LED_DISK_WRITE(0);
int res2 = request_irq(GIO_INTR_VECT, gpio_interrupt, int res2 = request_irq(GIO_INTR_VECT, gpio_interrupt,
IRQF_SHARED | IRQF_DISABLED, "gpio", &alarmlist); IRQF_SHARED, "gpio", &alarmlist);
if (res2) { if (res2) {
printk(KERN_ERR "err: irq for gpio\n"); printk(KERN_ERR "err: irq for gpio\n");
return res2; return res2;
......
...@@ -964,11 +964,11 @@ gpio_init(void) ...@@ -964,11 +964,11 @@ gpio_init(void)
* in some tests. * in some tests.
*/ */
if (request_irq(TIMER0_INTR_VECT, gpio_poll_timer_interrupt, if (request_irq(TIMER0_INTR_VECT, gpio_poll_timer_interrupt,
IRQF_SHARED | IRQF_DISABLED, "gpio poll", &alarmlist)) IRQF_SHARED, "gpio poll", &alarmlist))
printk(KERN_ERR "timer0 irq for gpio\n"); printk(KERN_ERR "timer0 irq for gpio\n");
if (request_irq(GIO_INTR_VECT, gpio_pa_interrupt, if (request_irq(GIO_INTR_VECT, gpio_pa_interrupt,
IRQF_SHARED | IRQF_DISABLED, "gpio PA", &alarmlist)) IRQF_SHARED, "gpio PA", &alarmlist))
printk(KERN_ERR "PA irq for gpio\n"); printk(KERN_ERR "PA irq for gpio\n");
#ifdef CONFIG_ETRAX_VIRTUAL_GPIO #ifdef CONFIG_ETRAX_VIRTUAL_GPIO
......
...@@ -786,7 +786,7 @@ int fast_timer_init(void) ...@@ -786,7 +786,7 @@ int fast_timer_init(void)
proc_create("fasttimer", 0, NULL, &proc_fasttimer_fops); proc_create("fasttimer", 0, NULL, &proc_fasttimer_fops);
#endif /* PROC_FS */ #endif /* PROC_FS */
if (request_irq(TIMER0_INTR_VECT, timer_trig_interrupt, if (request_irq(TIMER0_INTR_VECT, timer_trig_interrupt,
IRQF_SHARED | IRQF_DISABLED, IRQF_SHARED,
"fast timer int", &fast_timer_list)) "fast timer int", &fast_timer_list))
printk(KERN_ERR "err: fasttimer irq\n"); printk(KERN_ERR "err: fasttimer irq\n");
fast_timer_is_init = 1; fast_timer_is_init = 1;
......
...@@ -331,11 +331,11 @@ extern void do_IRQ(int irq, struct pt_regs * regs); ...@@ -331,11 +331,11 @@ extern void do_IRQ(int irq, struct pt_regs * regs);
void void
crisv32_do_IRQ(int irq, int block, struct pt_regs* regs) crisv32_do_IRQ(int irq, int block, struct pt_regs* regs)
{ {
/* Interrupts that may not be moved to another CPU and /* Interrupts that may not be moved to another CPU may
* are IRQF_DISABLED may skip blocking. This is currently * skip blocking. This is currently only valid for the
* only valid for the timer IRQ and the IPI and is used * timer IRQ and the IPI and is used for the timer
* for the timer interrupt to avoid watchdog starvation. * interrupt to avoid watchdog starvation.
*/ */
if (!block) { if (!block) {
do_IRQ(irq, regs); do_IRQ(irq, regs);
return; return;
......
...@@ -64,7 +64,7 @@ static irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id); ...@@ -64,7 +64,7 @@ static irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id);
static int send_ipi(int vector, int wait, cpumask_t cpu_mask); static int send_ipi(int vector, int wait, cpumask_t cpu_mask);
static struct irqaction irq_ipi = { static struct irqaction irq_ipi = {
.handler = crisv32_ipi_interrupt, .handler = crisv32_ipi_interrupt,
.flags = IRQF_DISABLED, .flags = 0,
.name = "ipi", .name = "ipi",
}; };
......
...@@ -216,12 +216,10 @@ static inline irqreturn_t timer_interrupt(int irq, void *dev_id) ...@@ -216,12 +216,10 @@ static inline irqreturn_t timer_interrupt(int irq, void *dev_id)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
/* Timer is IRQF_SHARED so drivers can add stuff to the timer irq chain. /* Timer is IRQF_SHARED so drivers can add stuff to the timer irq chain. */
* It needs to be IRQF_DISABLED to make the jiffies update work properly.
*/
static struct irqaction irq_timer = { static struct irqaction irq_timer = {
.handler = timer_interrupt, .handler = timer_interrupt,
.flags = IRQF_SHARED | IRQF_DISABLED, .flags = IRQF_SHARED,
.name = "timer" .name = "timer"
}; };
......
...@@ -256,11 +256,11 @@ static void crisv32_arbiter_init(void) ...@@ -256,11 +256,11 @@ static void crisv32_arbiter_init(void)
crisv32_arbiter_config(1, EXT_REGION, 0); crisv32_arbiter_config(1, EXT_REGION, 0);
if (request_irq(MEMARB_FOO_INTR_VECT, crisv32_foo_arbiter_irq, if (request_irq(MEMARB_FOO_INTR_VECT, crisv32_foo_arbiter_irq,
IRQF_DISABLED, "arbiter", NULL)) 0, "arbiter", NULL))
printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); printk(KERN_ERR "Couldn't allocate arbiter IRQ\n");
if (request_irq(MEMARB_BAR_INTR_VECT, crisv32_bar_arbiter_irq, if (request_irq(MEMARB_BAR_INTR_VECT, crisv32_bar_arbiter_irq,
IRQF_DISABLED, "arbiter", NULL)) 0, "arbiter", NULL))
printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); printk(KERN_ERR "Couldn't allocate arbiter IRQ\n");
#ifndef CONFIG_ETRAX_KGDB #ifndef CONFIG_ETRAX_KGDB
......
...@@ -184,7 +184,7 @@ static void crisv32_arbiter_init(void) ...@@ -184,7 +184,7 @@ static void crisv32_arbiter_init(void)
crisv32_arbiter_config(EXT_REGION, 0); crisv32_arbiter_config(EXT_REGION, 0);
crisv32_arbiter_config(INT_REGION, 0); crisv32_arbiter_config(INT_REGION, 0);
if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, IRQF_DISABLED, if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, 0,
"arbiter", NULL)) "arbiter", NULL))
printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); printk(KERN_ERR "Couldn't allocate arbiter IRQ\n");
......
...@@ -141,9 +141,9 @@ __asm__ ( \ ...@@ -141,9 +141,9 @@ __asm__ ( \
* handler is run and it prioritizes the timer interrupt. However if we had BLOCK'ed * handler is run and it prioritizes the timer interrupt. However if we had BLOCK'ed
* it here, we would not get the multiple_irq at all. * it here, we would not get the multiple_irq at all.
* *
* The non-blocking here is based on the knowledge that the timer interrupt is * The non-blocking here is based on the knowledge that the timer interrupt runs
* registered as a fast interrupt (IRQF_DISABLED) so that we _know_ there will not * with interrupts disabled, and therefore there will not be an sti() before the
* be an sti() before the timer irq handler is run to acknowledge the interrupt. * timer irq handler is run to acknowledge the interrupt.
*/ */
#define BUILD_TIMER_IRQ(nr,mask) \ #define BUILD_TIMER_IRQ(nr,mask) \
......
...@@ -102,9 +102,9 @@ __asm__ ( \ ...@@ -102,9 +102,9 @@ __asm__ ( \
* multiple_irq handler is run and it prioritizes the timer interrupt. However * multiple_irq handler is run and it prioritizes the timer interrupt. However
* if we had BLOCK'edit here, we would not get the multiple_irq at all. * if we had BLOCK'edit here, we would not get the multiple_irq at all.
* *
* The non-blocking here is based on the knowledge that the timer interrupt is * The non-blocking here is based on the knowledge that the timer interrupt runs
* registered as a fast interrupt (IRQF_DISABLED) so that we _know_ there will not * with interrupts disabled, and therefore there will not be an sti() before the
* be an sti() before the timer irq handler is run to acknowledge the interrupt. * timer irq handler is run to acknowledge the interrupt.
*/ */
#define BUILD_TIMER_IRQ(nr, mask) \ #define BUILD_TIMER_IRQ(nr, mask) \
void IRQ_NAME(nr); \ void IRQ_NAME(nr); \
......
...@@ -40,9 +40,6 @@ ...@@ -40,9 +40,6 @@
/* called by the assembler IRQ entry functions defined in irq.h /* called by the assembler IRQ entry functions defined in irq.h
* to dispatch the interrupts to registered handlers * to dispatch the interrupts to registered handlers
* interrupts are disabled upon entry - depending on if the
* interrupt was registered with IRQF_DISABLED or not, interrupts
* are re-enabled or not.
*/ */
asmlinkage void do_IRQ(int irq, struct pt_regs * regs) asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment