[OE-core] [PATCH 1/1] lttng-modules: fix build issues with the v3.17 kernel

Bruce Ashfield bruce.ashfield at windriver.com
Fri Sep 26 17:20:09 UTC 2014


On 14-09-26 12:23 PM, Kamble, Nitin A wrote:
>
>
> On 9/25/14, 7:23 PM, "Bruce Ashfield" <bruce.ashfield at windriver.com> wrote:
>
>> On 2014-09-25, 10:00 PM, nitin.a.kamble at intel.com wrote:
>>> From: Nitin A Kamble <nitin.a.kamble at intel.com>
>>>
>>> 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              | 111
>>> +++++++++++++++++++++
>>>    meta/recipes-kernel/lttng/lttng-modules_2.5.0.bb   |   1 +
>>>    2 files changed, 112 insertions(+)
>>>    create mode 100644
>>> meta/recipes-kernel/lttng/lttng-modules/fix_build_with_v3.17_kernel.patch
>>>
>>> diff --git
>>> a/meta/recipes-kernel/lttng/lttng-modules/fix_build_with_v3.17_kernel.pat
>>> ch
>>> b/meta/recipes-kernel/lttng/lttng-modules/fix_build_with_v3.17_kernel.pat
>>> ch
>>> new file mode 100644
>>> index 0000000..86dfa69
>>> --- /dev/null
>>> +++
>>> b/meta/recipes-kernel/lttng/lttng-modules/fix_build_with_v3.17_kernel.pat
>>> ch
>>> @@ -0,0 +1,111 @@
>>> +Upstream-Status: Pending
>>> +
>>> +commit 91ec0897b50c9d3f215ce6790b30bc319a136a4e
>>> +Author: Nitin A Kamble <nitin.a.kamble at intel.com>
>>> +Date:   Thu Sep 25 16:51:24 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.
>>
>> Nice fix. To be consistent with other patches for lttng, we should
>> probably
>> put an upstream-status field in the header.
>
> It is already at the beginning of the patch. Look few lines above.

aha. Missed that. It it typically closer to the signed-off-by, so I
didn't look there.

Bruce

>
>>
>> Are you going to send this to the project ? They'll probably want to
>> tweak it, but for our purposes, this builds and looks fine.
>
> That should be fine. Once it is upstream, the next update to the recipe
> can drop the patch.
>
> Nitin
>
>>
>> Bruce
>>
>>> +
>>> +    Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.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-core mailing list