summaryrefslogtreecommitdiff
path: root/0001-fix-rt_mutex.patch
diff options
context:
space:
mode:
authorJoakim Hernberg <jhernberg@alchemy.lu>2017-02-16 18:40:27 +0100
committerJoakim Hernberg <jhernberg@alchemy.lu>2017-02-16 18:40:27 +0100
commitdd88cbac9f2d0d7995b3c5b70212fada311d2249 (patch)
treea927d4d0e088499d4c85398dd1be184cbf9da8f0 /0001-fix-rt_mutex.patch
parent7af323eabd97f776be5809ea957f3db7f519c9b6 (diff)
bump to 4.4.47_rt59-1
Diffstat (limited to '0001-fix-rt_mutex.patch')
-rw-r--r--0001-fix-rt_mutex.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/0001-fix-rt_mutex.patch b/0001-fix-rt_mutex.patch
new file mode 100644
index 0000000..1f3a1f6
--- /dev/null
+++ b/0001-fix-rt_mutex.patch
@@ -0,0 +1,42 @@
+From 93f3bd72784ed58cbba1a32b043a842f205a631f Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 10 Feb 2017 18:21:04 +0100
+Subject: rt: Drop mutex_disable() on !DEBUG configs and the GPL suffix from
+ export symbol
+
+Alex Goins reported that mutex_destroy() on RT will force a GPL only symbol
+which won't link and therefore fail on a non-GPL kernel module.
+This does not happen on !RT and is a regression on RT which we would like to
+avoid.
+I try here the easy thing and to not use rt_mutex_destroy() if
+CONFIG_DEBUG_MUTEXES is not enabled. This will still break for the DEBUG
+configs so instead of adding a wrapper around rt_mutex_destroy() (which we have
+for rt_mutex_lock() for instance) I am simply dropping the GPL part from the
+export.
+
+Reported-by: Alex Goins <agoins@nvidia.com>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ include/linux/mutex_rt.h | 5 +++++
+ kernel/locking/rtmutex.c | 3 +--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/mutex_rt.h b/include/linux/mutex_rt.h
+index c38a44b..e0284ed 100644
+--- a/include/linux/mutex_rt.h
++++ b/include/linux/mutex_rt.h
+@@ -43,7 +43,12 @@ extern void __lockfunc _mutex_unlock(struct mutex *lock);
+ #define mutex_lock_killable(l) _mutex_lock_killable(l)
+ #define mutex_trylock(l) _mutex_trylock(l)
+ #define mutex_unlock(l) _mutex_unlock(l)
++
++#ifdef CONFIG_DEBUG_MUTEXES
+ #define mutex_destroy(l) rt_mutex_destroy(&(l)->lock)
++#else
++static inline void mutex_destroy(struct mutex *lock) {}
++#endif
+
+ #ifdef CONFIG_DEBUG_LOCK_ALLOC
+ # define mutex_lock_nested(l, s) _mutex_lock_nested(l, s)
+--
+cgit v0.12