Messages in this thread Patch in this message |  | | Date | Mon, 09 Sep 1996 12:53:33 -0400 | From | Russell Berry <> | Subject | irq.h/ppp |
| |
> 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... --- 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" \ |  |