From 8d2487fd6037203b1a8ab6d651e4f2984a7a279b Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Wed, 12 Dec 2007 00:47:49 +0000 Subject: [PATCH] 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). --- c/src/lib/libcpu/powerpc/ChangeLog | 6 ++++++ c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/irq.c | 6 ++++++ 2 files changed, 12 insertions(+) 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);