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