1. 13 7月, 2007 2 次提交
    • D
      iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver · 2492c845
      Dan Williams 提交于
      Adds the platform device definitions and the architecture specific support
      routines (i.e. register initialization and descriptor formats) for the
      iop-adma driver.
      
      Changelog:
      * add support for > 1k zero sum buffer sizes
      * added dma/aau platform devices to iq80321 and iq80332 setup
      * fixed the calculation in iop_desc_is_aligned
      * support xor buffer sizes larger than 16MB
      * fix places where software descriptors are assumed to be contiguous, only
        hardware descriptors are contiguous for up to a PAGE_SIZE buffer size
      * convert to async_tx
      * add interrupt support
      * add platform devices for 80219 boards
      * do not call platform register macros in driver code
      * remove switch() statements for compatible register offsets/layouts
      * change over to bitmap based capabilities
      * remove unnecessary ARM assembly statement
      * checkpatch.pl fixes
      * gpl v2 only correction
      * phys move to dma_async_tx_descriptor
      
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      2492c845
    • D
      iop13xx: surface the iop13xx adma units to the iop-adma driver · 39a8d7d1
      Dan Williams 提交于
      Adds the platform device definitions and the architecture specific
      support routines (i.e. register initialization and descriptor formats) for the
      iop-adma driver.
      
      Changelog:
      * added 'descriptor pool size' to the platform data
      * add base support for buffer sizes larger than 16MB (hw max)
      * build error fix from Kirill A. Shutemov
      * rebase for async_tx changes
      * add interrupt support
      * do not call platform register macros in driver code
      * remove unnecessary ARM assembly statement
      * checkpatch.pl fixes
      * gpl v2 only correction
      
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      39a8d7d1
  2. 08 7月, 2007 1 次提交
  3. 07 7月, 2007 4 次提交
    • A
      GEODE: reboot fixup for geode machines with CS5536 boards · 95069f89
      Andres Salomon 提交于
      Writing to MSR 0x51400017 forces a hard reset on CS5536-based machines,
      this has the reboot fixup do just that if such a board is detected.
      Acked-by: NJordan Crouse <jordan.crouse@amd.com>
      Signed-off-by: NAndres Salomon <dilinger@debian.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      95069f89
    • V
      i386: es7000 build breakage fix · 071922c0
      Vivek Goyal 提交于
      o Commit 1833d6bc broke the build if
        compiled with CONFIG_ES7000=y and CONFIG_X86_GENERICARCH=n
      
      arch/i386/kernel/built-in.o(.init.text+0x4fa9): In function `acpi_parse_madt':
      : undefined reference to `acpi_madt_oem_check'
      arch/i386/kernel/built-in.o(.init.text+0x7406): In function `smp_read_mpc':
      : undefined reference to `mps_oem_check'
      arch/i386/kernel/built-in.o(.init.text+0x8990): In function
      `connect_bsp_APIC':
      : undefined reference to `enable_apic_mode'
      make: *** [.tmp_vmlinux1] Error 1
      
      o Fix the build issue. Provided the definitions of missing functions.
      
      o Don't have ES7000 machine. Only compile tested.
      
      Cc: Len Brown <lenb@kernel.org>
      Cc: Natalie Protasevich <protasnb@gmail.com>
      Cc: Roland Dreier <rolandd@cisco.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      071922c0
    • L
      MTRR: Fix race causing set_mtrr to go into infinite loop · d25c1ba2
      Loic Prylli 提交于
      Processors synchronization in set_mtrr requires the .gate field to be set
      after .count field is properly initialized.  Without an explicit barrier,
      the compiler was reordering those memory stores.  That was sometimes
      causing a processor (in ipi_handler) to see the .gate change and decrement
      .count before the latter is set by set_mtrr() (which then hangs in a
      infinite loop with irqs disabled).
      Signed-off-by: NLoic Prylli <loic@myri.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d25c1ba2
    • J
      i386: fix regression, endless loop in ptrace singlestep over an int80 · 1e2e99f0
      Jason Wessel 提交于
      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.
      
      I loops on each single step on the pop right after the int80 which writes out
      to the console.  At that point you can issue as many single steps as you want
      and it will not advance any further.
      
      The 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: NJason Wessel <jason.wessel@windriver.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: <stable@kernel.org>
      Cc: Chuck Ebbert <76306.1226@compuserve.com>
      Acked-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1e2e99f0
  4. 06 7月, 2007 6 次提交
  5. 05 7月, 2007 1 次提交
    • R
      [ARM] Fix non-page aligned boot time mappings · 7b9c7b4d
      Russell King 提交于
      AT91SAM9260 stopped booting with the recent changes to MM
      initialisation - it was asking for a non-aligned virtual address
      which caused loops to be non-terminal.  Fix this by rounding
      virtual addresses down, but remember to include the offset in
      the length, and round the length up to the following page.
      
      This means that asking for a mapping of 4K starting at 2K into
      a page maps two pages as one would expect.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7b9c7b4d
  6. 04 7月, 2007 4 次提交
  7. 02 7月, 2007 9 次提交
  8. 30 6月, 2007 1 次提交
  9. 29 6月, 2007 3 次提交
  10. 27 6月, 2007 9 次提交