diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog index f10c2e24a4..fb92f1377f 100644 --- a/c/src/lib/libcpu/powerpc/ChangeLog +++ b/c/src/lib/libcpu/powerpc/ChangeLog @@ -1,3 +1,9 @@ +2007-12-11 Till Straumann + + * new-exceptions/bspsupport/irq.c: enable/disable + irq at PIC if an initial handler is present/absent + (reproduce traditional semantics). + 2007-12-10 Till Straumann * new-exceptions/e500_raw_exc_init.c: map DEC diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/irq.c b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/irq.c index ed73936ecc..7a154e2195 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/irq.c +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/irq.c @@ -346,6 +346,12 @@ int BSP_rtems_irq_mngt_set(rtems_irq_global_settings* config) if (vchain->on) vchain->on(vchain); } + if ( vchain != &rtems_hdl_tbl[i] ) { + /* at least one handler registered */ + BSP_enable_irq_at_pic(i); + } else { + BSP_disable_irq_at_pic(i); + } } rtems_interrupt_enable(level);