mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
2003-07-08 Joel Sherrill <joel@OARcorp.com>
PR 416/bsps * ppc403/ictrl/ictrl.c (ictrl_isr): We acknolwegde the interrupt in interrupt controller (clr_exisr(mask)) before calling the interrupt handler that will acnowledge the interrupt source. This results in the interrupt beeing seen a second time by the interrupt controller. Reported and fixed by El Kolli Yacine <yacine.elkolli@crf.canon.fr>.
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
2003-07-08 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
PR 416/bsps
|
||||
* ppc403/ictrl/ictrl.c (ictrl_isr): We acknolwegde the interrupt in
|
||||
interrupt controller (clr_exisr(mask)) before calling the interrupt
|
||||
handler that will acnowledge the interrupt source. This results in
|
||||
the interrupt beeing seen a second time by the interrupt controller.
|
||||
Reported and fixed by El Kolli Yacine <yacine.elkolli@crf.canon.fr>.
|
||||
|
||||
2003-03-25 Thomas Doerfler <Thomas.Doerfler@imd-systems.de>
|
||||
|
||||
PR 368/filesystems
|
||||
|
||||
@@ -195,13 +195,14 @@ ictrl_isr(rtems_vector_number vector,CPU_Interrupt_frame *cpu_frame)
|
||||
for (exvec = 0;exvec < PPC_IRQ_EXT_MAX;exvec++) {
|
||||
mask = VEC_TO_EXMSK(exvec);
|
||||
if (0 != (istat & mask)) {
|
||||
clr_exisr(mask);
|
||||
/*clr_exisr(mask); too early to ack*/
|
||||
handler = ictrl_vector_table[exvec];
|
||||
if (handler) {
|
||||
istat &= ~mask;
|
||||
global_vec = exvec + PPC_IRQ_EXT_BASE;
|
||||
(handler)(global_vec);
|
||||
}
|
||||
clr_exisr(mask);/* now we can ack*/
|
||||
}
|
||||
}
|
||||
if (istat != 0) { /* anything left? then we have a spurious interrupt */
|
||||
|
||||
Reference in New Issue
Block a user