--- v1.0.4/linux/fs/proc/array.c	Thu Feb 17 10:36:54 1994
+++ linux/fs/proc/array.c	Mon Mar 28 11:40:19 1994
@@ -88,28 +88,38 @@
 
 static int get_kstat(char * buffer)
 {
-        return sprintf(buffer,	"cpu  %u %u %u %lu\n"
-        			"disk %u %u %u %u\n"
-        			"page %u %u\n"
-        			"swap %u %u\n"
-        			"intr %u\n"
-        			"ctxt %u\n"
-        			"btime %lu\n",
-                kstat.cpu_user,
-                kstat.cpu_nice,
-                kstat.cpu_system,
-                jiffies - (kstat.cpu_user + kstat.cpu_nice + kstat.cpu_system),
-                kstat.dk_drive[0],
-                kstat.dk_drive[1],
-                kstat.dk_drive[2],
-                kstat.dk_drive[3],
-                kstat.pgpgin,
-                kstat.pgpgout,
-                kstat.pswpin,
-                kstat.pswpout,
-                kstat.interrupts,
-                kstat.context_swtch,
-                xtime.tv_sec - jiffies / HZ);
+	int i, len;
+	unsigned sum = 0;
+
+	for (i = 0 ; i < 16 ; i++)
+		sum += kstat.interrupts[i];
+	len = sprintf(buffer,
+		"cpu  %u %u %u %lu\n"
+		"disk %u %u %u %u\n"
+		"page %u %u\n"
+		"swap %u %u\n"
+		"intr %u",
+		kstat.cpu_user,
+		kstat.cpu_nice,
+		kstat.cpu_system,
+		jiffies - (kstat.cpu_user + kstat.cpu_nice + kstat.cpu_system),
+		kstat.dk_drive[0],
+		kstat.dk_drive[1],
+		kstat.dk_drive[2],
+		kstat.dk_drive[3],
+		kstat.pgpgin,
+		kstat.pgpgout,
+		kstat.pswpin,
+		kstat.pswpout,
+		sum);
+	for (i = 0 ; i < 16 ; i++)
+		len += sprintf(buffer + len, " %u", kstat.interrupts[i]);
+	len += sprintf(buffer + len,
+		"\nctxt %u\n"
+		"btime %lu\n",
+		kstat.context_swtch,
+		xtime.tv_sec - jiffies / HZ);
+	return len;
 }
 
 
--- linux/kernel/irq.c.~1~	Sat Mar 26 18:23:43 1994
+++ linux/kernel/irq.c	Sat Mar 26 18:25:04 1994
@@ -201,7 +201,7 @@
 {
 	struct sigaction * sa = irq + irq_sigaction;
 
-	kstat.interrupts++;
+	kstat.interrupts[irq]++;
 	sa->sa_handler((int) regs);
 }
 
@@ -214,7 +214,7 @@
 {
 	struct sigaction * sa = irq + irq_sigaction;
 
-	kstat.interrupts++;
+	kstat.interrupts[irq]++;
 	sa->sa_handler(irq);
 }
 
--- linux/include/linux/kernel_stat.h.~1~	Sat Mar 26 18:23:44 1994
+++ linux/include/linux/kernel_stat.h	Sat Mar 26 18:25:04 1994
@@ -14,7 +14,7 @@
 	unsigned int dk_drive[DK_NDRIVE];
 	unsigned int pgpgin, pgpgout;
 	unsigned int pswpin, pswpout;
-	unsigned int interrupts;
+	unsigned int interrupts[16];
 	unsigned int ipackets, opackets;
 	unsigned int ierrors, oerrors;
 	unsigned int collisions;
