kernel - add UP version for spin_trylock_wr()
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 16 Jan 2010 01:50:13 +0000 (17:50 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 16 Jan 2010 01:50:13 +0000 (17:50 -0800)
* UP version is a degenerate case, used by kern_lock.o

Reported-by: Antonio Huete Jimenez <tuxillo@crater.dragonflybsd.org>
sys/sys/spinlock2.h

index 0eb9249..0c974f7 100644 (file)
@@ -78,8 +78,7 @@ extern void spin_lock_rd_contested(struct spinlock *mtx);
 
 /*
  * Attempt to obtain an exclusive spinlock.  Returns FALSE on failure,
- * TRUE on success.  Since the caller assumes that spinlocks must actually
- * work when using this function, it is only made available to SMP builds.
+ * TRUE on success.
  */
 static __inline boolean_t
 spin_trylock_wr(struct spinlock *mtx)
@@ -93,6 +92,17 @@ spin_trylock_wr(struct spinlock *mtx)
        return (TRUE);
 }
 
+#else
+
+static __inline boolean_t
+spin_trylock_wr(struct spinlock *mtx)
+{
+       globaldata_t gd = mycpu;
+
+       ++gd->gd_spinlocks_wr;
+       return (TRUE);
+}
+
 #endif
 
 /*