xref: /linux/arch/arc/kernel/irq.c (revision 5210d1e6889c8183ecad269e86e2d9c524015b5f)
1 /*
2  * Copyright (C) 2011-12 Synopsys, Inc. (www.synopsys.com)
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  */
9 
10 #include <linux/interrupt.h>
11 #include <linux/module.h>
12 #include <asm/irqflags.h>
13 #include <asm/arcregs.h>
14 
15 void arch_local_irq_enable(void)
16 {
17 	unsigned long flags;
18 
19 	/*
20 	 * ARC IDE Drivers tries to re-enable interrupts from hard-isr
21 	 * context which is simply wrong
22 	 */
23 	if (in_irq()) {
24 		WARN_ONCE(1, "IRQ enabled from hard-isr");
25 		return;
26 	}
27 
28 	flags = arch_local_save_flags();
29 	flags |= (STATUS_E1_MASK | STATUS_E2_MASK);
30 	arch_local_irq_restore(flags);
31 }
32 EXPORT_SYMBOL(arch_local_irq_enable);
33