summaryrefslogtreecommitdiff
path: root/sys-cluster/knem/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
commit3f71901f8c228f4de570abed1831ce3ee425343e (patch)
treea2dcd300d05ef8a2ec275b44a92a9d85bd3baa24 /sys-cluster/knem/files
parent12bb627384ddfd47382b9f1b6464481a58d01ebb (diff)
gentoo resync 08.09.2018
Diffstat (limited to 'sys-cluster/knem/files')
-rw-r--r--sys-cluster/knem/files/knem-1.1.3-setup_timer.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/sys-cluster/knem/files/knem-1.1.3-setup_timer.patch b/sys-cluster/knem/files/knem-1.1.3-setup_timer.patch
new file mode 100644
index 000000000000..eb418ccc957a
--- /dev/null
+++ b/sys-cluster/knem/files/knem-1.1.3-setup_timer.patch
@@ -0,0 +1,58 @@
+diff --git a/driver/linux/check_kernel_headers.sh b/driver/linux/check_kernel_headers.sh
+index b0b9b851c0a1..7afec9fae138 100755
+--- a/driver/linux/check_kernel_headers.sh
++++ b/driver/linux/check_kernel_headers.sh
+@@ -330,6 +330,19 @@ else
+ echo no
+ fi
+
++# timer_setup() added in v4.14-rc3
++echo -n " checking (in kernel headers) timer_setup() availability ... "
++if test -e ${LINUX_HDR}/include/linux/timer.h > /dev/null ; then
++ if grep timer_setup ${LINUX_HDR}/include/linux/timer.h > /dev/null ; then
++ echo "#define HAVE_TIMER_SETUP 1" >> ${TMP_CHECKS_NAME}
++ echo yes
++ else
++ echo no
++ fi
++else
++ echo no
++fi
++
+ # add the footer
+ echo "" >> ${TMP_CHECKS_NAME}
+ echo "#endif /* __knem_checks_h__ */" >> ${TMP_CHECKS_NAME}
+diff --git a/driver/linux/knem_main.c b/driver/linux/knem_main.c
+index e12aad3c0ea5..ddae2af14449 100644
+--- a/driver/linux/knem_main.c
++++ b/driver/linux/knem_main.c
+@@ -2610,9 +2610,17 @@ knem_kthread_func(void *data)
+
+ #ifdef KNEM_HAVE_DMA_ENGINE
+ static void
++#ifdef HAVE_TIMER_SETUP
++knem_dmacpy_cleanup_timer_handler(struct timer_list *t)
++#else
+ knem_dmacpy_cleanup_timer_handler(unsigned long data)
++#endif
+ {
++#ifdef HAVE_TIMER_SETUP
++ struct knem_context * ctx = from_timer(ctx, t, dmacpy_cleanup_timer);
++#else
+ struct knem_context * ctx = (void *) data;
++#endif
+
+ wake_up(&ctx->kthread_work_wq);
+ knem_counter_inc(DMACPY_CLEANUP_TIMEOUT);
+@@ -2665,7 +2673,11 @@ knem_miscdev_open(struct inode * inode, struct file * file)
+ if (ctx->dmacpy_chan) {
+ INIT_LIST_HEAD(&ctx->dmacpy_cleanup_work_list);
+ spin_lock_init(&ctx->dmacpy_cleanup_work_lock);
++#ifdef HAVE_TIMER_SETUP
++ timer_setup(&ctx->dmacpy_cleanup_timer, knem_dmacpy_cleanup_timer_handler, 0);
++#else
+ setup_timer(&ctx->dmacpy_cleanup_timer, knem_dmacpy_cleanup_timer_handler, (unsigned long) ctx);
++#endif
+ #if (defined CONFIG_NUMA) && (defined KNEM_HAVE_CPUMASK_OF_NODE)
+ {
+ int node = dev_to_node(ctx->dmacpy_chan->device->dev);