1. 25 Aug, 2007 36 commits
  2. 15 Aug, 2007 4 commits
    • Willy Tarreau's avatar
      Linux 2.6.20.16 · 79774188
      Willy Tarreau authored
      79774188
    • Stephen Hemminger's avatar
      [PATCH] sky2: workaround for lost IRQ · 0aa15e9b
      Stephen Hemminger authored
      This patch restores a couple of workarounds from 2.6.16:
       * restart transmit moderation timer in case it expires during IRQ routine
       * default to having 10 HZ watchdog timer.
      At this point it more important not to hang than to worry about the
      power cost.
      Signed-off-by: default avatarStephen Hemminger <shemminger@linux-foundation.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      0aa15e9b
    • Jason Wessel's avatar
      [PATCH] i386: fix infinite loop with singlestep int80 syscalls · c1858008
      Jason Wessel authored
      The commit 635cf99a introduced a
      regression.  Executing a ptrace single step after certain int80
      accesses will infinitely loop and never advance the PC.
      
      The TIF_SINGLESTEP check should be done on the return from the syscall
      and not before it.
      
      The new test case is below:
      
      /* Test whether singlestep through an int80 syscall works.
       */
      #define _GNU_SOURCE
      #include <stdio.h>
      #include <unistd.h>
      #include <fcntl.h>
      #include <sys/ptrace.h>
      #include <sys/wait.h>
      #include <sys/mman.h>
      #include <asm/user.h>
      #include <string.h>
      
      static int child, status;
      static struct user_regs_struct regs;
      
      static void do_child()
      {
      	char str[80] = "child: int80 test\n";
      
      	ptrace(PTRACE_TRACEME, 0, 0, 0);
      	kill(getpid(), SIGUSR1);
      	write(fileno(stdout),str,strlen(str));
      	asm ("int $0x80" : : "a" (20)); /* getpid */
      }
      
      static void do_parent()
      {
      	unsigned long eip, expected = 0;
      again:
      	waitpid(child, &status, 0);
      	if (WIFEXITED(status) || WIFSIGNALED(status))
      		return;
      
      	if (WIFSTOPPED(status)) {
      		ptrace(PTRACE_GETREGS, child, 0, &regs);
      		eip = regs.eip;
      		if (expected)
      			fprintf(stderr, "child stop @ %08lx, expected %08lx %s\n",
      					eip, expected,
      					eip == expected ? "" : " <== ERROR");
      
      		if (*(unsigned short *)eip == 0x80cd) {
      			fprintf(stderr, "int 0x80 at %08x\n", (unsigned int)eip);
      			expected = eip + 2;
      		} else
      			expected = 0;
      
      		ptrace(PTRACE_SINGLESTEP, child, NULL, NULL);
      	}
      	goto again;
      }
      
      int main(int argc, char * const argv[])
      {
      	child = fork();
      	if (child)
      		do_parent();
      	else
      		do_child();
      	return 0;
      }
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Chuck Ebbert <cebbert@redhat.com>
      Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c1858008
    • Jay Lubomirski's avatar
      [PATCH] serial: clear proper MPSC interrupt cause bits · 602f7345
      Jay Lubomirski authored
      The interrupt clearing code in mpsc_sdma_intr_ack() mistakenly clears the
      interrupt for both controllers instead of just the one its supposed to.
      This can result in the other controller appearing to hang because its
      interrupt was effectively lost.
      
      So, don't clear the interrupt cause bits for both MPSC controllers when
      clearing the interrupt for one of them.  Just clear the one that is
      supposed to be cleared.
      Signed-off-by: default avatarJay Lubomirski <jaylubo@motorola.com>
      Acked-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarChris Wright <chrisw@sous-sol.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      602f7345