summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-kernel/lttng/lttng-modules
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2021-03-31 22:34:31 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2021-04-06 16:22:18 +0300
commit95ac1b8d7409c14ee15ddcb7e5dd3d28b24caa7f (patch)
treee686d31ba8c6e704d27aa7699f4a1a5673283b98 /poky/meta/recipes-kernel/lttng/lttng-modules
parent32b11995a9447d927862951d29db38455f9e0205 (diff)
downloadopenbmc-95ac1b8d7409c14ee15ddcb7e5dd3d28b24caa7f.tar.xz
poky: subtree update:c8075ed8f1..7d0988966c
Adrian (1): weston-init: Set $HOME variable for SysVinit manager Alejandro Hernandez Samaniego (6): bitbake: bitbake: Add Azure Storage fetcher implementation bitbake: docs: Add Az fetcher documentation bitbake: docs: Add AZ_SAS definition to glossary ref-manual: Add Az fetcher documentation sanity.bbclass: Add az fetcher to accepted URI protocols for mirrors sanity devtool: Fix do_kernel_configme task Alexander Kanavin (23): core-image.bbclass: add a weston IMAGE_FEATURE, similar to x11-base rootfs-postcommands: correctly set systemd target for weston images oeqa/weston: correctly run wayland-info when systemd is in use dnf: upgrade 4.5.2 -> 4.6.0 libdnf: update 0.55.2 -> 0.58.0 libdnf: replace a musl fix with a better one librepo: update 1.12.1 -> 1.13.0 libical: update 3.0.8 -> 3.0.9 libical: drop the ad hoc native generator build bmap-tools: upgrade 3.5 -> 3.6 procps: update 3.3.16 -> 3.3.17 libxcrypt: fix sporadic failures in nativesdk-libxcrypt-compat bind: upgrade 9.16.11 -> 9.16.12 spirv-headers: update to latest revision spirv-tools: upgrade 2020.6 -> 2020.7 mesa: update 20.3.4 -> 21.0.0 attr: update 2.4.48 -> 2.5.1 asciidoc: update 9.0.4 -> 9.1.0 libhandy: update 1.0.3 -> 1.2.0 strace: update 5.10 -> 5.11 automake: update 1.16.2 - > 1.16.3 xxhash: import from meta-oe apt: update 1.8.2.2 -> 2.2.2 Alistair Francis (4): openssl: Enable building for RISC-V 32-bit linux-yocto: Add qemuriscv32 as a compatible machine machine: Initial commit of qemuriscv32 u-boot: Add support for building for qemuriscv32 Andrei Gherzan (3): gcr: Add support for building without x11 epiphany: Add package configuration for building in developer mode glibc: Backport patch to fix _SC_LEVEL1_ICACHE_LINESIZE Anton D. Kachalov (1): run-postinsts: do not remove postinsts directory. Awais Belal (2): libsdl2: disable shared memory for native builds rootfs.py: uninstall the run-postinsts package if not needed Bartosz Golaszewski (1): python3: make pydoc rdepend on python3-io Bruce Ashfield (27): linux-yocto/5.10: fix x86 32bit boot warnings linux-yocto/5.10: fix qemumips testimage failures linux-yocto/5.10: update to v5.10.17 and -rt31 linux-yocto/5.4: update to v5.4.99 linux-yocto/5.10: update to v5.10.19 linux-yocto/5.4: update to v5.4.101 perf: fix reproducibility issues linux-yocto/5.4: update to v5.4.103 kern-tools: symbol-why fix and README update linux-yocto/5.10: update to v5.10.21 linux-yocto/qemuarmv5: fix configuration warning yocto-bsp: update reference platforms to latest 5.10 perf: reproducibility fixes for pmu-events.c reproducibile: remove perf from exclusions linux-yocto/5.10: fix SERIAL_OF_PLATFORM warning linux-yocto/5.4: update to v5.4.105 linux-yocto/5.10: update to v5.10.23 linux-yocto/5.10: cfg: features/numa: Remove NODES_SPAN_OTHER_NODES option lttng-modules: update devupstream to 2.12.5+ lttng-modules: backport patches to fix build against 5.12+ kernel kernel-devsrc: fix on-target scripts/prepare for v5.12+ linux-yocto/5.10: cfg: fix ppc64 configuration warnings linux-yocto-dev: bump to v5.12-rc linux-yocto/5.10: update qemuriscv32 v5.10.23 linux-yocto/5.10: update to v5.10.25 linux-yocto/5.4: update to v5.4.107 linux-yocto-rt/5.10: update to -rt34 Changqing Li (1): go-helloworld: disable module-aware mode Charlie Davies (9): bitbake-bblayers/create: Fix incorrect priority help message bitbake-bblayers/create: Add optional layerid argument bitbake: bitbake: providers: remove unneeded logging call bitbake: bitbake: providers: consistent single line formatting between functions bitbake: bitbake: providers: introduce logic for REQUIRED_VERSION variable bitbake: bitbake: providers: check for REQUIRED_VERSION in _filterProviders bitbake: bitbake: lib: add Required Version to Bitbake --show-versions command bitbake: bitbake: cooker: Add REQUIRED_VERSION checks multilib_global: handle REQUIRED_VERSION Chen Qi (3): python3-jinja2: set CVE_PRODUCT bitbake: event.py: fix regression about INVALIDCONF populate_sdk_ext: record METADATA_REVISION Christopher Larson (2): buildhistory: add missing vardepsexcludes image,populate_sdk_base: move 'func' flag setting for sdk command vars Diego Santa Cruz (2): rpm: split build and extra functionality into separate packages sstate-diff-machines.sh: support rpm, deb and tar package types in analysis Dorinda (8): meta/recipes-rt: Add HOMEPAGE / DESCRIPTION meta-skeleton: Add HOMEPAGE / DESCRIPTION meta/recipes-extended: Add HOMEPAGE / DESCRIPTION meta/recipes-support: Add HOMEPAGE / DESCRIPTION meta/recipes-kernel: Add HOMEPAGE / DESCRIPTION meta/recipes-multimedia: Add HOMEPAGE / DESCRIPTION meta/recipes-graphics: Add HOMEPAGE / DESCRIPTION dev-manual/common-task.rst: Added documentation for debuginfod support Dorinda Bassey (4): meta/recipes-devtools: Add HOMEPAGE / DESCRIPTION distrodata.py: Test to track recipes without HOMEPAGE or DESCRIPTION meta-selftest: Add HOMEPAGE / DESCRIPTION devshell.bbclass: Exceptions displayed within devpyshell Douglas Royds (2): cmake: Fully-qualified path to ar externalsrc: Detect code changes in submodules Jon Mason (5): runqemu: use "raw" instead of "bin" for ovmf runqemu: add QB_GRAPHICS runqemu: correct forcing of ttyS0 runqemu: modify novga to conform to documentation tune-cortexa32: Add hard FPU Jose Quaresma (4): spirv-tools: python3 is need not only for the tests spirv-tools: cleanup an old patch that is not used anymore gstreamer1.0: upgrade 1.18.3 -> 1.18.4 gstreamer1.0-plugins-good: fix rtpjitterbuffer regression Kai Kang (2): toolchain-scripts.bbclass: customize prompt string for SDKs local.conf.sample.extended: sample value for SDK_PS1 Kevin Hao (1): meta-yocto-bsp: beaglebone: Set a fixed size for boot partition in WIC image Khairul Rohaizzat Jamaluddin (1): glibc: Fix CVE-2021-27645 Khem Raj (33): python3-cython: Check for files before editing webkitgtk: Use linker options to reduce memory overhead during linking webkitgtk: Enhance check for atomics to include 1 byte CAS qemuppc64: Add a QEMU machine definition for ppc64 linux-yocto: Enable powerpc64le QEMU formfactor: Add machine config for qemuppc64 inittab: Add getty launch on hvc0 for qemuppc64 parselogs: Allow expected kernel messages for qemuppc64 spirv-tools: Replace strncpy with memcpy python3-setuptools: Upgrade 54.1.0 -> 54.1.1 perf: Remove libunwind for rv32 Enable qemu usermode on ppc64 cmake.bbclass: Create cmake arch mapping for ppc64le libucontext: Recognize ppc64le architecture libunwind: Do not assume libdir for ppc64 gcc: Package new module mapper tool glib-2.0: Drop volatile qualifier go: Update to 1.16.2 go-dep: Remove libunwind: Link with libucontext on musl libedit: upgrade 20191231-3.1 -> 20210216-3.1 webkitgtk: Reduce stack and heap sizes for jsc on musl webkitgtk: Add packageconfig to chose between size and speed webkitgtk: enable strlen and stpcpy on musl/linux too gcc-sanitizers: Package up hwasan files apt: Support old resolver as fallback apt: Do not disable NLS valgrind: Fix ptests on ppc64 LE documentation-audit.sh: Fix typo in specifying LICENSE_FLAGS_WHITELIST image-uefi: Set efi_file for rv32/rv64 grub2: Disable for RISCV32 grub-efi: Re-introduce lost cast to long grub2: Enable on riscv32 Lee Chee Yang (2): cve-update-db-native: consider version suffix when update CVE db cve-check: CVE_VERSION_SUFFIX to work with patched release Li Wang (1): linux-dummy: add empty dependent packages Luca Boccassi (2): util-linux: split uuid in separate recipe to allow bootstrapping util-linux: backport patch to skip build of unused objects Manuel Leonhardt (1): bitbake: tinfoil: Honor quiet when parsing recipes Mark Hatle (2): populate_sdk_ext: Avoid copying and producing .pyc files populate_sdk_ext: Add support for PR service Martin Jansa (7): glib-2.0: call os.path.normpath on THISDIR glib-2.0: show an error about --cross-file only when such file exists busybox: refresh the defconfig from 1.33.0 busybox-inittab: rename for PV to match with busybox's PV iso-codes: fix protocol in SRC_URI packagegroup-core-weston.bb: add pam to REQUIRED_DISTRO_FEATURES python3: fix PACKAGECONFIG handling Michael Opdenacker (4): bitbake: doc: Update links to documentation Do not assume working from $HOME Update documentation URL documentation/README minor improvements Michael Trensch (1): linux-firmware: Fix packaging Mikko Rapeli (1): openssl: update to 1.1.1k to fix CVE-2021-3450 and CVE-2021-3449 Ming Liu (2): kernel-fitimage.bbclass: support both KERNEL_DEVICETREE/EXTERNAL_KERNEL_DEVICETREE initramfs-framework:rootfs: fix some conditional check Mingli Yu (1): libtool: make sure autoheader run before autoconf Minjae Kim (3): qemu: fix CVE-2021-20203 git: fix CVE-2021-21300 git: upgrade 2.30.1 -> 2.31.1 Naveen Saini (1): grub: upgrade 2.04 -> 2.06~rc1 Oleksandr Kravchuk (1): python3-setuptools: update to 54.1.0 Paul Gortmaker (1): bitbake: gitignore: ignore runqueue-tests/bitbake-cookerdaemon.log Peter Kjellerstedt (4): meson: Correctly set uid/gid of installed files uninative-tarball: Add a dependency on nativesdk-glibc-dbg metadata_scm.bbclass: Use immediate expansion for the METADATA_* variables license.bbclass: Improve parsing time when INCOMPATIBLE_LICENSES is big Petr Vorel (1): scripts/verify-bashisms: Update checkbashisms.pl URL Purushottam Choudhary (1): shadow: whitelist CVE-2013-4235 Randy MacLeod (2): ffmpeg: upgrade 4.3.1 -> 4.3.2 zstd: upgrade 1.4.8 -> 1.4.9 Richard Purdie (33): ltp: Fix another determinism issue build-appliance-image: Drop kernel module handling ltp: Further extend reproducibility patch bitbake: runqueue: Fix task execution corruption issue bitbake: runqueue: Add setscene task overlap sanity check bitbake: __init__.py: Fix bitbake debug log handling ltp: Fix determinism issue ltp: Fix libswapon issue properly bitbake: event: Fix multiconfig event handler change performance regressions bitbake: event: Fix another 'if d' test to test for None explictly bitbake: tests/color: Fix event register to pass the datastore bitbake: bblayers/query: Update to handle REQUIRED_VERSION scripts/contrib/list-packageconfig-flags: Upate for tinfoil API changes layer.conf: Update for hardknott release series layer.conf: Update for hardknott release series build-appliance-image: Update to master head revision layer.conf: Add gatesgarth back for now to allow for transition build-appliance-image: Update to master head revision meson: Work around determinism issue lttng-tools: upgrade 2.12.2 -> 2.12.3 lttng-modules: upgrade 2.12.4 -> 2.12.5 sqlite3: upgrade 3.34.1 -> 3.35.0 sudo: upgrade 1.9.5p2 -> 1.9.6 selftest/reproducible: Drop ovmf exclusion selftest/wic: Fix dependency issue in rawcopy test layer.conf: Drop gatesgarth from the layer series names bitbake: build: Add find_stale_stamps function bitbake: runqueue/event: Add an event for notifying of stale setscene tasks sstate: Remove stale objects before the main build sstate: Add documentation for eventhandlers and tweak naming site/elfutils/libunistring: Drop patching for iconv and set in site file build-appliance-image: Update to master head revision util-linux-libuuid: Simplify recipe and rename from util-linux-uuid Robert P. J. Day (8): bitbake-whatchanged: change ending quote to proper period bitbake: doc: move BBFILES_DYNAMIC for alphabetical order ref-manual: remove erroneous '\*' from variables list bitbake: doc: mention that addtask handles multiple dependencies bitbake: doc: fix glossary link for BB_INVALIDCONF variable bitbake: doc: fix syntax error in layer.conf example bitbake.conf: correct description of HOSTTOOLS_DIR packagegroups: delete useless "PROVIDES" lines Robert Yang (1): image.bbclass: deltask do_packagedata Ross Burton (13): libinput: less parallism to increase chances the test suite works ptest-packagelists: remove libinput-ptest insane: don't check for a warning string that is never output gcc: add an option for --enable-poison-system-directories to be fatal gcc-cross: make use of the system include directories fatal oeqa/selftest: add test to verify that poisoned sysroots are detected ovmf: make output binaries reproducible base: respect downloadfilename when sniffing the SRC_URI for dependencies lib/oe/utils: add directory size function classes/image: use oe.utils.directory_size() instead of du bitbake.conf: ensure BUILD_* tools match target tools meson: fix native/host confusion in gobject-introspection meson: use native-file instead of environment variables Sakib Sajal (2): buildstats.bbclass: improve timeout handling scripts: add oe-time-dd-test.sh Scott Murray (1): u-boot: Fix CVE-2021-27097, CVE-2021-27138 Stefan Ghinea (1): wpa-supplicant: fix CVE-2021-27803 Stefan Schmidt (1): systemd-conf: do not ask for DHCP if configured on kernel command line Tomasz Dziendzielski (2): bitbake: runqueue: Print pseudo.log if fakeroot task failed bitbake: codeparser: Fix TypeError in bitbake debug mode Ulrich ?lmann (1): gstreamer1.0: add support for coretracers Ulrich Ölmann (3): common-tasks.rst: fix 'wic cp' command common-tasks.rst: fix typo local.conf.sample: fix typo Vivien Didelot (6): systemd-container: sort RRECOMMENDS alphabetically systemd-container: recommend tar systemd-container: recommends StartExecPre modules poky: fix typos poky: don't use space with += beaglebone-yocto: allow other virtual/bootloader Wang Mingyu (20): shaderc: upgrade 2020.4 -> 2020.5 stress-ng: upgrade 0.12.03 -> 0.12.04 taglib: upgrade 1.11.1 -> 1.12 vala: upgrade 0.50.3 -> 0.50.4 python3-pygments: upgrade 2.8.0 -> 2.8.1 python3-zipp: upgrade 3.4.0 -> 3.4.1 sysklogd: upgrade 2.2.1 -> 2.2.2 help2man: upgrade 1.48.1 -> 1.48.2 iso-codes: upgrade 4.5.0 -> 4.6.0 jquery: upgrade 3.5.1 -> 3.6.0 ovmf: upgrade 202011 -> 202102 msmtp: upgrade 1.8.14 -> 1.8.15 gptfdisk: upgrade 1.0.6 -> 1.0.7 vulkan-headers: upgrade 1.2.162.0 -> 1.2.170.0 vulkan-loader: upgrade 1.2.162.0 -> 1.2.170.0 vulkan-tools: upgrade 1.2.162.1 -> 1.2.170.0 gcc: Update patch to only patch files once openssh: upgrade 8.4p1 -> 8.5p1 openssh: Improve LICENSE to show BSD license variants. gnutls: upgrade 3.7.0 -> 3.7.1 Yanfei Xu (1): glibc: fix pthread_cond_destroy hangs with process-shared mutex Yann Dirson (1): ffmpeg: disable GPL features by default Yi Fan Yu (1): valgrind: Fix nlcontrolc.vgtest jan (1): cve-update-db-native: Allow to overrule the URL in a bbappend. wangmy@fujitsu.com (1): systemd: upgrade 247.3 -> 247.4 zhengruoqin (3): sudo: upgrade 1.9.6 -> 1.9.6p1 liburi-perl: upgrade 1.74 -> 5.08 stress-ng: upgrade 0.12.04 -> 0.12.05 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I04195d4c610ca1674dd736eceeb6442d974cb711
Diffstat (limited to 'poky/meta/recipes-kernel/lttng/lttng-modules')
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch58
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch159
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch91
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch41
4 files changed, 349 insertions, 0 deletions
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch
new file mode 100644
index 000000000..21da932a7
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch
@@ -0,0 +1,58 @@
+From b3fdf78b15beb940918da1e41eb68e24ba31bb87 Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Wed, 3 Mar 2021 10:10:16 -0500
+Subject: [PATCH 1/4] Fix: memory leaks on event destroy
+
+Both filter runtime and event enabler ref objects are owned by the
+event, but are not freed upon destruction of the event object, thus
+leaking memory.
+
+Upstream-status: backport
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: Ice9b1c18b47584838aea2b965494d3c8391f4c84
+---
+ lttng-events.c | 7 +++++++
+ lttng-events.h | 1 +
+ 2 files changed, 8 insertions(+)
+
+diff --git a/lttng-events.c b/lttng-events.c
+index f3398adc..984bd341 100644
+--- a/lttng-events.c
++++ b/lttng-events.c
+@@ -919,6 +919,8 @@ int _lttng_event_unregister(struct lttng_event *event)
+ static
+ void _lttng_event_destroy(struct lttng_event *event)
+ {
++ struct lttng_enabler_ref *enabler_ref, *tmp_enabler_ref;
++
+ switch (event->instrumentation) {
+ case LTTNG_KERNEL_TRACEPOINT:
+ lttng_event_put(event->desc);
+@@ -944,6 +946,11 @@ void _lttng_event_destroy(struct lttng_event *event)
+ }
+ list_del(&event->list);
+ lttng_destroy_context(event->ctx);
++ lttng_free_event_filter_runtime(event);
++ /* Free event enabler refs */
++ list_for_each_entry_safe(enabler_ref, tmp_enabler_ref,
++ &event->enablers_ref_head, node)
++ kfree(enabler_ref);
+ kmem_cache_free(event_cache, event);
+ }
+
+diff --git a/lttng-events.h b/lttng-events.h
+index 1b9ab167..13b6abf5 100644
+--- a/lttng-events.h
++++ b/lttng-events.h
+@@ -716,6 +716,7 @@ int lttng_enabler_attach_bytecode(struct lttng_enabler *enabler,
+ struct lttng_kernel_filter_bytecode __user *bytecode);
+ void lttng_enabler_event_link_bytecode(struct lttng_event *event,
+ struct lttng_enabler *enabler);
++void lttng_free_event_filter_runtime(struct lttng_event *event);
+
+ int lttng_probes_init(void);
+
+--
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch
new file mode 100644
index 000000000..609690f05
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch
@@ -0,0 +1,159 @@
+From 23a2f61ffc6a656f136fa2044c0c3b8f79766779 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Galarneau?=
+ <jeremie.galarneau@efficios.com>
+Date: Wed, 3 Mar 2021 18:52:19 -0500
+Subject: [PATCH 2/4] Fix: filter interpreter early-exits on uninitialized
+ value
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+I observed that syscall filtering on string arguments wouldn't work on
+my development machines, both running 5.11.2-arch1-1 (Arch Linux).
+
+For instance, enabling the tracing of the `openat()` syscall with the
+'filename == "/proc/cpuinfo"' filter would not produce events even
+though matching events were present in another session that had no
+filtering active. The same problem occurred with `execve()`.
+
+I tried a couple of kernel versions before (5.11.1 and 5.10.13, if
+memory serves me well) and I had the same problem. Meanwhile, I couldn't
+reproduce the problem on various Debian machines (the LTTng CI) nor on a
+fresh Ubuntu 20.04 with both the stock kernel and with an updated 5.11.2
+kernel.
+
+I built the lttng-modules with the interpreter debugging printout and
+saw the following warning:
+ LTTng: [debug bytecode in /home/jgalar/EfficiOS/src/lttng-modules/src/lttng-bytecode-interpreter.c:bytecode_interpret@1508] Bytecode warning: loading a NULL string.
+
+After a shedload (yes, a _shed_load) of digging, I figured that the
+problem was hidden in plain sight near that logging statement.
+
+In the `BYTECODE_OP_LOAD_FIELD_REF_USER_STRING` operation, the 'ax'
+register's 'user_str' is initialized with the stack value (the user
+space string's address in our case). However, a NULL check is performed
+against the register's 'str' member.
+
+I initialy suspected that both members would be part of the same union
+and alias each-other, but they are actually contiguous in a structure.
+
+On the unaffected machines, I could confirm that the `str` member was
+uninitialized to a non-zero value causing the condition to evaluate to
+false.
+
+Francis Deslauriers reproduced the problem by initializing the
+interpreter stack to zero.
+
+I am unsure of the exact kernel configuration option that reveals this
+issue on Arch Linux, but my kernel has the following option enabled:
+
+CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL:
+ Zero-initialize any stack variables that may be passed by reference
+ and had not already been explicitly initialized. This is intended to
+ eliminate all classes of uninitialized stack variable exploits and
+ information exposures.
+
+I have not tried to build without this enabled as, anyhow, this seems
+to be a legitimate issue.
+
+I have spotted what appears to be an identical problem in
+`BYTECODE_OP_LOAD_FIELD_REF_USER_SEQUENCE` and corrected it. However,
+I have not exercised that code path.
+
+The commit that introduced this problem is 5b4ad89.
+
+The debug print-out of the `BYTECODE_OP_LOAD_FIELD_REF_USER_STRING`
+operation is modified to print the user string (truncated to 31 chars).
+
+Upstream-status: backport
+
+Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I2da3c31b9e3ce0e1b164cf3d2711c0893cbec273
+---
+ lttng-filter-interpreter.c | 41 ++++++++++++++++++++++++++++++++++----
+ 1 file changed, 37 insertions(+), 4 deletions(-)
+
+diff --git a/lttng-filter-interpreter.c b/lttng-filter-interpreter.c
+index 5d572437..6e5a5139 100644
+--- a/lttng-filter-interpreter.c
++++ b/lttng-filter-interpreter.c
+@@ -22,7 +22,7 @@ LTTNG_STACK_FRAME_NON_STANDARD(lttng_filter_interpret_bytecode);
+ * to handle user-space read.
+ */
+ static
+-char get_char(struct estack_entry *reg, size_t offset)
++char get_char(const struct estack_entry *reg, size_t offset)
+ {
+ if (unlikely(offset >= reg->u.s.seq_len))
+ return '\0';
+@@ -593,6 +593,39 @@ end:
+ return ret;
+ }
+
++#ifdef DEBUG
++
++#define DBG_USER_STR_CUTOFF 32
++
++/*
++ * In debug mode, print user string (truncated, if necessary).
++ */
++static inline
++void dbg_load_ref_user_str_printk(const struct estack_entry *user_str_reg)
++{
++ size_t pos = 0;
++ char last_char;
++ char user_str[DBG_USER_STR_CUTOFF];
++
++ pagefault_disable();
++ do {
++ last_char = get_char(user_str_reg, pos);
++ user_str[pos] = last_char;
++ pos++;
++ } while (last_char != '\0' && pos < sizeof(user_str));
++ pagefault_enable();
++
++ user_str[sizeof(user_str) - 1] = '\0';
++ dbg_printk("load field ref user string: '%s%s'\n", user_str,
++ last_char != '\0' ? "[...]" : "");
++}
++#else
++static inline
++void dbg_load_ref_user_str_printk(const struct estack_entry *user_str_reg)
++{
++}
++#endif
++
+ /*
+ * Return 0 (discard), or raise the 0x1 flag (log event).
+ * Currently, other flags are kept for future extensions and have no
+@@ -1313,7 +1346,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
+ estack_push(stack, top, ax, bx);
+ estack_ax(stack, top)->u.s.user_str =
+ *(const char * const *) &filter_stack_data[ref->offset];
+- if (unlikely(!estack_ax(stack, top)->u.s.str)) {
++ if (unlikely(!estack_ax(stack, top)->u.s.user_str)) {
+ dbg_printk("Filter warning: loading a NULL string.\n");
+ ret = -EINVAL;
+ goto end;
+@@ -1322,7 +1355,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
+ estack_ax(stack, top)->u.s.literal_type =
+ ESTACK_STRING_LITERAL_TYPE_NONE;
+ estack_ax(stack, top)->u.s.user = 1;
+- dbg_printk("ref load string %s\n", estack_ax(stack, top)->u.s.str);
++ dbg_load_ref_user_str_printk(estack_ax(stack, top));
+ next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
+ PO;
+ }
+@@ -1340,7 +1373,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
+ estack_ax(stack, top)->u.s.user_str =
+ *(const char **) (&filter_stack_data[ref->offset
+ + sizeof(unsigned long)]);
+- if (unlikely(!estack_ax(stack, top)->u.s.str)) {
++ if (unlikely(!estack_ax(stack, top)->u.s.user_str)) {
+ dbg_printk("Filter warning: loading a NULL sequence.\n");
+ ret = -EINVAL;
+ goto end;
+--
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch
new file mode 100644
index 000000000..71f99b80a
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch
@@ -0,0 +1,91 @@
+From 49c603ef2dc6969f4454f0d849af00ee24bb7f04 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Thu, 4 Mar 2021 16:50:12 -0500
+Subject: [PATCH 3/4] fix: mm, tracing: record slab name for kmem_cache_free()
+ (v5.12)
+
+See upstream commit:
+
+ commit 3544de8ee6e4817278b15fe08658de49abf58954
+ Author: Jacob Wen <jian.w.wen@oracle.com>
+ Date: Wed Feb 24 12:00:55 2021 -0800
+
+ mm, tracing: record slab name for kmem_cache_free()
+
+ Currently, a trace record generated by the RCU core is as below.
+
+ ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=00000000f3b49a66
+
+ It doesn't tell us what the RCU core has freed.
+
+ This patch adds the slab name to trace_kmem_cache_free().
+ The new format is as follows.
+
+ ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=0000000037f79c8d name=dentry
+ ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=00000000f78cb7b5 name=sock_inode_cache
+ ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=0000000018768985 name=pool_workqueue
+ ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=000000006a6cb484 name=radix_tree_node
+
+ We can use it to understand what the RCU core is going to free. For
+ example, some users maybe interested in when the RCU core starts
+ freeing reclaimable slabs like dentry to reduce memory pressure.
+
+ Link: https://lkml.kernel.org/r/20201216072804.8838-1-jian.w.wen@oracle.com
+
+Upstream-status: backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I1ee2fc476614cadcc8d3ac5d8feddc7910e1aa3a
+---
+ instrumentation/events/lttng-module/kmem.h | 27 ++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/instrumentation/events/lttng-module/kmem.h b/instrumentation/events/lttng-module/kmem.h
+index b134620a..d787ea54 100644
+--- a/instrumentation/events/lttng-module/kmem.h
++++ b/instrumentation/events/lttng-module/kmem.h
+@@ -87,6 +87,32 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc_node, kmem_cache_alloc_node,
+ TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
+ )
+
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,12,0))
++LTTNG_TRACEPOINT_EVENT(kfree,
++
++ TP_PROTO(unsigned long call_site, const void *ptr),
++
++ TP_ARGS(call_site, ptr),
++
++ TP_FIELDS(
++ ctf_integer_hex(unsigned long, call_site, call_site)
++ ctf_integer_hex(const void *, ptr, ptr)
++ )
++)
++
++LTTNG_TRACEPOINT_EVENT(kmem_cache_free,
++
++ TP_PROTO(unsigned long call_site, const void *ptr, const char *name),
++
++ TP_ARGS(call_site, ptr, name),
++
++ TP_FIELDS(
++ ctf_integer_hex(unsigned long, call_site, call_site)
++ ctf_integer_hex(const void *, ptr, ptr)
++ ctf_string(name, name)
++ )
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_CLASS(kmem_free,
+
+ TP_PROTO(unsigned long call_site, const void *ptr),
+@@ -114,6 +140,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_free, kmem_cache_free,
+
+ TP_ARGS(call_site, ptr)
+ )
++#endif
+
+ #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
+ LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free, kmem_mm_page_free,
+--
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch
new file mode 100644
index 000000000..8a839c2b4
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch
@@ -0,0 +1,41 @@
+From 92cc3e7f76a545a2cd4828576971f1eea83f4e68 Mon Sep 17 00:00:00 2001
+From: Francis Deslauriers <francis.deslauriers@efficios.com>
+Date: Wed, 17 Mar 2021 10:40:56 -0400
+Subject: [PATCH 4/4] Fix: kretprobe: null ptr deref on session destroy
+
+The `filter_bytecode_runtime_head` list is currently not initialized for
+the return event of the kretprobe. This caused a kernel null ptr
+dereference when destroying a session. It can reproduced with the
+following commands:
+
+ lttng create
+ lttng enable-event -k --function=lttng_test_filter_event_write my_event
+ lttng start
+ lttng stop
+ lttng destroy
+
+Upstream-status: backport
+
+Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I1162ce8b10dd7237a26331531f048346b984eee7
+---
+ lttng-events.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lttng-events.c b/lttng-events.c
+index 984bd341..3450fa40 100644
+--- a/lttng-events.c
++++ b/lttng-events.c
+@@ -704,6 +704,8 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan,
+ event_return->enabled = 0;
+ event_return->registered = 1;
+ event_return->instrumentation = itype;
++ INIT_LIST_HEAD(&event_return->bytecode_runtime_head);
++ INIT_LIST_HEAD(&event_return->enablers_ref_head);
+ /*
+ * Populate lttng_event structure before kretprobe registration.
+ */
+--
+2.19.1
+