From 862f14832d2d8a1917a5046d0299dbbbe6dc66da Mon Sep 17 00:00:00 2001 From: Roy Li Date: Thu, 22 May 2014 14:37:18 +0800 Subject: babeltrace: fix alignment issue Fix alignment issue in babeltrace Signed-off-by: Roy Li Signed-off-by: Saul Wold --- ...uffers-from-objstack_alloc-on-sizeof-void.patch | 54 ++++++++++++++++++++++ meta/recipes-kernel/lttng/babeltrace_1.2.1.bb | 4 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch diff --git a/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch b/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch new file mode 100644 index 0000000000..8e81d2d781 --- /dev/null +++ b/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch @@ -0,0 +1,54 @@ +From cae67efbd9ddf2cee6bbefec076dc8933ababc43 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fredrik=20Markstr=C3=B6m?= +Date: Fri, 16 May 2014 10:10:38 +0800 +Subject: [PATCH] Fix: Align buffers from objstack_alloc on sizeof(void *) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport + +The buffers from objstack_alloc will store pointers, so they must +be aligned on a pointer's size, or else it will cause issues on the +CPUs which do not support unaligned addresses access. + +Signed-off-by: Fredrik Markstrom +Signed-off-by: Roy Li +Signed-off-by: Jérémie Galarneau +--- + formats/ctf/metadata/objstack.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/formats/ctf/metadata/objstack.c b/formats/ctf/metadata/objstack.c +index 9e264a4..14d9252 100644 +--- a/formats/ctf/metadata/objstack.c ++++ b/formats/ctf/metadata/objstack.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #define OBJSTACK_INIT_LEN 128 + #define OBJSTACK_POISON 0xcc +@@ -39,7 +40,7 @@ struct objstack_node { + struct bt_list_head node; + size_t len; + size_t used_len; +- char data[]; ++ char __attribute__ ((aligned (sizeof(void *)))) data[]; + }; + + BT_HIDDEN +@@ -118,6 +119,8 @@ void *objstack_alloc(struct objstack *objstack, size_t len) + struct objstack_node *last_node; + void *p; + ++ len = ALIGN(len, sizeof(void *)); ++ + /* Get last node */ + last_node = bt_list_entry(objstack->head.prev, + struct objstack_node, node); +-- +1.7.10.4 + diff --git a/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb b/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb index 5c105d803b..542491b645 100644 --- a/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb +++ b/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb @@ -14,7 +14,9 @@ SRCREV = "66c2a20b4391fb5c7f870aeb0dde854f0ae1fc79" PV = "1.2.1+git${SRCPV}" SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.2 \ - file://0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch" + file://0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch \ + file://Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch \ +" S = "${WORKDIR}/git" -- cgit 1.2.3-korg