aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Opdenacker <michael.opdenacker@free-electrons.com>2013-09-04 01:17:40 -0400
committerJesper Nilsson <jespern@axis.com>2014-01-08 10:10:18 -0500
commit64d8ad933d06f3d5070db8eb855cdfc0a80b595d (patch)
treed04092bc330a10abe3c4afece2c4bcf46af84011
parentceb3b0212dfc843a6abe8a6f3b4e28c1f2059e64 (diff)
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: Michael Opdenacker <michael.opdenacker@free-electrons.com> Signed-off-by: Jesper Nilsson <jespern@axis.com>
-rw-r--r--arch/cris/arch-v10/drivers/gpio.c4
-rw-r--r--arch/cris/arch-v10/drivers/sync_serial.c4
-rw-r--r--arch/cris/arch-v10/kernel/time.c6
-rw-r--r--arch/cris/arch-v32/drivers/mach-a3/gpio.c2
-rw-r--r--arch/cris/arch-v32/drivers/mach-fs/gpio.c4
-rw-r--r--arch/cris/arch-v32/kernel/fasttimer.c2
-rw-r--r--arch/cris/arch-v32/kernel/irq.c10
-rw-r--r--arch/cris/arch-v32/kernel/smp.c2
-rw-r--r--arch/cris/arch-v32/kernel/time.c6
-rw-r--r--arch/cris/arch-v32/mach-a3/arbiter.c4
-rw-r--r--arch/cris/arch-v32/mach-fs/arbiter.c2
-rw-r--r--arch/cris/include/arch-v10/arch/irq.h6
-rw-r--r--arch/cris/include/arch-v32/arch/irq.h6
-rw-r--r--arch/cris/kernel/irq.c3
14 files changed, 27 insertions, 34 deletions
diff --git a/arch/cris/arch-v10/drivers/gpio.c b/arch/cris/arch-v10/drivers/gpio.c
index 609d5510410e..f4374bae4fb4 100644
--- a/arch/cris/arch-v10/drivers/gpio.c
+++ b/arch/cris/arch-v10/drivers/gpio.c
@@ -838,13 +838,13 @@ static int __init gpio_init(void)
838 * in some tests. 838 * in some tests.
839 */ 839 */
840 res = request_irq(TIMER0_IRQ_NBR, gpio_poll_timer_interrupt, 840 res = request_irq(TIMER0_IRQ_NBR, gpio_poll_timer_interrupt,
841 IRQF_SHARED | IRQF_DISABLED, "gpio poll", gpio_name); 841 IRQF_SHARED, "gpio poll", gpio_name);
842 if (res) { 842 if (res) {
843 printk(KERN_CRIT "err: timer0 irq for gpio\n"); 843 printk(KERN_CRIT "err: timer0 irq for gpio\n");
844 return res; 844 return res;
845 } 845 }
846 res = request_irq(PA_IRQ_NBR, gpio_interrupt, 846 res = request_irq(PA_IRQ_NBR, gpio_interrupt,
847 IRQF_SHARED | IRQF_DISABLED, "gpio PA", gpio_name); 847 IRQF_SHARED, "gpio PA", gpio_name);
848 if (res) 848 if (res)
849 printk(KERN_CRIT "err: PA irq for gpio\n"); 849 printk(KERN_CRIT "err: PA irq for gpio\n");
850 850
diff --git a/arch/cris/arch-v10/drivers/sync_serial.c b/arch/cris/arch-v10/drivers/sync_serial.c
index a1c498d18d31..04d39e0ca55d 100644
--- a/arch/cris/arch-v10/drivers/sync_serial.c
+++ b/arch/cris/arch-v10/drivers/sync_serial.c
@@ -580,7 +580,7 @@ static int sync_serial_open(struct inode *inode, struct file *file)
580 if (port == &ports[0]) { 580 if (port == &ports[0]) {
581 if (request_irq(8, 581 if (request_irq(8,
582 manual_interrupt, 582 manual_interrupt,
583 IRQF_SHARED | IRQF_DISABLED, 583 IRQF_SHARED,
584 "synchronous serial manual irq", 584 "synchronous serial manual irq",
585 &ports[0])) { 585 &ports[0])) {
586 printk(KERN_CRIT "Can't alloc " 586 printk(KERN_CRIT "Can't alloc "
@@ -590,7 +590,7 @@ static int sync_serial_open(struct inode *inode, struct file *file)
590 } else if (port == &ports[1]) { 590 } else if (port == &ports[1]) {
591 if (request_irq(8, 591 if (request_irq(8,
592 manual_interrupt, 592 manual_interrupt,
593 IRQF_SHARED | IRQF_DISABLED, 593 IRQF_SHARED,
594 "synchronous serial manual irq", 594 "synchronous serial manual irq",
595 &ports[1])) { 595 &ports[1])) {
596 printk(KERN_CRIT "Can't alloc " 596 printk(KERN_CRIT "Can't alloc "
diff --git a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c
index fce7c541d70d..e6a722715a8d 100644
--- a/arch/cris/arch-v10/kernel/time.c
+++ b/arch/cris/arch-v10/kernel/time.c
@@ -178,13 +178,11 @@ timer_interrupt(int irq, void *dev_id)
178 return IRQ_HANDLED; 178 return IRQ_HANDLED;
179} 179}
180 180
181/* timer is IRQF_SHARED so drivers can add stuff to the timer irq chain 181/* timer is IRQF_SHARED so drivers can add stuff to the timer irq chain */
182 * it needs to be IRQF_DISABLED to make the jiffies update work properly
183 */
184 182
185static struct irqaction irq2 = { 183static struct irqaction irq2 = {
186 .handler = timer_interrupt, 184 .handler = timer_interrupt,
187 .flags = IRQF_SHARED | IRQF_DISABLED, 185 .flags = IRQF_SHARED,
188 .name = "timer", 186 .name = "timer",
189}; 187};
190 188
diff --git a/arch/cris/arch-v32/drivers/mach-a3/gpio.c b/arch/cris/arch-v32/drivers/mach-a3/gpio.c
index 0b86deedacb9..74f9fe80940c 100644
--- a/arch/cris/arch-v32/drivers/mach-a3/gpio.c
+++ b/arch/cris/arch-v32/drivers/mach-a3/gpio.c
@@ -978,7 +978,7 @@ static int __init gpio_init(void)
978 CRIS_LED_DISK_WRITE(0); 978 CRIS_LED_DISK_WRITE(0);
979 979
980 int res2 = request_irq(GIO_INTR_VECT, gpio_interrupt, 980 int res2 = request_irq(GIO_INTR_VECT, gpio_interrupt,
981 IRQF_SHARED | IRQF_DISABLED, "gpio", &alarmlist); 981 IRQF_SHARED, "gpio", &alarmlist);
982 if (res2) { 982 if (res2) {
983 printk(KERN_ERR "err: irq for gpio\n"); 983 printk(KERN_ERR "err: irq for gpio\n");
984 return res2; 984 return res2;
diff --git a/arch/cris/arch-v32/drivers/mach-fs/gpio.c b/arch/cris/arch-v32/drivers/mach-fs/gpio.c
index a2ac0917f1a6..9e54273af0ca 100644
--- a/arch/cris/arch-v32/drivers/mach-fs/gpio.c
+++ b/arch/cris/arch-v32/drivers/mach-fs/gpio.c
@@ -964,11 +964,11 @@ gpio_init(void)
964 * in some tests. 964 * in some tests.
965 */ 965 */
966 if (request_irq(TIMER0_INTR_VECT, gpio_poll_timer_interrupt, 966 if (request_irq(TIMER0_INTR_VECT, gpio_poll_timer_interrupt,
967 IRQF_SHARED | IRQF_DISABLED, "gpio poll", &alarmlist)) 967 IRQF_SHARED, "gpio poll", &alarmlist))
968 printk(KERN_ERR "timer0 irq for gpio\n"); 968 printk(KERN_ERR "timer0 irq for gpio\n");
969 969
970 if (request_irq(GIO_INTR_VECT, gpio_pa_interrupt, 970 if (request_irq(GIO_INTR_VECT, gpio_pa_interrupt,
971 IRQF_SHARED | IRQF_DISABLED, "gpio PA", &alarmlist)) 971 IRQF_SHARED, "gpio PA", &alarmlist))
972 printk(KERN_ERR "PA irq for gpio\n"); 972 printk(KERN_ERR "PA irq for gpio\n");
973 973
974#ifdef CONFIG_ETRAX_VIRTUAL_GPIO 974#ifdef CONFIG_ETRAX_VIRTUAL_GPIO
diff --git a/arch/cris/arch-v32/kernel/fasttimer.c b/arch/cris/arch-v32/kernel/fasttimer.c
index f6644535b17e..b130c2c5fdd8 100644
--- a/arch/cris/arch-v32/kernel/fasttimer.c
+++ b/arch/cris/arch-v32/kernel/fasttimer.c
@@ -786,7 +786,7 @@ int fast_timer_init(void)
786 proc_create("fasttimer", 0, NULL, &proc_fasttimer_fops); 786 proc_create("fasttimer", 0, NULL, &proc_fasttimer_fops);
787#endif /* PROC_FS */ 787#endif /* PROC_FS */
788 if (request_irq(TIMER0_INTR_VECT, timer_trig_interrupt, 788 if (request_irq(TIMER0_INTR_VECT, timer_trig_interrupt,
789 IRQF_SHARED | IRQF_DISABLED, 789 IRQF_SHARED,
790 "fast timer int", &fast_timer_list)) 790 "fast timer int", &fast_timer_list))
791 printk(KERN_ERR "err: fasttimer irq\n"); 791 printk(KERN_ERR "err: fasttimer irq\n");
792 fast_timer_is_init = 1; 792 fast_timer_is_init = 1;
diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c
index 5ebe6e841820..25437ae28128 100644
--- a/arch/cris/arch-v32/kernel/irq.c
+++ b/arch/cris/arch-v32/kernel/irq.c
@@ -331,11 +331,11 @@ extern void do_IRQ(int irq, struct pt_regs * regs);
331void 331void
332crisv32_do_IRQ(int irq, int block, struct pt_regs* regs) 332crisv32_do_IRQ(int irq, int block, struct pt_regs* regs)
333{ 333{
334 /* Interrupts that may not be moved to another CPU and 334 /* Interrupts that may not be moved to another CPU may
335 * are IRQF_DISABLED may skip blocking. This is currently 335 * skip blocking. This is currently only valid for the
336 * only valid for the timer IRQ and the IPI and is used 336 * timer IRQ and the IPI and is used for the timer
337 * for the timer interrupt to avoid watchdog starvation. 337 * interrupt to avoid watchdog starvation.
338 */ 338 */
339 if (!block) { 339 if (!block) {
340 do_IRQ(irq, regs); 340 do_IRQ(irq, regs);
341 return; 341 return;
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c
index fe8e6039db2a..0698582467ca 100644
--- a/arch/cris/arch-v32/kernel/smp.c
+++ b/arch/cris/arch-v32/kernel/smp.c
@@ -64,7 +64,7 @@ static irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id);
64static int send_ipi(int vector, int wait, cpumask_t cpu_mask); 64static int send_ipi(int vector, int wait, cpumask_t cpu_mask);
65static struct irqaction irq_ipi = { 65static struct irqaction irq_ipi = {
66 .handler = crisv32_ipi_interrupt, 66 .handler = crisv32_ipi_interrupt,
67 .flags = IRQF_DISABLED, 67 .flags = 0,
68 .name = "ipi", 68 .name = "ipi",
69}; 69};
70 70
diff --git a/arch/cris/arch-v32/kernel/time.c b/arch/cris/arch-v32/kernel/time.c
index 8c4b45efd7b6..ee66866538f8 100644
--- a/arch/cris/arch-v32/kernel/time.c
+++ b/arch/cris/arch-v32/kernel/time.c
@@ -216,12 +216,10 @@ static inline irqreturn_t timer_interrupt(int irq, void *dev_id)
216 return IRQ_HANDLED; 216 return IRQ_HANDLED;
217} 217}
218 218
219/* Timer is IRQF_SHARED so drivers can add stuff to the timer irq chain. 219/* Timer is IRQF_SHARED so drivers can add stuff to the timer irq chain. */
220 * It needs to be IRQF_DISABLED to make the jiffies update work properly.
221 */
222static struct irqaction irq_timer = { 220static struct irqaction irq_timer = {
223 .handler = timer_interrupt, 221 .handler = timer_interrupt,
224 .flags = IRQF_SHARED | IRQF_DISABLED, 222 .flags = IRQF_SHARED,
225 .name = "timer" 223 .name = "timer"
226}; 224};
227 225
diff --git a/arch/cris/arch-v32/mach-a3/arbiter.c b/arch/cris/arch-v32/mach-a3/arbiter.c
index 15f5c9de2639..ab5c421a4de8 100644
--- a/arch/cris/arch-v32/mach-a3/arbiter.c
+++ b/arch/cris/arch-v32/mach-a3/arbiter.c
@@ -256,11 +256,11 @@ static void crisv32_arbiter_init(void)
256 crisv32_arbiter_config(1, EXT_REGION, 0); 256 crisv32_arbiter_config(1, EXT_REGION, 0);
257 257
258 if (request_irq(MEMARB_FOO_INTR_VECT, crisv32_foo_arbiter_irq, 258 if (request_irq(MEMARB_FOO_INTR_VECT, crisv32_foo_arbiter_irq,
259 IRQF_DISABLED, "arbiter", NULL)) 259 0, "arbiter", NULL))
260 printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); 260 printk(KERN_ERR "Couldn't allocate arbiter IRQ\n");
261 261
262 if (request_irq(MEMARB_BAR_INTR_VECT, crisv32_bar_arbiter_irq, 262 if (request_irq(MEMARB_BAR_INTR_VECT, crisv32_bar_arbiter_irq,
263 IRQF_DISABLED, "arbiter", NULL)) 263 0, "arbiter", NULL))
264 printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); 264 printk(KERN_ERR "Couldn't allocate arbiter IRQ\n");
265 265
266#ifndef CONFIG_ETRAX_KGDB 266#ifndef CONFIG_ETRAX_KGDB
diff --git a/arch/cris/arch-v32/mach-fs/arbiter.c b/arch/cris/arch-v32/mach-fs/arbiter.c
index 3f8ebb5c1477..c97f4d8120f9 100644
--- a/arch/cris/arch-v32/mach-fs/arbiter.c
+++ b/arch/cris/arch-v32/mach-fs/arbiter.c
@@ -184,7 +184,7 @@ static void crisv32_arbiter_init(void)
184 crisv32_arbiter_config(EXT_REGION, 0); 184 crisv32_arbiter_config(EXT_REGION, 0);
185 crisv32_arbiter_config(INT_REGION, 0); 185 crisv32_arbiter_config(INT_REGION, 0);
186 186
187 if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, IRQF_DISABLED, 187 if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, 0,
188 "arbiter", NULL)) 188 "arbiter", NULL))
189 printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); 189 printk(KERN_ERR "Couldn't allocate arbiter IRQ\n");
190 190
diff --git a/arch/cris/include/arch-v10/arch/irq.h b/arch/cris/include/arch-v10/arch/irq.h
index ca2675ae08ed..6aecb835037d 100644
--- a/arch/cris/include/arch-v10/arch/irq.h
+++ b/arch/cris/include/arch-v10/arch/irq.h
@@ -141,9 +141,9 @@ __asm__ ( \
141 * handler is run and it prioritizes the timer interrupt. However if we had BLOCK'ed 141 * handler is run and it prioritizes the timer interrupt. However if we had BLOCK'ed
142 * it here, we would not get the multiple_irq at all. 142 * it here, we would not get the multiple_irq at all.
143 * 143 *
144 * The non-blocking here is based on the knowledge that the timer interrupt is 144 * The non-blocking here is based on the knowledge that the timer interrupt runs
145 * registered as a fast interrupt (IRQF_DISABLED) so that we _know_ there will not 145 * with interrupts disabled, and therefore there will not be an sti() before the
146 * be an sti() before the timer irq handler is run to acknowledge the interrupt. 146 * timer irq handler is run to acknowledge the interrupt.
147 */ 147 */
148 148
149#define BUILD_TIMER_IRQ(nr,mask) \ 149#define BUILD_TIMER_IRQ(nr,mask) \
diff --git a/arch/cris/include/arch-v32/arch/irq.h b/arch/cris/include/arch-v32/arch/irq.h
index fe3cdd22bed4..0c1b4d3a34e7 100644
--- a/arch/cris/include/arch-v32/arch/irq.h
+++ b/arch/cris/include/arch-v32/arch/irq.h
@@ -102,9 +102,9 @@ __asm__ ( \
102 * multiple_irq handler is run and it prioritizes the timer interrupt. However 102 * multiple_irq handler is run and it prioritizes the timer interrupt. However
103 * if we had BLOCK'edit here, we would not get the multiple_irq at all. 103 * if we had BLOCK'edit here, we would not get the multiple_irq at all.
104 * 104 *
105 * The non-blocking here is based on the knowledge that the timer interrupt is 105 * The non-blocking here is based on the knowledge that the timer interrupt runs
106 * registered as a fast interrupt (IRQF_DISABLED) so that we _know_ there will not 106 * with interrupts disabled, and therefore there will not be an sti() before the
107 * be an sti() before the timer irq handler is run to acknowledge the interrupt. 107 * timer irq handler is run to acknowledge the interrupt.
108 */ 108 */
109#define BUILD_TIMER_IRQ(nr, mask) \ 109#define BUILD_TIMER_IRQ(nr, mask) \
110void IRQ_NAME(nr); \ 110void IRQ_NAME(nr); \
diff --git a/arch/cris/kernel/irq.c b/arch/cris/kernel/irq.c
index d36836dbbc07..dd0be5de55d5 100644
--- a/arch/cris/kernel/irq.c
+++ b/arch/cris/kernel/irq.c
@@ -40,9 +40,6 @@
40 40
41/* called by the assembler IRQ entry functions defined in irq.h 41/* called by the assembler IRQ entry functions defined in irq.h
42 * to dispatch the interrupts to registered handlers 42 * to dispatch the interrupts to registered handlers
43 * interrupts are disabled upon entry - depending on if the
44 * interrupt was registered with IRQF_DISABLED or not, interrupts
45 * are re-enabled or not.
46 */ 43 */
47 44
48asmlinkage void do_IRQ(int irq, struct pt_regs * regs) 45asmlinkage void do_IRQ(int irq, struct pt_regs * regs)