]> git.proxmox.com Git - mirror_spl-debian.git/blobdiff - include/linux/rwsem_compat.h
New upstream version 0.7.2
[mirror_spl-debian.git] / include / linux / rwsem_compat.h
index c874885b0c9de4f79abc889c6f9a341ee79a7307..de513debeafe6445f5ae4f6e21abd5c20b738411 100644 (file)
 
 #include <linux/rwsem.h>
 
-#ifdef CONFIG_RWSEM_GENERIC_SPINLOCK
+#if defined(CONFIG_PREEMPT_RT_FULL)
+#define        SPL_RWSEM_SINGLE_READER_VALUE   (1)
+#define        SPL_RWSEM_SINGLE_WRITER_VALUE   (0)
+#elif defined(CONFIG_RWSEM_GENERIC_SPINLOCK)
 #define        SPL_RWSEM_SINGLE_READER_VALUE   (1)
 #define        SPL_RWSEM_SINGLE_WRITER_VALUE   (-1)
 #else
@@ -36,7 +39,9 @@
 #endif
 
 /* Linux 3.16 changed activity to count for rwsem-spinlock */
-#if defined(HAVE_RWSEM_ACTIVITY)
+#if defined(CONFIG_PREEMPT_RT_FULL)
+#define        RWSEM_COUNT(sem)        sem->read_depth
+#elif defined(HAVE_RWSEM_ACTIVITY)
 #define        RWSEM_COUNT(sem)        sem->activity
 /* Linux 4.8 changed count to an atomic_long_t for !rwsem-spinlock */
 #elif defined(HAVE_RWSEM_ATOMIC_LONG_COUNT)