* Fixed first interrupt after associating the handler getting eaten
* Don't use IPI IRQs unless we're using SMP
This commit is contained in:
Jens Kehne 2010-07-13 16:08:45 +02:00
parent bf8fce9cc1
commit d0758fa881
2 changed files with 6 additions and 2 deletions

View File

@ -169,11 +169,13 @@ void SECTION (".init") intctrl_t::init_arch()
void SECTION(".init") intctrl_t::init_cpu(int cpu)
{
#ifdef CONFIG_SMP
ASSERT(cpu < 4);
/* map IPIs */
set_irq_routing(get_ipi_irq(cpu, 0), cpu);
enable(get_ipi_irq(cpu, 0));
#endif
}
word_t intctrl_t::init_controllers() {

View File

@ -158,8 +158,10 @@ public:
bool is_pending(word_t irq);
void enable(word_t irq)
{ unmask(irq); }
void enable(word_t irq) {
if (unmask(irq))
::handle_interrupt(irq);
}
void disable(word_t irq)
{ mask(irq); }