--- linux-2.4.20/include/asm-arm/atomic.h.orig	Tue Apr 22 15:37:48 2003
+++ linux-2.4.20/include/asm-arm/atomic.h	Tue Apr 22 15:42:23 2003
@@ -68,6 +68,32 @@
 	__restore_flags(flags);
 }
 
+static __inline__ int atomic_sub_and_test(int i, volatile atomic_t *v)
+{
+	unsigned long flags;
+	int result;
+
+	__save_flags_cli(flags);
+	v->counter -= i;
+	result = (v->counter == 0);
+	__restore_flags(flags);
+
+	return result;
+}
+
+static __inline__ int atomic_inc_and_test(volatile atomic_t *v)
+{
+	unsigned long flags;
+	int result;
+
+	__save_flags_cli(flags);
+	v->counter += 1;
+	result = (v->counter == 0);
+	__restore_flags(flags);
+
+	return result;
+}
+
 static __inline__ int atomic_dec_and_test(volatile atomic_t *v)
 {
 	unsigned long flags;
