21 Oct, 2011

3 commits


04 Aug, 2011

1 commit


03 Aug, 2011

3 commits


28 Jul, 2011

1 commit

  • Should have been done in commit 1af08a1407f4 ("This is in preparation
    for more generic atomic").

    Signed-off-by: Stephen Rothwell
    Cc: Arun Sharma
    Cc: David Miller
    Cc: "Hans-Christian Egtvedt"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

21 May, 2011

1 commit


12 May, 2011

1 commit

  • When we are in the label cc_dword_align, registers %o0 and %o1 have the same last 2 bits,
    but it's not guaranteed one of them is zero. So we can get unaligned memory access
    in label ccte. Example of parameters which lead to this:
    %o0=0x7ff183e9, %o1=0x8e709e7d, %g1=3

    With the parameters I had a memory corruption, when the additional 5 bytes were rewritten.
    This patch corrects the error.

    One comment to the patch. We don't care about the third bit in %o1, because cc_end_cruft
    stores word or less.

    Signed-off-by: Tkhai Kirill
    Signed-off-by: David S. Miller

    Tkhai Kirill
     

22 Apr, 2011

1 commit


16 Mar, 2011

1 commit

  • …el/git/tip/linux-2.6-tip

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rtmutex: tester: Remove the remaining BKL leftovers
    lockdep/timers: Explain in detail the locking problems del_timer_sync() may cause
    rtmutex: Simplify PI algorithm and make highest prio task get lock
    rwsem: Remove redundant asmregparm annotation
    rwsem: Move duplicate function prototypes to linux/rwsem.h
    rwsem: Unify the duplicate rwsem_is_locked() inlines
    rwsem: Move duplicate init macros and functions to linux/rwsem.h
    rwsem: Move duplicate struct rwsem declaration to linux/rwsem.h
    x86: Cleanup rwsem_count_t typedef
    rwsem: Cleanup includes
    locking: Remove deprecated lock initializers
    cred: Replace deprecated spinlock initialization
    kthread: Replace deprecated spinlock initialization
    xtensa: Replace deprecated spinlock initialization
    um: Replace deprecated spinlock initialization
    sparc: Replace deprecated spinlock initialization
    mips: Replace deprecated spinlock initialization
    cris: Replace deprecated spinlock initialization
    alpha: Replace deprecated spinlock initialization
    rtmutex-tester: Remove BKL tests

    Linus Torvalds
     

09 Feb, 2011

1 commit


27 Jan, 2011

1 commit


19 Aug, 2010

2 commits


18 Aug, 2010

1 commit

  • Basically tip-off the powerpc code, use a 64-bit type and atomic64_t
    interfaces for the implementation.

    This gets us off of the by-hand asm code I wrote, which frankly I
    think probably ruins I-cache hit rates.

    The idea was the keep the call chains less deep, but anything taking
    the rw-semaphores probably is also calling other stuff and therefore
    already has allocated a stack-frame. So no real stack frame savings
    ever.

    Ben H. has posted patches to make powerpc use 64-bit too and with some
    abstractions we can probably use a shared header file somewhere.

    With suggestions from Sam Ravnborg.

    Signed-off-by: David S. Miller

    David S. Miller
     

14 Apr, 2010

1 commit

  • 128 bytes is sufficient for the register window save area, but the
    calling conventions allow the callee to save up to 6 incoming argument
    registers into the stack frame after the register window save area.

    This means a minimal stack frame is 176 bytes (128 + (6 * 8)).

    This fixes random crashes when using the function tracer.

    Reported-by: Frederic Weisbecker
    Signed-off-by: David S. Miller

    David S. Miller
     

13 Apr, 2010

4 commits


11 Dec, 2009

2 commits


09 Dec, 2009

1 commit

  • Commit 4f70f7a91bffdcc39f088748dc678953eb9a3fbd
    (sparc64: Implement IRQ stacks.) has two bugs.

    First, the softirq range check forgets to subtract STACK_BIAS
    before comparing with %sp. Next, on failure the wrong label
    is jumped to, resulting in a bogus stack being loaded.

    Reported-by: Igor Kovalenko
    Signed-off-by: David S. Miller

    David S. Miller
     

30 May, 2009

1 commit


09 Feb, 2009

2 commits

  • This is based upon a report from Chris Torek and his initial patch.
    From Chris's report:

    --------------------
    This came up in testing kgdb, using the built-in tests -- turn
    on CONFIG_KGDB_TESTS, then

    echo V1 > /sys/module/kgdbts/parameters/kgdbts

    -- but it would affect using kgdb if you were debugging and looking
    at bad pointers.
    --------------------

    When we get a copy_{from,to}_user() request and the %asi is set to
    something other than ASI_AIUS (which is userspace) then we branch off
    to a routine called memcpy_user_stub(). It just does a straight
    memcpy since we are copying from kernel to kernel in this case.

    The logic was that since source and destination are both kernel
    pointers we don't need to have exception checks.

    But for what probe_kernel_{read,write}() is trying to do, we have to
    have the checks, otherwise things like kgdb bad kernel pointer
    accesses don't do the right thing.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This is an implementation of a suggestion made by Chris Torek:
    --------------------
    Something else I noticed in passing: the EX and EX_LD/EX_ST macros
    scattered throughout the various .S files make a fair bit of .fixup
    code, all of which does the same thing. At the cost of one symbol
    in copy_in_user.S, you could just have one common two-instruction
    retl-and-mov-1 fixup that they all share.
    --------------------

    The following is with a defconfig build:

    text data bss dec hex filename
    3972767 344024 584449 4901240 4ac978 vmlinux.orig
    3968887 344024 584449 4897360 4aba50 vmlinux

    Signed-off-by: David S. Miller

    David S. Miller
     

18 Jan, 2009

1 commit

  • Previously PeeCeeI.o was a library but it
    was always pulled in due to insw and friends being exported
    (at least for a modular kernel).

    But this resulted in modpost failures if there where no in-kernel
    users because then insw & friends were not linked in.

    Fix this by including PeeCeeI.o in the kernel unconditionally.

    The only drawback for this solution is that a nonmodular kernel
    will always include insw & friends no matter if they are in use or not.

    Reported-by: Meelis Roos
    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     

09 Jan, 2009

2 commits

  • Move all applicable EXPORT_SYMBOL()s to the file where the respective
    symbol is defined.

    Removed all the includes that are no longer needed in sparc_ksyms_64.c

    Comment all remaining EXPORT_SYMBOL()s in sparc_ksyms_64.c

    Signed-off-by: Sam Ravnborg

    Additions by Julian Calaby:
    * Moved EXPORT_SYMBOL()s for prom functions to their rightful places.
    * Made some minor cleanups to the includes and comments of sparc_ksyms_64.c
    * Updated and tidied commit message.
    * Rebased patch over sparc-2.6.git HEAD.
    * Ensured that all modified files have the correct includes.

    Signed-off-by: Julian Calaby
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • …sembler in lib/ to this file.

    Remove the duplicate entries from kernel/sparc_ksyms_*.c

    The rationale behind this is that the EXPORT_SYMBOL() should be close to
    their definition and we cannot add designate a symbol to be exported in
    assembler so at least put it in a file in the same directory.

    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

    Additions by Julian Calaby:
    * Rebased over sparc-2.6.git HEAD

    Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

    Sam Ravnborg
     

09 Dec, 2008

3 commits


05 Dec, 2008

2 commits

  • o Renamed files in sparc64 to _64.S when identical
    to sparc32 files.
    o iomap.c were equal for sparc32 and sparc64
    o adjusted sparc/Makefile now we have only one lib/

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     
  • Identical named files renamed to _32.S
    Refactored Makefile to prepare for unification.

    Linking order was altered slightly - but this is a lib.a file so
    it should not matter.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg
     

20 May, 2008

1 commit


29 Apr, 2008

1 commit

  • Almost all implementations of pci_iomap() in the kernel, including the generic
    lib/iomap.c one, copies the content of a struct resource into unsigned long's
    which will break on 32 bits platforms with 64 bits resources.

    This fixes all definitions of pci_iomap() to use resource_size_t. I also
    "fixed" the 64bits arch for consistency.

    Signed-off-by: Benjamin Herrenschmidt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

01 Feb, 2008

1 commit