linux-2.4.9: atomic_dec_and_lock sometimes used while not defined

From: Adam J. Richter (adam@yggdrasil.com)
Date: Thu Aug 16 2001 - 13:21:45 EST


        If I try to build a kernel that can do SMP and run on a 386,
the linux-2.4.9 NFS client gets compiled with an undefined reference
to atomic_dec_and_lock(). I imagine that the correct fix is to
change the ifdefs that bracket the following line in include/linux/spinlock.h:

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

        However, I'm really not clear enough on the semantics of
atomic_dec_and_lock vs. atomic_dec_and_test to know whether this
is safe.

        Also, it looks like arch/sparc64/sparc64_ksyms.c references
atomic_dec_and_test without it every being defined on any architecture
other than x86, so I am suspicious of a partially applied patch here.

        If nobody has a better idea, I'm going to move the
#define statement that I mentioned above out of its current
ifdef logic and just bracket it like so:

#ifndef CONFIG_HAVE_DEC_LOCK
#define atomic_dec_and_lock(atomic,lock) atomic_dec_and_test(atomic)
#endif

Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
-
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/



This archive was generated by hypermail 2b29 : Thu Aug 23 2001 - 21:00:20 EST