patch-1.3.72 linux/arch/i386/kernel/irq.c
Next file: linux/arch/i386/kernel/ldt.c
Previous file: linux/arch/i386/defconfig
Back to the patch index
Back to the overall index
- Lines: 26
- Date:
Wed Mar 6 13:59:34 1996
- Orig file:
v1.3.71/linux/arch/i386/kernel/irq.c
- Orig date:
Sat Mar 2 10:43:21 1996
diff -u --recursive --new-file v1.3.71/linux/arch/i386/kernel/irq.c linux/arch/i386/kernel/irq.c
@@ -33,7 +33,6 @@
#include <asm/smp.h>
#define CR0_NE 32
-#define TIMER_IRQ 0 /* Keep this in sync with time.c */
static unsigned char cache_21 = 0xff;
static unsigned char cache_A1 = 0xff;
@@ -96,8 +95,16 @@
* atomic. The specific handler is chosen depending on the SA_INTERRUPT
* flag when installing a handler. Finally, one "bad interrupt" handler, that
* is used when no handler is present.
+ *
+ * The timer interrupt is handled specially to insure that the jiffies
+ * variable is updated at all times. Specifically, the timer interrupt is
+ * just like the complete handlers except that it is invoked with interrupts
+ * disabled and should never re-enable them. If other interrupts were
+ * allowed to be processed while the timer interrupt is active, then the
+ * other interrupts would have to avoid using the jiffies variable for delay
+ * and interval timing operations to avoid hanging the system.
*/
-BUILD_IRQ(FIRST,0,0x01)
+BUILD_TIMER_IRQ(FIRST,0,0x01)
BUILD_IRQ(FIRST,1,0x02)
BUILD_IRQ(FIRST,2,0x04)
BUILD_IRQ(FIRST,3,0x08)
FUNET's LINUX-ADM group, [email protected]
TCL-scripts by Sam Shen, [email protected]
with Sam's (original) version of this