blob: c4e9b25d305f928ea8f1eb97a23d19f645ba90c0 [file] [log] [blame]
Vineet Guptaac4c2442013-01-18 15:12:16 +05301/*
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
15void 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}
32EXPORT_SYMBOL(arch_local_irq_enable);