]> git.neil.brown.name Git - history.git/commitdiff
ia64: Drop unused NEW_LOCK spinlock code and clean up unneeded test
authorDavid Mosberger <davidm@tiger.hpl.hp.com>
Tue, 11 Mar 2003 06:39:33 +0000 (22:39 -0800)
committerDavid Mosberger <davidm@tiger.hpl.hp.com>
Tue, 11 Mar 2003 06:39:33 +0000 (22:39 -0800)
in kernel unwinder.

arch/ia64/kernel/unwind.c
include/asm-ia64/spinlock.h

index 56901ef3b33e8fd5ea1851aee9abaa2663ac2ef2..f082018fcbc12b28cc264b6393c082030f78c404 100644 (file)
@@ -318,11 +318,6 @@ unw_access_gr (struct unw_frame_info *info, int regnum, unsigned long *val, char
                        }
                } else {
                        /* access a scratch register */
-                       if (!info->pt) {
-                               UNW_DPRINT(0, "unwind.%s: no pt-regs; cannot access r%d\n",
-                                          __FUNCTION__, regnum);
-                               return -1;
-                       }
                        pt = get_scratch_regs(info);
                        addr = (unsigned long *) (pt + pt_regs_off(regnum));
                        if (info->pri_unat_loc)
index 7478ee58fb9fd093b08fabdf3ce42b3f7a1a2519..ae846ea912248f4ee4a8af28d9206fa86479309f 100644 (file)
@@ -2,7 +2,7 @@
 #define _ASM_IA64_SPINLOCK_H
 
 /*
- * Copyright (C) 1998-2002 Hewlett-Packard Co
+ * Copyright (C) 1998-2003 Hewlett-Packard Co
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
  *
 #include <asm/bitops.h>
 #include <asm/atomic.h>
 
-#undef NEW_LOCK
-
-#ifdef NEW_LOCK
-
-typedef struct {
-       volatile unsigned int lock;
-} spinlock_t;
-
-#define SPIN_LOCK_UNLOCKED                     (spinlock_t) { 0 }
-#define spin_lock_init(x)                      ((x)->lock = 0)
-
-/*
- * Streamlined test_and_set_bit(0, (x)).  We use test-and-test-and-set
- * rather than a simple xchg to avoid writing the cache-line when
- * there is contention.
- */
-#define _raw_spin_lock(x)                                                              \
-{                                                                                      \
-       register char *addr __asm__ ("r31") = (char *) &(x)->lock;                      \
-                                                                                       \
-       __asm__ __volatile__ (                                                          \
-               "mov r30=1\n"                                                           \
-               "mov ar.ccv=r0\n"                                                       \
-               ";;\n"                                                                  \
-               "cmpxchg4.acq r30=[%0],r30,ar.ccv\n"                                    \
-               ";;\n"                                                                  \
-               "cmp.ne p15,p0=r30,r0\n"                                                \
-               "(p15) br.call.spnt.few b7=ia64_spinlock_contention\n"                  \
-               ";;\n"                                                                  \
-               "1:\n"                          /* force a new bundle */                \
-               :: "r"(addr)                                                            \
-               : "ar.ccv", "ar.pfs", "b7", "p15", "r28", "r29", "r30", "memory");      \
-}
-
-#define _raw_spin_trylock(x)                                                           \
-({                                                                                     \
-       register long result;                                                           \
-                                                                                       \
-       __asm__ __volatile__ (                                                          \
-               "mov ar.ccv=r0\n"                                                       \
-               ";;\n"                                                                  \
-               "cmpxchg4.acq %0=[%2],%1,ar.ccv\n"                                      \
-               : "=r"(result) : "r"(1), "r"(&(x)->lock) : "ar.ccv", "memory");         \
-       (result == 0);                                                                  \
-})
-
-#define spin_is_locked(x)      ((x)->lock != 0)
-#define _raw_spin_unlock(x)    do { barrier(); ((spinlock_t *) x)->lock = 0;} while (0)
-#define spin_unlock_wait(x)    do { barrier(); } while ((x)->lock)
-
-#else /* !NEW_LOCK */
-
 typedef struct {
        volatile unsigned int lock;
 } spinlock_t;
@@ -123,8 +71,6 @@ do {                                                                                 \
 #define _raw_spin_trylock(x)   (cmpxchg_acq(&(x)->lock, 0, 1) == 0)
 #define spin_unlock_wait(x)    do { barrier(); } while ((x)->lock)
 
-#endif /* !NEW_LOCK */
-
 typedef struct {
        volatile int read_counter:31;
        volatile int write_lock:1;