25 Feb, 2008

1 commit


20 Feb, 2008

4 commits

  • This patch fixes the following build error with CONFIG_EISA=n caused by
    commit 231a35d37293ab88d325a9cb94e5474c156282c0:

    ...
    LD .tmp_vmlinux1
    arch/mips/sni/built-in.o: In function `snirm_a20r_setup_devinit':
    a20r.c:(.init.text+0x42c): undefined reference to `sni_eisa_root_init'
    a20r.c:(.init.text+0x42c): relocation truncated to fit: R_MIPS_26 against `sni_eisa_root_init'
    arch/mips/sni/built-in.o: In function `snirm_setup_devinit':
    rm200.c:(.init.text+0x52c): undefined reference to `sni_eisa_root_init'
    rm200.c:(.init.text+0x52c): relocation truncated to fit: R_MIPS_26 against `sni_eisa_root_init'
    make[1]: *** [.tmp_vmlinux1] Error 1

    Signed-off-by: Adrian Bunk
    Acked-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Adrian Bunk
     
  • Two files were omitted from the recent removal of the qemu platform.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Ralf Baechle

    Adrian Bunk
     
  • This patch enables the system calls timerfd_create(), timerfd_settime()
    and timerfd_gettime() for MIPS architecture.

    Please see the following Bugzilla entry for more details:

    http://bugzilla.kernel.org/show_bug.cgi?id=10038

    This was tested using a Malta 4Kc board in both little-endian and
    big-endian modes. The unit test program is available from the URL
    above.

    Signed-off-by: Dmitri Vorobiev

    [Ralf: Added N64, N32 and O32 bits on 64-bit kernels.]
    Signed-off-by: Ralf Baechle

    Dmitri Vorobiev
     
  • Harmless since this function is not being called on I/O coherent systems
    such as IP27.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     

09 Feb, 2008

3 commits

  • Background: I've implemented 1K/2K page tables for s390. These sub-page
    page tables are required to properly support the s390 virtualization
    instruction with KVM. The SIE instruction requires that the page tables
    have 256 page table entries (pte) followed by 256 page status table entries
    (pgste). The pgstes are only required if the process is using the SIE
    instruction. The pgstes are updated by the hardware and by the hypervisor
    for a number of reasons, one of them is dirty and reference bit tracking.
    To avoid wasting memory the standard pte table allocation should return
    1K/2K (31/64 bit) and 2K/4K if the process is using SIE.

    Problem: Page size on s390 is 4K, page table size is 1K or 2K. That means
    the s390 version for pte_alloc_one cannot return a pointer to a struct
    page. Trouble is that with the CONFIG_HIGHPTE feature on x86 pte_alloc_one
    cannot return a pointer to a pte either, since that would require more than
    32 bit for the return value of pte_alloc_one (and the pte * would not be
    accessible since its not kmapped).

    Solution: The only solution I found to this dilemma is a new typedef: a
    pgtable_t. For s390 pgtable_t will be a (pte *) - to be introduced with a
    later patch. For everybody else it will be a (struct page *). The
    additional problem with the initialization of the ptl lock and the
    NR_PAGETABLE accounting is solved with a constructor pgtable_page_ctor and
    a destructor pgtable_page_dtor. The page table allocation and free
    functions need to call these two whenever a page table page is allocated or
    freed. pmd_populate will get a pgtable_t instead of a struct page pointer.
    To get the pgtable_t back from a pmd entry that has been installed with
    pmd_populate a new function pmd_pgtable is added. It replaces the pmd_page
    call in free_pte_range and apply_to_pte_range.

    Signed-off-by: Martin Schwidefsky
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Schwidefsky
     
  • Some arches (like alpha and ia64) already have a clean posix_types.h header.
    This brings all the others in line by removing all references to __GLIBC__
    (and some undocumented __USE_ALL).

    Signed-off-by: Mike Frysinger
    Acked-by: Ingo Molnar
    Cc: Ulrich Drepper
    Cc: Roland McGrath
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • Move STACK_TOP[_MAX] out of asm/a.out.h and into asm/processor.h as they're
    required whether or not A.OUT format is available.

    Signed-off-by: David Howells
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

08 Feb, 2008

