Some old DOS assembly sources say that this sometimes happens without
any interrupts at all - just that the chip is sometimes confused. It'd
be definitely worth printing the bad and good values when a problem is
detected, so that we know what's happening.
I've checked it, and yes, the locking is somewhat broken. The following
drivers can access the timer chip and don't grab the lock:
drivers/char/ftape/lowlevel/ftape-calibr.c
drivers/char/joystick/analog.c
drivers/char/joystick/gameport.c
drivers/ide/hd.c
drivers/ide/ide.c
The joystick ones are my fault, of course, and I'll fix that asap.
> > By the way, if we made the 8254 accesses (spinlock?) protected (which
> > should be done anyway, right now definitely more than one CPU can access
> > the registers at once), I think we could remove the outb(0, 0x43);,
> > saving some cycles.
>
> Some chipsets need the outb
I see.
-- Vojtech Pavlik SuSE Labs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/