[lttng-dev] [PATCH lttng-modules] Fix: kref changes for kernel 4.11
Francis Deslauriers
francis.deslauriers at efficios.com
Wed Mar 8 04:37:30 UTC 2017
The underlying type of `struct kref` changed in kernel 4.11 from an
atomic_t to a refcount_t. This change was introduced in kernel
commit:10383ae. This commit also added a builtin overflow checks to
`kref_get()` so we use it.
Signed-off-by: Francis Deslauriers <francis.deslauriers at efficios.com>
---
wrapper/kref.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/wrapper/kref.h b/wrapper/kref.h
index f30a9ae..8db05b5 100644
--- a/wrapper/kref.h
+++ b/wrapper/kref.h
@@ -34,9 +34,17 @@
*
* Return 1 if reference is taken, 0 otherwise (overflow).
*/
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
+static inline int lttng_kref_get(struct kref *kref)
+{
+ kref_get(kref);
+ return 1;
+}
+#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
static inline int lttng_kref_get(struct kref *kref)
{
return atomic_add_unless(&kref->refcount, 1, INT_MAX);
}
+#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */
#endif /* _LTTNG_WRAPPER_KREF_H */
--
2.7.4
More information about the lttng-dev
mailing list