Hallo, the Cobalt NASRaQ (as well as other RaQ models) has the problem of freezing when there is activity on the serial port and on the ethernet at the same time. Peter de Schrijver has tracked this down to a bug in the interrupt handler. The handler currently does not check whether an interrupt is masked and calls the handling routine for _every_ interrupt, not only for those that are not masked out currently. The following patch fixes this. Ralf, could you please apply the fix to the CVS? Regards, Karsten -- #include <standard_disclaimer> Nach Paragraph 28 Abs. 3 Bundesdatenschutzgesetz widerspreche ich der Nutzung oder Uebermittlung meiner Daten fuer Werbezwecke oder fuer die Markt- oder Meinungsforschung.
diff -Nur linux/arch/mips/cobalt/int-handler.S linux-cobalt/arch/mips/cobalt/int-handler.S --- linux/arch/mips/cobalt/int-handler.S Fri Sep 13 21:21:58 2002 +++ linux-cobalt/arch/mips/cobalt/int-handler.S Tue Dec 31 22:26:18 2002 @@ -30,7 +30,9 @@ /* * Get pending Interrupts */ - mfc0 s0,CP0_CAUSE # get irq mask + mfc0 s0,CP0_CAUSE # get raw irq status + mfc0 a0,CP0_STATUS # get irq mask + and s0,s0,a0 # compute masked irq status andi a0,s0,CAUSEF_IP2 /* Check for Galileo timer */ beq a0,zero,1f