diff -Naur linux-2.6.16/include/linux/spinlock.h linux-2.6.16-r/include/linux/spinlock.h
--- linux-2.6.16/include/linux/spinlock.h	2006-08-06 19:17:52.000000000 +0100
+++ linux-2.6.16-r/include/linux/spinlock.h	2006-08-06 19:18:26.000000000 +0100
@@ -259,8 +259,8 @@
 
 # define _rwlock_init(rwl, n, f, l)		__rt_rwlock_init(rwl, n)
 
-# define _read_can_lock(rwl)	(!rt_mutex_is_locked((rwl)->lock.lock))
-# define _write_can_lock(rwl)	(!rt_mutex_is_locked((rwl)->lock.lock))
+# define _read_can_lock(rwl)	(!rt_mutex_is_locked(&(rwl)->lock.lock))
+# define _write_can_lock(rwl)	(!rt_mutex_is_locked(&(rwl)->lock.lock))
 
 # define _read_trylock(rwl)	rt_read_trylock(rwl)
 # define _write_trylock(rwl)	rt_write_trylock(rwl)
