[oe-commits] Nitin A Kamble : lttng-modules: fix build issues with the v3.17 kernel

git at git.openembedded.org git at git.openembedded.org
Mon Sep 29 16:50:50 UTC 2014


Module: openembedded-core.git
Branch: master-next
Commit: 1854d6c2e6dda4fd6900399d827413fcc1e1aef6
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=1854d6c2e6dda4fd6900399d827413fcc1e1aef6

Author: Nitin A Kamble <nitin.a.kamble at intel.com>
Date:   Thu Sep 25 17:32:54 2014 -0700

lttng-modules: fix build issues with the v3.17 kernel

The lttng-modules recipe was failing for meta-intel BSPs with the v3.17 kernel.
These BSP kernels were enabling some of the audio codec drivers, whose
structures are changed recently, causing mismatch with lttng-modules code
expectations. The qemu machines did not see this issue as they were not
enabling these sound codec kernel configuration.
  Fix the build issue, by changing the lttng-modules code to match with
the structures used by the v3.17 kernel. The code is conditional on the
kernel version, that way it keeps working with the older kernel versions.

Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.com>

---

 .../fix_build_with_v3.17_kernel.patch              | 113 +++++++++++++++++++++
 meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb   |   1 +
 2 files changed, 114 insertions(+)

diff --git a/meta/recipes-kernel/lttng/lttng-modules/fix_build_with_v3.17_kernel.patch b/meta/recipes-kernel/lttng/lttng-modules/fix_build_with_v3.17_kernel.patch
new file mode 100644
index 0000000..97b7a53
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/fix_build_with_v3.17_kernel.patch
@@ -0,0 +1,113 @@
+
+Upstream-Status: Backport
+
+commit 7df57eb5d6bdc85ddcf2b9afb6cd0cacfb22096e
+Author: Nitin A Kamble <nitin.a.kamble at intel.com>
+Date:   Thu Sep 25 18:19:43 2014 -0700
+
+    asoc.h: fix build with v3.17 kernel
+    
+    The snd_soc_codec structure has changed in the v3.17 kernel. Some
+    of the redundant fields have been removed. To be specific this commit
+    from the v3.17 kernel causes the build failure for lttng-modules.
+    
+    |commit f4333203ec933f9272c90c7add01774ec2cf94d3
+    |Author: Lars-Peter Clausen <lars at metafoo.de>
+    |Date:   Mon Jun 16 18:13:02 2014 +0200
+    |
+    |    ASoC: Move name and id from CODEC/platform to component
+    |
+    |    The component struct already has a name and id field which are initialized to
+    |    the same values as the same fields in the CODEC and platform structs. So remove
+    |    them from the CODEC and platform structs and used the ones from the component
+    |    struct instead.
+    |
+    |    Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
+    |    Signed-off-by: Mark Brown <broonie at linaro.org>
+    
+    The asoc.h is changed according to the change in the above kernel commit
+    to fix the lttng-modules build. The change in the lttng-modules code is
+    conditional on the kernel version, so that it does not break builds with
+    previous kernel versions.
+    
+    Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.com>
+    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
+
+diff --git a/instrumentation/events/lttng-module/asoc.h b/instrumentation/events/lttng-module/asoc.h
+index 672bea4..bf9cf86 100644
+--- a/instrumentation/events/lttng-module/asoc.h
++++ b/instrumentation/events/lttng-module/asoc.h
+@@ -21,6 +21,14 @@ struct snd_soc_card;
+ struct snd_soc_dapm_widget;
+ #endif
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0))
++#define CODEC_NAME_FIELD component.name
++#define CODEC_ID_FIELD component.id
++#else
++#define CODEC_NAME_FIELD name
++#define CODEC_ID_FIELD id
++#endif
++
+ /*
+  * Log register events
+  */
+@@ -32,15 +40,15 @@ DECLARE_EVENT_CLASS(snd_soc_reg,
+ 	TP_ARGS(codec, reg, val),
+ 
+ 	TP_STRUCT__entry(
+-		__string(	name,		codec->name	)
++		__string(	name,		codec->CODEC_NAME_FIELD	)
+ 		__field(	int,		id		)
+ 		__field(	unsigned int,	reg		)
+ 		__field(	unsigned int,	val		)
+ 	),
+ 
+ 	TP_fast_assign(
+-		tp_strcpy(name, codec->name)
+-		tp_assign(id, codec->id)
++		tp_strcpy(name, codec->CODEC_NAME_FIELD)
++		tp_assign(id, codec->CODEC_ID_FIELD)
+ 		tp_assign(reg, reg)
+ 		tp_assign(val, val)
+ 	),
+@@ -77,15 +85,15 @@ DECLARE_EVENT_CLASS(snd_soc_preg,
+ 	TP_ARGS(platform, reg, val),
+ 
+ 	TP_STRUCT__entry(
+-		__string(	name,		platform->name	)
++		__string(	name,		platform->CODEC_NAME_FIELD	)
+ 		__field(	int,		id		)
+ 		__field(	unsigned int,	reg		)
+ 		__field(	unsigned int,	val		)
+ 	),
+ 
+ 	TP_fast_assign(
+-		tp_strcpy(name, platform->name)
+-		tp_assign(id, platform->id)
++		tp_strcpy(name, platform->CODEC_NAME_FIELD)
++		tp_assign(id, platform->CODEC_ID_FIELD)
+ 		tp_assign(reg, reg)
+ 		tp_assign(val, val)
+ 	),
+@@ -399,17 +407,17 @@ TRACE_EVENT(snd_soc_cache_sync,
+ 	TP_ARGS(codec, type, status),
+ 
+ 	TP_STRUCT__entry(
+-		__string(	name,		codec->name	)
++		__string(	name,		codec->CODEC_NAME_FIELD	)
+ 		__string(	status,		status		)
+ 		__string(	type,		type		)
+ 		__field(	int,		id		)
+ 	),
+ 
+ 	TP_fast_assign(
+-		tp_strcpy(name, codec->name)
++		tp_strcpy(name, codec->CODEC_NAME_FIELD)
+ 		tp_strcpy(status, status)
+ 		tp_strcpy(type, type)
+-		tp_assign(id, codec->id)
++		tp_assign(id, codec->CODEC_ID_FIELD)
+ 	),
+ 
+ 	TP_printk("codec=%s.%d type=%s status=%s", __get_str(name),
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb b/meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb
index 04e2b0c..6ff961a 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb
@@ -21,6 +21,7 @@ SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.5 \
            file://Fix-noargs-probes-should-calculate-alignment-and-eve.patch \
            file://Update-statedump-to-3.17-nsproxy-locking.patch \
            file://Update-kvm-instrumentation-compile-on-3.17-rc1.patch \
+           file://fix_build_with_v3.17_kernel.patch \
            "
 
 export INSTALL_MOD_DIR="kernel/lttng-modules"



More information about the Openembedded-commits mailing list