3 commits

  • Make sure that at least cmpxchg64_local is available on all architectures to use
    for unsigned long long values.

    Signed-off-by: Mathieu Desnoyers
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • struct user.u_ar0 is defined to contain a pointer offset on all
    architectures in which it is defined (all architectures which define an
    a.out format except SPARC.) However, it has a pointer type in the headers,
    which is pointless -- is not exported to userspace, and it
    just makes the code messy.

    Redefine the field as "unsigned long" (which is the same size as a pointer
    on all Linux architectures) and change the setting code to user offsetof()
    instead of hand-coded arithmetic.

    Cc: Linux Arch Mailing List
    Cc: Bryan Wu
    Cc: Roman Zippel
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Russell King
    Cc: Lennert Buytenhek
    Cc: Håvard Skinnemoen
    Cc: Mikael Starvik
    Cc: Yoshinori Sato
    Cc: Tony Luck
    Cc: Hirokazu Takata
    Cc: Ralf Baechle
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Paul Mundt
    Signed-off-by: H. Peter Anvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • asm/elf.h, asm/page.h and asm/user.h don't export to userspace now, so we can
    drop #ifdef __KERNEL__ for them.

    [k.shutemov@gmail.com: remove #ifdef __KERNEL_]
    Signed-off-by: Kirill A. Shutemov
    Reviewed-by: David Woodhouse
    Cc:
    Signed-off-by: Kirill A. Shutemov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     

06 Feb, 2008

2 commits

  • (with Martin Schwidefsky )

    The pgd/pud/pmd/pte page table allocation functions get a mm_struct pointer as
    first argument. The free functions do not get the mm_struct argument. This
    is 1) asymmetrical and 2) to do mm related page table allocations the mm
    argument is needed on the free function as well.

    [kamalesh@linux.vnet.ibm.com: i386 fix]
    [akpm@linux-foundation.org: coding-syle fixes]
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Martin Schwidefsky
    Cc:
    Signed-off-by: Kamalesh Babulal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     
  • The following replaces the earlier patches sent. It should address
    David Rientjes's comments, and has been compile tested on all the
    architectures that it touches, save for parisc.

    For the /proc//pagemap code[1], we need to able to query how
    much virtual address space a particular task has. The trick is
    that we do it through /proc and can't use TASK_SIZE since it
    references "current" on some arches. The process opening the
    /proc file might be a 32-bit process opening a 64-bit process's
    pagemap file.

    x86_64 already has a TASK_SIZE_OF() macro:

    #define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? IA32_PAGE_OFFSET : TASK_SIZE64)

    I'd like to have that for other architectures. So, add it
    for all the architectures that actually use "current" in
    their TASK_SIZE. For the others, just add a quick #define
    in sched.h to use plain old TASK_SIZE.

    1. http://www.linuxworld.com/news/2007/042407-kernel.html

    - MIPS portion from Ralf Baechle

    [akpm@linux-foundation.org: fix mips build]
    Signed-off-by: Dave Hansen
    Signed-off-by: Ralf Baechle
    Signed-off-by: Matt Mackall
    Acked-by: David Rientjes
    Cc: Dave Hansen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Hansen
     

03 Feb, 2008

2 commits


02 Feb, 2008

1 commit

  • * Setup hwif->dev in au_ide_probe().

    * Use hwif->dev instead of ahwif->dev in auide_build_sglist(),
    auide_build_dmatable(), auide_dma_end() and auide_ddma_init().

    * Remove no longer needed 'dev' field from _auide_hwif type.

    Signed-off-by: Bartlomiej Zolnierkiewicz

    Bartlomiej Zolnierkiewicz
     

01 Feb, 2008

1 commit

  • A userspace program may wish to set the mark for each packets its send
    without using the netfilter MARK target. Changing the mark can be used
    for mark based routing without netfilter or for packet filtering.

    It requires CAP_NET_ADMIN capability.

    Signed-off-by: Laszlo Attila Toth
    Acked-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Laszlo Attila Toth
     

29 Jan, 2008

