[4333] in linux-net channel archive

home help back first fref pref prev next nref lref last post

irq.h/ppp

daemon@ATHENA.MIT.EDU (Russell Berry)
Mon Sep 9 18:07:50 1996

Date: 	Mon, 09 Sep 1996 12:53:33 -0400
From: Russell Berry <rberry@albany.net>
To: linux-kernel@vger.rutgers.edu
CC: linux-net@vger.rutgers.edu, rberry@keeper.albany.net

This is a multi-part message in MIME format.

--------------12EE4ECA5970DD056B6F0BF6
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

> Subject: irq.h/ppp
> Date: Mon, 09 Sep 1996 12:49:49 -0400
> From: Russell Berry <rberry@albany.net>
> Organization: Berrex Computer Solutions
> To: linux-kernel@vger.rutgers.edu
> CC: linux-net@vger.rutgers.edu
> 
> A little history here first,
> 
> During my use of linux-2.0.14, a utility came out across the net called irqtune. I'm
> sure you all saw the posts.  Well maybe I started all this by reposting it and praising
> the increased ppp performance.  In reply, Linus, et. al. came out with a series of patches
> that changed irq.h throughout the subsequent versions.  Now, in kernel 2.0.18, my ppp is
> worse than it has ever been, even _with_ the irqtune utility.  But, I can't completely go
> back to 2.0.14 because some other things were broken.
> 
> Here is my solution, I'm going back to the 2.0.14 irq.h in my 2.0.18 kernel, if anyone else
> chooses to do so, below is the patch to do it so you don't have to re-download the entire
> sources to get one file. (as I just did).
> 
> Any comments/suggestions/flames/death threats welcome...
> 
> ---russ


I HATE when that happens!!!

Here's the patch...

--------------12EE4ECA5970DD056B6F0BF6
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="irqdiff"

--- linux/include/asm-i386/irq.h.orig	Sun Sep  1 03:53:04 1996
+++ linux/include/asm-i386/irq.h	Mon Sep  9 12:37:41 1996
@@ -81,7 +81,7 @@
  * a bit - without them it seems that the harddisk driver won't work on
  * all hardware. Arghh.
  */
-#define ACK_FIRST(mask,nr) \
+#define ACK_FIRST(mask) \
 	"inb $0x21,%al\n\t" \
 	"jmp 1f\n" \
 	"1:\tjmp 1f\n" \
@@ -90,10 +90,10 @@
 	"outb %al,$0x21\n\t" \
 	"jmp 1f\n" \
 	"1:\tjmp 1f\n" \
-	"1:\tmovb $0xE0+"#nr",%al\n\t" \
+	"1:\tmovb $0x20,%al\n\t" \
 	"outb %al,$0x20\n\t"
 
-#define ACK_SECOND(mask,nr) \
+#define ACK_SECOND(mask) \
 	"inb $0xA1,%al\n\t" \
 	"jmp 1f\n" \
 	"1:\tjmp 1f\n" \
@@ -102,12 +102,11 @@
 	"outb %al,$0xA1\n\t" \
 	"jmp 1f\n" \
 	"1:\tjmp 1f\n" \
-	"1:\tmovb $0xE0+"#nr",%al\n\t" \
+	"1:\tmovb $0x20,%al\n\t" \
 	"outb %al,$0xA0\n\t" \
 	"jmp 1f\n" \
 	"1:\tjmp 1f\n" \
-	"1:\tmovb $0xE2,%al\n\t" \
-	"outb %al,$0x20\n\t"
+	"1:\toutb %al,$0x20\n\t"
 
 #define UNBLK_FIRST(mask) \
 	"inb $0x21,%al\n\t" \
@@ -208,7 +207,7 @@
 	"pushl $-"#nr"-2\n\t" \
 	SAVE_ALL \
 	ENTER_KERNEL \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	"incl "SYMBOL_NAME_STR(intr_count)"\n\t"\
 	"sti\n\t" \
 	"movl %esp,%ebx\n\t" \
@@ -225,7 +224,7 @@
 SYMBOL_NAME_STR(fast_IRQ) #nr "_interrupt:\n\t" \
 	SAVE_MOST \
 	ENTER_KERNEL \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	"incl "SYMBOL_NAME_STR(intr_count)"\n\t" \
 	"pushl $" #nr "\n\t" \
 	"call "SYMBOL_NAME_STR(do_fast_IRQ)"\n\t" \
@@ -239,7 +238,7 @@
 SYMBOL_NAME_STR(bad_IRQ) #nr "_interrupt:\n\t" \
 	SAVE_MOST \
 	ENTER_KERNEL \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	LEAVE_KERNEL \
 	RESTORE_MOST);
 	
@@ -256,7 +255,7 @@
 	"pushl $-"#nr"-2\n\t" \
 	SAVE_ALL \
 	ENTER_KERNEL \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	"incl "SYMBOL_NAME_STR(intr_count)"\n\t"\
 	"movl %esp,%ebx\n\t" \
 	"pushl %ebx\n\t" \
@@ -284,7 +283,7 @@
 	"pushl $-"#nr"-2\n\t" \
 	SAVE_ALL \
 	ENTER_KERNEL \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	"incl "SYMBOL_NAME_STR(intr_count)"\n\t"\
 	"sti\n\t" \
 	"movl %esp,%ebx\n\t" \
@@ -302,7 +301,7 @@
 "\n"__ALIGN_STR"\n" \
 SYMBOL_NAME_STR(fast_IRQ) #nr "_interrupt:\n\t" \
 	SAVE_MOST \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	SMP_PROF_IPI_CNT \
 	"pushl $" #nr "\n\t" \
 	"call "SYMBOL_NAME_STR(do_fast_IRQ)"\n\t" \
@@ -313,7 +312,7 @@
 "\n"__ALIGN_STR"\n" \
 SYMBOL_NAME_STR(bad_IRQ) #nr "_interrupt:\n\t" \
 	SAVE_MOST \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	RESTORE_MOST);
 
 #define BUILD_RESCHEDIRQ(nr) \
@@ -346,7 +345,7 @@
 SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \
 	"pushl $-"#nr"-2\n\t" \
 	SAVE_ALL \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	"incl "SYMBOL_NAME_STR(intr_count)"\n\t"\
 	"sti\n\t" \
 	"movl %esp,%ebx\n\t" \
@@ -361,7 +360,7 @@
 "\n"__ALIGN_STR"\n" \
 SYMBOL_NAME_STR(fast_IRQ) #nr "_interrupt:\n\t" \
 	SAVE_MOST \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	"incl "SYMBOL_NAME_STR(intr_count)"\n\t" \
 	"pushl $" #nr "\n\t" \
 	"call "SYMBOL_NAME_STR(do_fast_IRQ)"\n\t" \
@@ -373,7 +372,7 @@
 "\n"__ALIGN_STR"\n" \
 SYMBOL_NAME_STR(bad_IRQ) #nr "_interrupt:\n\t" \
 	SAVE_MOST \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	RESTORE_MOST);
 	
 #define BUILD_TIMER_IRQ(chip,nr,mask) \
@@ -387,7 +386,7 @@
 SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \
 	"pushl $-"#nr"-2\n\t" \
 	SAVE_ALL \
-	ACK_##chip(mask,(nr&7)) \
+	ACK_##chip(mask) \
 	"incl "SYMBOL_NAME_STR(intr_count)"\n\t"\
 	"movl %esp,%ebx\n\t" \
 	"pushl %ebx\n\t" \

--------------12EE4ECA5970DD056B6F0BF6--


home help back first fref pref prev next nref lref last post