> Less important, but very odd is that my timer interrupt is now handled by > the XT_PIC, not the IO-APIC. I assumed this was standard behavior. Also, > I have a dual CPU machine, and I noticed that interrupts were no longer > even remotely balanced between the two CPUs. Please try the attached patch. Michael. diff -ru -x *.o /igphome/baraban/tmp/linux22smp/arch/i386/kernel/io_apic.c linux/arch/i386/kernel/io_apic.c --- /igphome/baraban/tmp/linux22smp/arch/i386/kernel/io_apic.c Thu Aug 12 16:09:15 1999 +++ linux/arch/i386/kernel/io_apic.c Thu Aug 12 16:10:27 1999 @@ -1260,11 +1260,7 @@ pin1 = find_timer_pin(mp_INT); pin2 = find_timer_pin(mp_ExtINT); -#ifndef __RTL__ enable_IO_APIC_irq(0); -#else - enableOne_IO_APIC_irq(0); -#endif if (!timer_irq_works()) { if (pin1 != -1) diff -ru -x *.o /igphome/baraban/tmp/linux22smp/arch/i386/kernel/irq.c linux/arch/i386/kernel/irq.c --- /igphome/baraban/tmp/linux22smp/arch/i386/kernel/irq.c Thu Aug 12 16:09:15 1999 +++ linux/arch/i386/kernel/irq.c Thu Aug 12 16:15:57 1999 @@ -118,7 +118,7 @@ unsigned int rtirq[IRQ_ARRAY_SIZE]; unsigned int pended_since_sti; }; -struct rtl_global rtl_global ={ {0},1,IRQ_ZINIT,IRQ_NZINIT,1,IRQ_ZINIT,0} ; +struct rtl_global rtl_global ={ +SPIN_LOCK_UNLOCKED,1,IRQ_ZINIT,IRQ_NZINIT,1,IRQ_ZINIT,0} ; /* macros for touching the global structure */ #define test_g(ix,y) test_bit(irq_to_pos(ix),&y[irq_to_index(ix)]) @@ -1740,8 +1740,8 @@ } -extern void rtl_time_init(void); -__initfunc( void rtl_init(void)){ +void rtl_init(void) +{ DeclareAndInit(cpu_id); #ifdef CONFIG_RTL printk("RTL start"); --- [rtl] --- To unsubscribe: echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED] ---- For more information on Real-Time Linux see: http://www.rtlinux.org/~rtlinux/