lkml.org 
[lkml]   [2001]   [Oct]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[patch] 2.4.10 build failure - atomic_dec_and_lock export
    Date
    On Tue, 2 Oct 2001 19:52:29 +0200, 
    Trond Myklebust <trond.myklebust@fys.uio.no> wrote:
    >>>>>> " " == Andreas Schwab <schwab@suse.de> writes:
    >
    > > Trond Myklebust <trond.myklebust@fys.uio.no> writes:
    > > |> If you have CONFIG_SMP defined then atomic_dec_and_lock will
    > > |> never get defined
    >
    > > Unless you use CONFIG_MODVERSIONS, which causes
    > > atomic_dec_and_lock to be versioned and defined as a macro via
    > > <linux/modversions.h>.
    >
    >Oh great... That's going to confound the test in <linux/spinlock.h>
    >too.
    >
    >Urgh. Can anybody propose a less ugly solution than EXPORT_SYMBOL_NOVERS()?

    Use a second flag when atomic_dec_and_lock() is #defined. No conflict
    with modversions then.

    Index: 10.1/lib/dec_and_lock.c
    --- 10.1/lib/dec_and_lock.c Wed, 29 Aug 2001 09:36:05 +1000 kaos (linux-2.4/j/21_dec_and_lo 1.1.1.1 644)
    +++ 10.1(w)/lib/dec_and_lock.c Wed, 03 Oct 2001 12:24:35 +1000 kaos (linux-2.4/j/21_dec_and_lo 1.1.1.1 644)
    @@ -26,7 +26,7 @@
    * store-conditional approach, for example.
    */

    -#ifndef atomic_dec_and_lock
    +#ifndef ATOMIC_DEC_AND_LOCK
    int atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock)
    {
    spin_lock(lock);
    Index: 10.1/include/linux/spinlock.h
    --- 10.1/include/linux/spinlock.h Thu, 05 Jul 2001 14:00:51 +1000 kaos (linux-2.4/X/48_spinlock.h 1.1.2.1 644)
    +++ 10.1(w)/include/linux/spinlock.h Wed, 03 Oct 2001 12:27:02 +1000 kaos (linux-2.4/X/48_spinlock.h 1.1.2.1 644)
    @@ -42,6 +42,7 @@
    #if (DEBUG_SPINLOCKS < 1)

    #define atomic_dec_and_lock(atomic,lock) atomic_dec_and_test(atomic)
    +#define ATOMIC_DEC_AND_LOCK

    /*
    * Your basic spinlocks, allowing only a single CPU anywhere
    @@ -128,7 +129,7 @@ typedef struct {
    #endif /* !SMP */

    /* "lock on reference count zero" */
    -#ifndef atomic_dec_and_lock
    +#ifndef ATOMIC_DEC_AND_LOCK
    #include <asm/atomic.h>
    extern int atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
    #endif
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:03    [W:0.040 / U:2.648 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site