aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/systemtap
diff options
context:
space:
mode:
authortom.zanussi@linux.intel.com <tom.zanussi@linux.intel.com>2016-07-07 12:10:42 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-27 08:32:04 +0100
commit7c27f257286dfca745a956bae15c1f4ed505343f (patch)
treed451e4cce3b272d5b5c360e10cf3b9e692dd89aa /meta/recipes-kernel/systemtap
parent7aa7d0c54f9d8f1b27a0cf855da685459bdbcc93 (diff)
downloadopenembedded-core-7c27f257286dfca745a956bae15c1f4ed505343f.tar.gz
systemtap: Add missing memory flag to fix stap module compilation
The 4.4 kernel removed some memory flag definitions, which cause module compilation errors, rendering sytemtap essentially useless in krogoth. The problem is fixed in systemtap 3.0 and therefore in master, but as mentioned in Systemtap BZ1285348, the fix for older versions is this patch. Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
Diffstat (limited to 'meta/recipes-kernel/systemtap')
-rw-r--r--meta/recipes-kernel/systemtap/systemtap/0001-Fix-BZ1285348-by-updating-systemtap-s-memory-flag-us.patch73
-rw-r--r--meta/recipes-kernel/systemtap/systemtap_git.inc1
2 files changed, 74 insertions, 0 deletions
diff --git a/meta/recipes-kernel/systemtap/systemtap/0001-Fix-BZ1285348-by-updating-systemtap-s-memory-flag-us.patch b/meta/recipes-kernel/systemtap/systemtap/0001-Fix-BZ1285348-by-updating-systemtap-s-memory-flag-us.patch
new file mode 100644
index 0000000000..4c34d7762b
--- /dev/null
+++ b/meta/recipes-kernel/systemtap/systemtap/0001-Fix-BZ1285348-by-updating-systemtap-s-memory-flag-us.patch
@@ -0,0 +1,73 @@
+From 3d010295efd215cf83a7d07eecf89137973c154a Mon Sep 17 00:00:00 2001
+Message-Id: <3d010295efd215cf83a7d07eecf89137973c154a.1467836241.git.tom.zanussi@linux.intel.com>
+From: Jesper Brouer <jbrouer@redhat.com>
+Date: Mon, 30 Nov 2015 11:24:29 -0600
+Subject: [PATCH] Fix BZ1285348 by updating systemtap's memory flag usage.
+
+* runtime/linux/runtime_defines.h: Make sure __GFP_WAIT is defined.
+* runtime/stp_utrace.c (utrace_task_alloc): Change GFP_IOFS to
+ STP_ALLOC_FLAGS.
+ (utrace_attach_task): Ditto.
+
+Upstream-Status: Backport
+
+Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
+---
+ runtime/linux/runtime_defines.h | 23 +++++++++++++++++++++++
+ runtime/stp_utrace.c | 5 +++--
+ 2 files changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/runtime/linux/runtime_defines.h b/runtime/linux/runtime_defines.h
+index e69de29..6b44e0d 100644
+--- a/runtime/linux/runtime_defines.h
++++ b/runtime/linux/runtime_defines.h
+@@ -0,0 +1,23 @@
++// The following kernel commit renamed __GFP_WAIT to __GRP_RECLAIM:
++//
++// commit 71baba4b92dc1fa1bc461742c6ab1942ec6034e9
++// Author: Mel Gorman <mgorman@techsingularity.net>
++// Date: Fri Nov 6 16:28:28 2015 -0800
++//
++// mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM
++//
++// __GFP_WAIT was used to signal that the caller was in atomic
++// context and could not sleep. Now it is possible to
++// distinguish between true atomic context and callers that are
++// not willing to sleep. The latter should clear
++// __GFP_DIRECT_RECLAIM so kswapd will still wake. As clearing
++// __GFP_WAIT behaves differently, there is a risk that people
++// will clear the wrong flags. This patch renames __GFP_WAIT to
++// __GFP_RECLAIM to clearly indicate what it does -- setting it
++// allows all reclaim activity, clearing them prevents it.
++//
++// Handle the rename by defining __GFP_WAIT as __GFP_RECLAIM.
++#include <linux/gfp.h>
++#ifndef __GFP_WAIT
++#define __GFP_WAIT __GFP_RECLAIM
++#endif
+diff --git a/runtime/stp_utrace.c b/runtime/stp_utrace.c
+index c69dec1..a8afc0d 100644
+--- a/runtime/stp_utrace.c
++++ b/runtime/stp_utrace.c
+@@ -511,7 +511,8 @@ static struct utrace *__task_utrace_struct(struct task_struct *task)
+ */
+ static bool utrace_task_alloc(struct task_struct *task)
+ {
+- struct utrace *utrace = kmem_cache_zalloc(utrace_cachep, GFP_IOFS);
++ struct utrace *utrace = kmem_cache_zalloc(utrace_cachep,
++ STP_ALLOC_FLAGS);
+ struct utrace *u;
+
+ if (unlikely(!utrace))
+@@ -782,7 +783,7 @@ static struct utrace_engine *utrace_attach_task(
+ utrace = task_utrace_struct(target);
+ }
+
+- engine = kmem_cache_alloc(utrace_engine_cachep, GFP_IOFS);
++ engine = kmem_cache_alloc(utrace_engine_cachep, STP_ALLOC_FLAGS);
+ if (unlikely(!engine))
+ return ERR_PTR(-ENOMEM);
+
+--
+2.5.0
+
diff --git a/meta/recipes-kernel/systemtap/systemtap_git.inc b/meta/recipes-kernel/systemtap/systemtap_git.inc
index 656f15f808..2ea98b2a56 100644
--- a/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -9,6 +9,7 @@ SRC_URI = "git://sourceware.org/git/systemtap.git \
file://system_map_location.patch \
file://configure-allow-to-disable-libvirt.patch \
file://x32_abi_time.patch \
+ file://0001-Fix-BZ1285348-by-updating-systemtap-s-memory-flag-us.patch \
"
# systemtap doesn't support mips