22 commits

  • This was compile-tested using default configs for the boards
    affected by this change.

    This patch does not introduce any functional changes.

    Signed-off-by: Dmitri Vorobiev
    Signed-off-by: Ralf Baechle

    Dmitri Vorobiev
     
  • This patch moves the "extern" declaration for the function
    mips_reboot_setup() from the board setup .c files to the
    header file include/asm-mips/mips-boards/generic.h.

    This fixes a warning produced by the checkpatch.pl script.

    No functional changes introduced.

    This was compile-tested by building the kernel for all
    three boards affected by this change. All builds finished
    successfully.

    Signed-off-by: Dmitri Vorobiev
    Signed-off-by: Ralf Baechle

    Dmitri Vorobiev
     
  • The Qemu platform was originally implemented to have an easily supportable
    platform until Qemu reaches a state where it emulates a real world system.
    Since the latest release Qemu is capable of emulating the MIPSsim and
    Malta platforms, so this goal has been reached. The Qemu plaform is also
    rather underfeatured so less useful than a Malta emulation.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Originally noticed by Jiri Olsa .

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Removed unneeded button check for reset.
    Because, the Cobalt has power switch.

    Signed-off-by: Yoichi Yuasa
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Yoichi Yuasa
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • - EISA support for non PCI RMs (RM200 and RM400-xxx). The major part
    is the splitting of the EISA and onboard ISA of the RM200, which
    makes the EISA bus on the RM200 look like on other RMs.
    - 64bit kernel support
    - system type detection is now common for big and little endian
    - moved sniprom code to arch/mips/fw
    - added call_o32 function to arch/mips/fw/lib, which uses a private
    stack for calling prom functions
    - fix problem with ISA interrupts, which makes using PIT clockevent
    possible

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • This patch adds IDs for new Au1200 variants: Au1210 and Au1250.
    They are essentially identical to the Au1200 except for the Au1210
    which has a different SoC-ID in the PRId register [bits 31:24].
    The Au1250 is a "Au1200 V0.2".

    Signed-off-by: Manuel Lauss
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • Add support for SGI IP28 machines (Indigo 2 with R10k CPUs)
    This work is mainly based on Peter Fuersts work.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • According to Broadcom the PT systems are production test systems which
    never reached customers so no need to keep the fragmentary support we
    currently have.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • IP28 needs special treatment to avoid speculative accesses. gcc
    takes care for .c code, but for assembly code we need to do it
    manually.

    This is taken from Peter Fuersts IP28 patches.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • This patch adds support for txx9wdt driver to rbhma3100, rbhma4200 and
    rbhma4500 platform.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • Taken from Peter Fuersts IP28 patches

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • R10k non coherent machines need a real dma cache invalidate to get rid of
    speculative stores in cache. For other machines this promises a slight
    speedup.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Since all the callers of the PHYS_TO_XKPHYS macro call with a constant,
    put the cast to LL inside the macro where it really should be rather
    than in all the callers. This makes macros like PHYS_TO_XKSEG_UNCACHED
    work without gcc whining.

    Signed-off-by: Andrew Sharp
    Signed-off-by: Ralf Baechle

    Andrew Sharp
     
  • Removed unused mips_machtype. These are only set but not used.

    Signed-off-by: Yoichi Yuasa
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Ralf Baechle

    Christoph Hellwig
     
  • This complements the generic R4000/R4400 errata workaround code and adds
    bits for the daddiu problem. In most places it just modifies handwritten
    assembly code so that the assembler is allowed to use a temporary register
    as daddiu may now be treated as a macro that expands to a sequence of li
    and daddu. It is the AT register or, where AT is unavailable or used
    explicitly for another purpose, an explicitly-named register is selected,
    using the .set at= feature added recently to gas. This feature is
    only used if CONFIG_CPU_DADDI_WORKAROUNDS has been set, so if the
    workaround remains disabled, the required version of binutils stays
    unchanged.

    Similarly, daddiu instructions put in branch delay slots in noreorder
    fragments are now taken out of them and the assembler is allowed to
    reorder them itself as possible (which it does making the whole idea of
    scheduling them into delay slots manually questionable).

    Also in the very few places where such a simple conversion was not
    possible, a handcoded longer sequence is implemented.

    Other than that there are changes to code responsible for building the
    TLB fault and page clear/copy handlers to avoid daddiu as appropriate.
    These are only effective if the erratum is verified to be present at the
    run time.

    Finally there is a trivial update to __delay(), because it uses daddiu in
    a branch delay slot.

    Signed-off-by: Maciej W. Rozycki
    Signed-off-by: Ralf Baechle

    Maciej W. Rozycki
     
  • This is the gereric part of R4000/R4400 errata workarounds. They include
    compiler and assembler support as well as some source code modifications
    to address the problems with some combinations of multiply/divide+shift
    instructions as well as the daddi and daddiu instructions.

    Changes included are as follows:

    1. New Kconfig options to select workarounds by platforms as necessary.

    2. Arch top-level Makefile to pass necessary options to the compiler; also
    incompatible configurations are detected (-mno-sym32 unsupported as
    horribly intrusive for little gain).

    3. Bug detection updated and shuffled -- the multiply/divide+shift problem
    is lethal enough that if not worked around it makes the kernel crash in
    time_init() because of a division by zero; the daddiu erratum might
    also trigger early potentially, though I have not observed it. On the
    other hand the daddi detection code requires the exception subsystem to
    have been initialised (and is there mainly for information).

    4. r4k_daddiu_bug() added so that the existence of the erratum can be
    queried by code at the run time as necessary; useful for generated code
    like TLB fault and copy/clear page handlers.

    5. __udelay() updated as it uses multiplication in inline assembly.

    Note that -mdaddi requires modified toolchain (which has been maintained
    by myself and available from my site for ~4years now -- versions covered
    are GCC 2.95.4 - 4.1.2 and binutils from 2.13 onwards). The -mfix-r4000
    and -mfix-r4400 have been standard for a while though.

    Signed-off-by: Maciej W. Rozycki
    Signed-off-by: Ralf Baechle

    Maciej W. Rozycki
     

22 Jan, 2008

1 commit

  • Fix compile warning (which becomes compile error due to -Werror). Type of
    argument "flags" for spin_lock_irqsave() was incorrect in some functions.

    Signed-off-by: Frank Rowand
    Signed-off-by: Ralf Baechle

    Frank Rowand