09 May, 2007

1 commit

  • atomic_add_unless as inline. Remove system.h atomic.h circular dependency.
    I agree (with Andi Kleen) this typeof is not needed and more error
    prone. All the original atomic.h code that uses cmpxchg (which includes
    the atomic_add_unless) uses defines instead of inline functions,
    probably to circumvent a circular dependency between system.h and
    atomic.h on powerpc (which my patch addresses). Therefore, it makes
    sense to use inline functions that will provide type checking.

    atomic_add_unless as inline. Remove system.h atomic.h circular dependency.
    Digging into the FRV architecture shows me that it is also affected by
    such a circular dependency. Here is the diff applying this against the
    rest of my atomic.h patches.

    It applies over the atomic.h standardization patches.

    Signed-off-by: Mathieu Desnoyers
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     

16 Mar, 2007

1 commit

  • Trying to build some code using atomic_clear_mask() on a ARM v6
    processor with a recent compiler (tried with gcc version 4.1.1
    (CodeSourcery ARM Sourcery G++ 2006q3-26), but
    all gcc > 4.1 might be affected) results in the following:

    /tmp/ccWKLJV8.s: Assembler messages:
    /tmp/ccWKLJV8.s:581: Error: instruction does not accept this addressing
    mode -- `ldrex r0,r3'
    /tmp/ccWKLJV8.s:583: Error: instruction does not accept this addressing
    mode -- `strex r1,r0,r3'

    Older gcc (like gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) have no problem
    with this.

    The patch below fixes the compile error. I also verified that gcc-4.0.0 generates identical code using both forms.

    Signed-off-by: Stelian Pop
    Acked-by: Catalin Marinas
    Signed-off-by: Russell King

    Stelian Pop
     

25 Sep, 2006

1 commit


26 Apr, 2006

1 commit


10 Jan, 2006

1 commit


07 Jan, 2006

1 commit

  • Several counters already have the need to use 64 atomic variables on 64 bit
    platforms (see mm_counter_t in sched.h). We have to do ugly ifdefs to fall
    back to 32 bit atomic on 32 bit platforms.

    The VM statistics patch that I am working on will also make more extensive
    use of atomic64.

    This patch introduces a new type atomic_long_t by providing definitions in
    asm-generic/atomic.h that works similar to the c "long" type. Its 32 bits
    on 32 bit platforms and 64 bits on 64 bit platforms.

    Also cleans up the determination of the mm_counter_t in sched.h.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

17 Nov, 2005

2 commits


16 Nov, 2005

1 commit

  • Patch from Nicolas Pitre

    If 'old' and 'oldval' are different then 'res' never gets set. In that
    case, if ever %0 happened to contain anything but zero (rather likely)
    then the code will loop forever (or until another CPU just come along
    and change the atomic value to match 'old' which is rather unlikely).

    Signed-off-by: Nicolas Pitre
    Signed-off-by: Russell King

    Nicolas Pitre
     

14 Nov, 2005

2 commits

  • Introduce an atomic_inc_not_zero operation. Make this a special case of
    atomic_add_unless because lockless pagecache actually wants
    atomic_inc_not_negativeone due to its offset refcount.

    Signed-off-by: Nick Piggin
    Cc: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Introduce an atomic_cmpxchg operation.

    Signed-off-by: Nick Piggin
    Cc: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

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