22 Jun, 2005

1 commit

  • This patch implements a number of smp_processor_id() cleanup ideas that
    Arjan van de Ven and I came up with.

    The previous __smp_processor_id/_smp_processor_id/smp_processor_id API
    spaghetti was hard to follow both on the implementational and on the
    usage side.

    Some of the complexity arose from picking wrong names, some of the
    complexity comes from the fact that not all architectures defined
    __smp_processor_id.

    In the new code, there are two externally visible symbols:

    - smp_processor_id(): debug variant.

    - raw_smp_processor_id(): nondebug variant. Replaces all existing
    uses of _smp_processor_id() and __smp_processor_id(). Defined
    by every SMP architecture in include/asm-*/smp.h.

    There is one new internal symbol, dependent on DEBUG_PREEMPT:

    - debug_smp_processor_id(): internal debug variant, mapped to
    smp_processor_id().

    Also, i moved debug_smp_processor_id() from lib/kernel_lock.c into a new
    lib/smp_processor_id.c file. All related comments got updated and/or
    clarified.

    I have build/boot tested the following 8 .config combinations on x86:

    {SMP,UP} x {PREEMPT,!PREEMPT} x {DEBUG_PREEMPT,!DEBUG_PREEMPT}

    I have also build/boot tested x64 on UP/PREEMPT/DEBUG_PREEMPT. (Other
    architectures are untested, but should work just fine.)

    Signed-off-by: Ingo Molnar
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

29 May, 2005

4 commits


21 May, 2005

2 commits

  • Some changes that I sent in didn't make 2.6.12-rc4 for some reason. This
    adds them back. We have
    an x86_64 definition of TOP_ADDR
    a reimplementation of the x86_64 csum_partial_copy_from_user
    some syntax fixes in arch/um/kernel/ptrace.c
    removal of a CFLAGS definition in the x86_64 Makefile
    some include changes in the x86_64 ptrace.c and user-offsets.h
    a syntax fix in elf-x86_64.h
    Also moved an include in the i386 and x86_64 Makefiles to make the symlinks
    work, and some small fixes from Al Viro.

    Signed-off-by: Jeff Dike
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Hopefully the addition of -E to my applypatch script
    will mean that I won't have these kinds of leftovers
    in the future.

    Linus Torvalds
     

17 May, 2005

1 commit

  • Actually remove elf.h in the tree. The previous patch, due to a quilt
    bug/misuse, left it in the tree as a 0-length file, preventing the build to
    see it as missing and to generate a symlink in its place.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     

07 May, 2005

2 commits


06 May, 2005

8 commits

  • Signed-off-by: Jesper Juhl
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jesper Juhl
     
  • UML: remove no longer needed arch-signal.h

    Signed-off-by: Bodo Stroesser
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bodo Stroesser
     
  • s390 has fast read access to realtime clock (nanosecond resolution). So it
    makes sense to have an arch-specific implementation not only of __delay, but
    __udelay also.

    Signed-off-by: Bodo Stroesser
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bodo Stroesser
     
  • This patch replaces the contents of include/asm-um/linkage.h
    by
    #include "asm/arch/linkage.h"

    Signed-off-by: Bodo Stroesser
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bodo Stroesser
     
  • This patch make elh.h a symlink to the new arch-specific include files of the
    form elf-.h, as in the same way already is done for some other
    includes. Also moves Elf-stuff from archparam-.h and elf.h to the
    new elf-.h files.

    Signed-off-by: Bodo Stroesser
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bodo Stroesser
     
  • This patch removes the arch-specific fault/trap-infos from thread and
    skas-regs.

    It adds a new struct faultinfo, that is arch-specific defined in
    sysdep/faultinfo.h.

    The structure is inserted in thread.arch and thread.regs.skas and
    thread.regs.tt

    Now, segv and other trap-handlers can copy the contents from regs.X.faultinfo
    to thread.arch.faultinfo with one simple assignment.

    Also, the number of macros necessary is reduced to

    FAULT_ADDRESS(struct faultinfo)
    extracts the faulting address from faultinfo

    FAULT_WRITE(struct faultinfo)
    extracts the "is_write" flag

    SEGV_IS_FIXABLE(struct faultinfo)
    is true for the fixable segvs, i.e. (TRAP == 14)
    on i386

    UPT_FAULTINFO(regs)
    result is (struct faultinfo *) to the faultinfo
    in regs->skas.faultinfo

    GET_FAULTINFO_FROM_SC(struct faultinfo, struct sigcontext *)
    copies the relevant parts of the sigcontext to
    struct faultinfo.

    On SIGSEGV, call user_signal() instead of handle_segv(), if the architecture
    provides the information needed in PTRACE_FAULTINFO, or if PTRACE_FAULTINFO is
    missing, because segv-stub will provide the info.

    The benefit of the change is, that in case of a non-fixable SIGSEGV, we can
    give user processes a SIGSEGV, instead of possibly looping on pagefault
    handling.

    Since handle_segv() sikked arch_fixup() implicitly by passing ip==0 to segv(),
    I changed segv() to call arch_fixup() only, if !is_user.

    Signed-off-by: Bodo Stroesser
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bodo Stroesser
     
  • These are some trivial fixes for the x86-64 subarch module support. The only
    potential problem is that I have to modify arch/x86_64/kernel/module.c, to
    avoid copying the whole of it.

    I can't use it verbatim because it depends on a special vmalloc-like area for
    modules, which for now (maybe that's to fix, I guess not) UML/x86-64 has not.
    I went the easy way and reused the i386 vmalloc()-based allocator.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • This patch does some totally trivial compilation fixes. It also restores the
    debugregs manipulation, which was commented out simply because it doesn't
    compile on x86_64 (we haven't yet implemented there debugregs handling).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     

03 May, 2005

2 commits


01 May, 2005

4 commits

  • Add some commentary about UML internals, for a strange trick.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Cleanup: make an inline of this empty proc.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • We want to make possible, for the user, to enable the i586 AES implementation.
    This requires a restructure.

    - Add a CONFIG_UML_X86 to notify that we are building a UML for i386.

    - Rename CONFIG_64_BIT to CONFIG_64BIT as is used for all other archs

    - Tell crypto/Kconfig that UML_X86 is as good as X86

    - Tell it that it must exclude not X86_64 but 64BIT, which will give the
    same results.

    - Tell kbuild to descend down into arch/i386/crypto/ to build what's needed.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Paolo 'Blaisorblade' Giarrusso

    Prevent the kernel from oopsing during the extable sorting, as it can do
    now, because the extable is in the readonly section of the binary.

    Jeff says: The exception table turned RO in 2.6.11-rc3-mm1 for some reason.
    Moving it causes it to land in the writable data section of the binary.

    Paolo says: This patch fixes a oops on startup, which can be easily
    triggered by compiling with CONFIG_MODE_TT disabled, and STATIC_LINK either
    disabled or enabled. The resulting kernel will always Oops on startup,
    after printing this simple output:

    I've verified, by binary search on the BitKeeper repository (synced up as
    of 2.6.12-rc2), starting from the range 2.6.11-2.6.12-rc1, that this bug
    shows up on BitKeeper revisions in the range [@1.1994.11.168,+inf), i.e.
    starting from this:

    [PATCH] lib/sort: Replace insertion sort in exception tables

    Since UML does not use the exception table, it's likely that insertion sort
    didn't happen to write anything on the table.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

20 Apr, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds