subtree updates

meta-security: 30e755c592..283a773f24:
  Armin Kuster (2):
        meta-security: Drop ${PYTHON_PN}
        openscap: update to tip to fix new build issue.

  Jeremy A. Puhlman (4):
        arpwatch: fix misspelling of PACKAGECONFIG
        aprwatch: Add path for sendmail
        Check for usrmerge before removing /usr/lib
        arpwatch: install man8 dir

  Kevin Hao (4):
        docs: dm-verity.txt: Fix a typo
        dm-verity: Adjust the image names according to the oe-core change
        dm-verity: Set the IMAGE_FSTYPES correctly when dm-verity is enabled
        dm-verity-image-initramfs: Set IMAGE_NAME_SUFFIX to empty

  Max Krummenacher (1):
        layer.conf: Update for the scarthgap release series

  Mingli Yu (1):
        python3-pyinotify: Make asyncore support optional for Python 3

poky: 7165c23237..110ee701b3:
  Alejandro Hernandez Samaniego (1):
        python3-manifest: Sync RDEPENDS with latest version

  Alexander Kanavin (11):
        meson: correct upstream version check (exclude pre-releases)
        cargo-c-native: convert from git fetcher to crate fetcher
        cargo-c-native: update 0.9.18 -> 0.9.30
        man-pages: use env from coreutils-native
        sdk-manual: correctly describe separate build-sysroots tasks in direct sdk workflows
        dev/ref-manual: document conf-summary.txt together with conf-notes.txt
        dev-manual: improve descriptions of 'bitbake -S printdiff'
        wayland: fix upstream version check by asking gitlab directly
        python3: correct upstream version check
        bitbake: bitbake: improve descriptions of '-S printdiff'
        selftest/sstatetests: run CDN check twice, ignoring errors the first time

  Alexandre Truong (1):
        oeqa/selftest/devtool: fix test_devtool_add_git_style2

  Anibal Limon (1):
        wic: bootimg-partition allow to set var to get boot files

  BELOUARGA Mohamed (1):
        ref-manual: add documentation of the variable SPDX_NAMESPACE_PREFIX

  Bartosz Golaszewski (1):
        linux-firmware: update to 20240312

  Baruch Siach (1):
        oeqa/selftest/overlayfs: test read-only rootfs

  Bruce Ashfield (16):
        linux-yocto/6.6: cfg: generic arm64
        linux-yocto/6.6: cfg: riscv XHCI
        linux-yocto/6.6: update to v6.6.21
        linux-yocto/6.6: update CVE exclusions (6.6.21)
        linux-yocto/6.6: cfg: drop unsettable options
        linux-yocto/6.6: drm/tilcdc: Set preferred depth
        linux-yocto/6.6: update to v6.6.22
        linux-yocto/6.6: update CVE exclusions (6.6.22)
        yocto-bsps: update to v6.6.21
        linux-yocto/6.6: cfg: genericarm64 platform/peripheral support
        linux-yocto/6.6: cfg: genericarm64 configuration updates
        linux-yocto/6.6: nftables: ptest and cleanup tweaks
        linux-yocto/6.6: update to v6.6.23
        linux-yocto/6.6: update CVE exclusions (6.6.23)
        linux-yocto-dev: bump to v6.9
        lttng-modules: update to v2.13.12

  Changqing Li (1):
        dnf: fix Exception handling for class ProcessLock

  Chen Qi (1):
        ovmf: set CVE_PRODUCT and CVE_VERSION

  Christian Taedcke (1):
        kernel-fitImage: only include valid compatible line

  Derek Erdmann (1):
        bitbake: fetch2/git: Install Git LFS in local repository config

  Enrico Jörns (3):
        cml1: remove needless check for write_taint attribute
        cml1: prompt location of updated .config after do_menuconfig()
        perf: fix TMPDIR contamination for recent mainline kernels

  Enrico Scholz (1):
        shadow: fix copydir operation with 'pseudo'

  Felix Moessbauer (1):
        bitbake: utils: better estimate number of available cpus

  Harish Sadineni (3):
        gcc: Oe-selftest failure analysis - fix for tcl errors
        gcc: Oe-selftest failure analysis - fix for vect-simd test failures
        binutils: gprofng - change use of bignum to use of bignint

  Jermain Horsman (1):
        bblayers/makesetup.py: Move git utility functions to oe.buildcfg module

  Joe Slater (1):
        systemd: enable mac based names in NamePolicy

  Jose Quaresma (5):
        go.bbclass: set GOPROXY
        elfutils: fix unused variable BUFFER_SIZE
        go: keep the patches in order
        go: upgrade 1.22.1 -> 1.22.2
        sstatesig: fix netrc.NetrcParseError exception

  Joshua Watt (4):
        sstatesig: Set hash server credentials from bitbake variables
        bitbake: siggen: Add support for hashserve credentials
        sstatesig: Warn on bad .netrc
        bitbake: bitbake-hashclient: Warn on bad .netrc

  Jörg Sommer (1):
        autotools: update link in comment for cross compiling

  Kevin Hao (1):
        image-live.bbclass: Adjust the default value for INITRD_LIVE

  Khem Raj (13):
        systemd: Check for directory before chmod'ing it
        llvm: Update to 18.1.1 release
        elfutils: Fix build break with clang
        glibc: Update to tip of 2.39 branch
        pam: Fix build with musl
        piglit: Switch to upstreamed patch for musl fix
        qemuriscv: Fix kbd and mouse emulation for qemuriscv64
        llvm: Upgrade to 18.1.2 bugfix release
        glibc: Repace aarch configure patch fix with a backport
        valgrind: Backport fixes from 3.22 branch
        tcl: Forward port skip logic for musl ptests
        readline: Apply patches from readline-8.2-patches
        mesa: Drop LLVM-17 patch

  Lee Chee Yang (1):
        migration-guides: add release notes for 4.0.17

  Marcel Ziswiler (1):
        mesa: enable imagination powervr support

  Markus Volk (11):
        mesa: fix opencl-spirv build
        vala: merge bb and inc files
        vala: fix for gtk4 prior to 4.14
        libsoup: enable vapi support
        gsettings-desktop-schemas: update 45.0 -> 46.0
        libadwaita: update 1.4.4 -> 1.5.0
        gtk4: update 4.12.5 -> 4.14.1
        systemd: disable mdns feature in resolved for zeroconf
        webkitgtk: update 2.42.5 -> 2.44.0
        gtk+3: disable wayland without opengl
        epiphany: update 45.3 -> 46.0

  Martin Jansa (2):
        contributor-guide: be more specific about meta-* trees
        pixman: explicitly disable openmp in native builds

  Max Krummenacher (1):
        git: git-replacement-native: depend on ca-certificate

  Michael Opdenacker (8):
        manuals: add initial stylechecks with Vale
        profile-manual: usage.rst: formatting fixes
        manuals: use "manual page(s)"
        profile-manual: usage.rst: fix reference to bug report
        documentation: Makefile: remove releases.rst in "make clean"
        migration-guides: draft notes for upcoming release 5.0
        manuals: add initial stylechecks with Vale
        profile-manual: usage.rst: further style improvements

  Oleh Matiusha (3):
        bash: improve reproducibility
        curl: improve reproducibility
        gmp: improve reproducibility

  Paul Barker (1):
        kernel: Fix check_oldest_kernel

  Peter A. Bigot (1):
        bitbake: lib/bb: support NO_COLOR

  Peter Kjellerstedt (1):
        util-linux: Set the license for util-linux-fcntl-lock to MIT

  Philippe Rivest (1):
        bitbake: bitbake: fetch2/git: Escape parentheses in git src name

  Quentin Schulz (1):
        u-boot: fix externalsrc not triggering do_configure on defconfig changes

  Randy MacLeod (1):
        gstreamer: upgrade 1.22.10 -> 1.22.11

  Richard Purdie (10):
        poky: Update to prepare for scarthgap release
        layer.conf: Prepare for release, drop nanbield LAYERSERIES
        expat: Upgrade 2.6.1 -> 2.6.2
        bash/flex: Ensure BUILD_FLAGS doesn't leak onto target
        uninative: Add pthread linking workaround
        poky-altcfg: Default to ipk packaging
        util-linux: Add missing MIT license
        util-linux: Add fcntl-lock
        run-postinsts: Add workaround for locking deadlock issue
        oeqa/sstatetests: Fix race issue

  Ross Burton (22):
        genericarm64.wks: reorder partitions
        genericarm64: clean up kernel modules and firmware
        linux-firmware: add support for deduplicating the firmware
        linux-firmware: set LICENSE field for -liquidui and -mellanox
        linux-firmware: remove pointless linux-firmware-gplv2-license package
        curl: improve run-ptest
        curl: increase test timeouts
        gstreamer1.0: improve test reliability
        linux-yocto: put COMPATIBLE_MACHINE first
        linux-yocto: implicitly track oe-core's kernel version for genericarm64
        bitbake: fetch2: handle URIs with single-valued query parameters
        python3_pip517: just count wheels in the directory, not subdirectories
        python-*: don't set PYPI_ARCHIVE_NAME and S when PYPI_PACKAGE is sufficient
        tcl: improve run-ptest
        tcl: skip I/O channel 46.1
        genericarm64: add qemuboot configuration
        classes/qemuboot: add depends on qemu-system-native and qemu-helper-native
        README.hardware.md: fix Markdown formatting
        README.hardware.md: add section on genericarm64 on qemu
        glib-2.0: skip a timing sensitive ptest
        openssl: fix crash on aarch64 if BTI is enabled but no Crypto instructions
        curl: fix quoting when disabling flaky tests

  Ryan Eatmon (1):
        perf: Fix QA error due to most recent kernel

  Sam Van Den Berge (1):
        shadow: don't install libattr.so.* when xattr not in DISTRO_FEATURES

  Sava Jakovljev (1):
        bitbake: bitbake-worker: Fix bug where umask 0 was not being applied to a task

  Simone Weiß (1):
        gnutls: upgrade 3.8.3 -> 3.8.4

  Soumya Sambu (1):
        go: Upgrade 1.22.0 -> 1.22.1

  Sourav Kumar Pramanik (1):
        libseccomp: Add back in PTESTS_SLOW list

  Sundeep KOKKONDA (1):
        rust: reproducibility issue fix with v1.75

  Tim Orling (2):
        coreutils: drop obsolete liberror-perl RDEPENDS
        liberror-perl: move to meta-perl

  Timon Bergelt (1):
        populate_sdk_ext.bbclass: only overwirte lsb string if uninative is used

  Tom Hochstein (2):
        bmaptool: Add bmap-tools runtime alias for compatibility
        toolchain-shar-relocate.sh: Add check for missing command 'file'

  Trevor Woerner (1):
        bmaptool: update to latest

  Ulrich Ölmann (1):
        ref-manual: classes: update description of class 'image_types'

  Viswanath Kraleti (1):
        bitbake: fetch2: Fix misleading "no output" msg

  Wang Mingyu (1):
        libadwaita: upgrade 1.4.3 -> 1.4.4

  William Lyu (1):
        openssh: Add a workaround for ICE on powerpc64le

  Xiangyu Chen (3):
        lttng-tools: skip kernel tests if no kernel modules present
        ltp: fix missing connectors tests in scenario_groups/default
        lttng-tools: fix rotation-destroy-flush test fails if no kernel module present

  Yang Xu (1):
        bitbake: bitbake-worker: Fix silent hang issue caused by unexpected stdout content

  Yannick Rodriguez (1):
        linux-firmware: Move Intel 9260 modules firmware.

  Yash Shinde (1):
        glibc: Skip 2 qemu tests that can hang in oe-selftest

  Yi Zhao (1):
        libtirpc: drop redundant PACKAGECONFIG

  Yoann Congal (6):
        cve-update-nvd2-native: Fix typo in comment
        cve-update-nvd2-native: Add an age threshold for incremental update
        cve-update-nvd2-native: Remove duplicated CVE_CHECK_DB_FILE definition
        cve-update-nvd2-native: nvd_request_next: Improve comment
        cve-update-nvd2-native: Fix CVE configuration update
        cve-update-nvd2-native: Remove rejected CVE from database

  Yogesh Tyagi (1):
        lttng-modules: fix v6.8+ build

  david d zuhn (1):
        bitbake: bitbake-worker: allow '=' in environment variable values

  lixiaoyong (3):
        kernel-module-split.bbclass: enhance objcopy command call for kernel compilation with llvm
        utils: enhance readelf command call with llvm
        oe/package: enhance objdump command call with llvm

meta-raspberrypi: 92a9b7a012..d072cc8a48:
  Khem Raj (9):
        linux-raspberrypi: Add recipe for 6.6 LTS kernel
        bluez-firmware-rpidistro: Upgrade to 1.2-9+rpt3 release
        linux-firmware-rpidistro: Upgrade to bookworm/20230625-2+rpt2
        raspberrypi-firmware: Fetch using git URI
        rpi-base: Add missing broadcom/ prefix to find DTB files
        rpi-default-versions: Switch default kernel to 6.6
        linux-raspberrypi_6.6: Bump to 6.6.22
        rpi-bootfiles: Resort to github APIs for tarballs
        raspberrypi-firmware: Revert to debian archive

  Martin Jansa (1):
        userland: fix installed-vs-shipped in multilib builds

  jdavidsson (1):
        rpi-base: Add hifiberry-dacplusadc overlay

meta-arm: aba9250494..d9e18ce792:
  Abdellatif El Khlifi (1):
        arm-bsp/corstone1000: add documentation disclaimer

  Alexander Sverdlin (1):
        optee-ftpm: fix EARLY_TA_PATHS passed to optee-os

  Ali Can Ozaslan (4):
        arm-bsp/trusted-firmware-m: corstone1000: update to 2.0
        arm-bsp/trusted-services: corstone1000: Client Id adjustments after TF-M 2.0
        arm/trusted-firmware-m: Change GNU Arm compiler version for TF-M 2.0
        arm-bsp/trusted-firmware-a: n1sdp: update to 2.10

  Anusmita Dutta Mazumder (2):
        arm-bsp/n1sdp: Update scp-firmware version
        arm-bsp/n1sdp: Update EDK2 version

  Bence Balogh (2):
        arm-bsp/u-boot: corstone1000: fix SMCCC_ARCH_FEATURES detection in the PSCI driver
        arm-bsp/trusted-firmware-a: corstone1000: remove SMCCC_ARCH_FEATURES discovery workaround

  Delane Brandy (1):
        arm/trusted-firmware-a: fix mbedTLS version

  Drew Reed (2):
        kas: Corstone-1000 kas files updated
        bsp: Corstone-1000 userguide updates

  Emekcan Aras (2):
        arm-bsp/trusted-firmware-a: Upgrade Corstone1000 to TF-A v2.10
        arm/trusted-services: Add recipe for block storage service

  Jon Mason (17):
        README: Add information about release process and mailing list
        arm/linux-yocto: remove unreferenced patch
        arm/optee: disable clang due to breakage
        arm-bsp/tf-a-tests: remove corstone1000 intermediate SHA
        arm-bsp/tfa-tests: move n1sdp patch to platform directory
        CI: update kas to 4.3.1
        arm/edk2: update to 202402
        arm/trusted-firmware-a: update to 2.10.2
        arm/sbsa-acs: update to 7.1.4
        arm/scp-firmware: update to v2.14.0
        arm-toolchain/gcc-arm-none-eabi: remove 11.2
        CI: reduce coverage of dev kernel
        arm/sbsa-acs: remove unreferenced patch
        arm-toolchain: correct UPSTREAM_CHECK
        Revert "arm/rmm: Add bitbake, include and patch file for RMM firmware"
        arm/sbsa-acs: use UPSTREAM_CHECK_URI for version checking
        arm: use UPSTREAM_CHECK_COMMITS for git versioned recipes

  Mathieu Poirier (1):
        arm/rmm: Add bitbake, include and patch file for RMM firmware

  Ross Burton (3):
        arm arm-bsp: enable patch-status warnings
        Add SECURITY.md
        CI: ignore netrc warnings caused by Kas

meta-openembedded: a0237019f5..a6bcdca5b4:
  Bartosz Golaszewski (1):
        libgpiod: update to v2.1.1

  Chad Rockey (1):
        cppzmq-dev expects /usr/lib/libzmq.a

  Changqing Li (1):
        postgresql: fix a runtime error

  Chen Qi (1):
        tcprelay: fix a minor cross compilation do_configure issue

  Christophe Chapuis (9):
        lvgl: fix typo in lv-conf.inc
        lvgl: install lv_conf.h
        lvgl: remove useless FILES include
        lvgl: cleanup sed instructions in lv-conf.inc
        lvgl: add more variables to lv-conf.inc
        lvgl: fix libdrm include
        lvgl: lv-conf.inc: generalize sed instructions
        lvgl: make libdrm include conditional
        lvgl: cleanup sed expression

  Dan McGregor (2):
        python3-pylint: Update to 3.1.0
        python3-pylint: Fix ptest failures

  Derek Straka (1):
        python3-dbus: re-add recipe with latest patches and add ptest

  Etienne Cordonnier (1):
        uutils-coreutils: upgrade 0.0.24 -> 0.0.25

  Fathi Boudra (1):
        python3-django: upgrade 4.2.10 -> 4.2.11

  Guðni Már Gilbert (2):
        python3-ecdsa: remove python3-pbr
        python3-ecdsa: cleanup DEPENDS

  Jaeyoon Jung (1):
        lvgl: Set resolution prior to buffer

  Joe Slater (1):
        googletest: allow for shared libraries

  Jose Quaresma (1):
        ostree: Upgrade 2024.4 -> 2024.5

  Jörg Sommer (3):
        sngrep: new recipe for ncurses SIP Messages flow viewer
        spandsp: new telephony DSP library
        bluez-tools: New recipe for bluez5 tools

  Kai Kang (2):
        Packages depends on libadwaita should require distro feature opengl
        thin-provisioning-tools: install binary to ${sbindir}

  Khem Raj (55):
        squid: Upgrade to 6.8
        libosinfo: Fix build with libxml2 v2.12
        xmlstarlet: Fix build with API breakage in libxml2 2.12
        mariadb: Fix build with libxml2 2.12 ABI changes
        libmusicbrainz: Update to tip of trunk
        gnome-commander: Fix build with taglib 2.0
        gnome-online-accounts: Fix build with libxml2 2.12
        vlc: Upgrade to 3.0.20
        netcf: Fix build with latest gnulib
        php: Upgrade to 8.2.16
        vlc: Fix build on 32bit x86
        libtinyxml2: Extend for nativesdk
        lvgl: Fix dev-elf build QA
        layer.conf: Update for the scarthgap release series
        dietsplash: Update and fix build with musl
        frr: Upgrade to latest on 9.1 stable
        frr: Fix build on newer musl
        layer.conf: Prepare for release, drop nanbield LAYERSERIES
        libcamera: Fix clang support patches
        plocate: Fix sys/stat.h and linux/stat.h conflicts with musl
        liburing: Upgrade to 2.5
        openflow: Delete recipe for 1.0
        openflow: Merge .inc into .bb
        openflow: Fix build with musl
        tracker-miners: Disable seccomp support on musl
        libcamera: Fix build on musl systems
        ipset: Update to 7.21
        ot-daemon: Update to tip of trunk
        ot-br-posix: Update to latest
        wpantund: Update to latest
        xfsdump: Fix build with musl >= 1.2.5
        xfstests: Fix build with musl >= 1.2.5
        net-snmp: Fix build with musl
        rdma-core: Fix build with musl >= 1.2.5
        ssmtp: Fix build with musl >= 1.2.5
        autofs: Fix build with musl >= 1.2.5
        lvm2: Fix build with musl 1.5.2+
        sanlock: Fix build with musl >= 1.2.5
        ndctl: Fix build issues seen with musl 1.2.5
        sdbus-c++-libsystemd: Upgrade to 255.4 release of systemd
        sdbus-c++,sdbus-c++-tools: Upgrade to 1.5.0 release
        wtmpdb: Upgrade to 0.11.0 release
        uftrace: Fix build with musl >= 1.2.5
        fio: Upgrade to 3.36+git
        i2cdev: Include libgen.h on musl
        directfb: Fix build with musl >= 1.2.5
        iwd: Upgrade to 2.16
        minifi-cpp: Fix libsodium build on aarch64/clang
        multipath-tools: Fix build with musl >= 1.2.5
        aer-inject: Fix build with latest musl
        aer-inject: Replace hardcoded /usr with ${prefix}
        microsoft-gsl: Disable disabled-macro-expansion warning as error on clang/musl
        meta-python-image-ptest: Use 2G RAM for some demanding tests
        python3-pydbus: Add bash dependency for ptests
        highway,libjxl: Remove -mfp16-format=ieee when using clang compiler

  Leon Anavi (7):
        python3-anyio: Upgrade 4.2.0 -> 4.3.0
        python3-httpx: Upgrade 0.26.0 -> 0.27.0
        python3-multidict: Upgrade 6.0.4 -> 6.0.5
        python3-croniter: Upgrade 2.0.1 -> 2.0.3
        python3-paho-mqtt: Upgrade 1.6.1 -> 2.0.0
        python3-typeguard: Upgrade 4.1.5 -> 4.2.1
        python3-cachetools: Upgrade 5.3.2 -> 5.3.3

  Marek Vasut (14):
        lvgl: Drop dialog-lvgl
        lvgl: Upgrade to LVGL 9 series
        lvgl: Rename lv-drivers.inc to lv-conf.inc
        lvgl: Add SDL2 fullscreen mode configuration option
        lvgl: Configure assertions based on DEBUG_BUILD
        lvgl: Default to XRGB8888 DRM framebuffer
        lvgl: Build shared library
        lvgl: Replace sed patching with real patches
        lvgl: Generate proper shared libraries with version suffix
        lvgl: Reinstate demo configuration settings
        lvgl: Update to 9.1.0
        lvgl: Drop superfluous ALLOW_EMPTY
        lvgl: Drop unnecessary PV append
        lvgl: Deduplicate PACKAGECONFIG into lv-conf

  Markus Volk (66):
        mozjs-115: fix reproducibility issue
        webp-pixbuf-loader: update 0.2.5 -> 0.2.7
        gnome-control-center: fix reproducibility issue
        gnome-disk-utility: fix reproducibility issue
        gnome-settings-daemon: fix reproducibility issue
        gnome-terminal: fix reproducibility issue
        libvncserver: fix reproducibility issue
        editorconfig-core-c: fix reproducibility issue
        crossguid: fix reproducibility issue
        waylandpp: fix reproducibility issue
        polkit: remove unneeded workaround
        gtk-vnc: fix reproducibility issue
        pipewire: update 1.0.3 -> 1.0.4
        mutter: remove zenity from rdepends
        mutter: update 45.4 -> 46.0
        gnome-shell: update 45.4 -> 46.0
        gnome-settings-daemon: update 45.0 -> 46.0
        gnome-software: update 45.3 -> 46.0
        evince: update 45.0 -> 46.0
        gnome-online-accounts: update 3.48.0 -> 3.50.0
        evolution-data-server: build with webkitgtk4
        folks: update 0.15.7 -> 0.15.8
        gnome-control-center: update 45.3 -> 46.0
        xdg-desktop-portal-gnome: update 45.1 -> 46.0
        tracker: update 3.6.0 -> 3.7.0
        tracker-miners: update 3.6.2 -> 3.7.0
        freerdp3: add recipe
        wireplumber: update 0.4.17 -> 0.5.0
        tecle: update 45.0 -> 46.0
        gnome-calculator: update 45.0.2 -> 46.0
        gnome-session: update 45.0 -> 46.0
        gnome-remote-desktop: update 45.1 -> 46.0
        gnome-calendar: update 45.1 -> 46.0
        libgweather4: update 4.4.0 -> 4.4.2
        gtksourceview5: update 5.10.0 -> 5.12.0
        gnome-control-center: use gcr4 variant
        libcloudproviders: update 0.3.5 -> 0.3.6
        gnome-themes-extra: build with gtk+3
        gtk4mm: add recipe
        gnome-system-monitor: update 45.0.1 -> 46.0
        gnome-boxes: update 45.0 -> 46.0
        eog: update 45.2 -> 45.3
        gparted: update 1.5.0 -> 1.6.0
        libgtop: update 2.41.1 -> 2.41.3
        gnome-bluetooth: update 42.8 -> 46.0
        gnome-text-editor: update 45.1 -> 46.0
        gnome-chess: update 43.2 -> 46.0
        gnome-disk-utility: update 45.0 -> 46.0
        gnome-shell-extensions: update 45.2 -> 46.0
        msgraph: add recipe
        gvfs: update 1.52.2 -> 1.54.0
        tracker-miners: drop buildpath from tracker-miner-fs-3
        evolution-data-server: disable tests and examples
        tracker-miners: fix reproducibility issue for landlock
        file-roller: update 43.1 -> 44.0
        apache2: preset mpm=prefork by default
        gnome-user-share: add recipe
        gnome-control-center: update 46.0 -> 46.0.1
        gdm: update 45.0.1 -> 46.0
        gnome-user-share: remove hardcoded paths
        ghex: update 45.1 -> 46.0
        libjxl: add recipe
        gnome-backgrounds: add runtime depenency for libjxl
        highway: add recipe
        webkitgtk3: update 2.42.5 -> 2.44.0
        gnome-control-center: restore Upstream-Status line

  Martin Jansa (5):
        unionfs-fuse, dropwatch, postgresql, yasm, multipath-tools, python3-pybind11: add missing Upstream-Status
        recipes: Drop remaining PR values from recipes
        freerdp3: disable shadow without x11
        xfstests: upgrade to v2024.03.03
        gtkmm4: add x11 to REQUIRED_DISTRO_FEATURES

  Maxin John (7):
        tracker: remove unused patch
        openal-soft: remove unused patches
        libio-pty-perl: remove unsed patch
        opengl-es-cts: remove unused patch
        emacs: remove unused patch
        webkitgtk3: remove unused patch
        python3-eth-utils: remove unused patches

  Michael Heimpold (1):
        ser2net: add a systemd service file

  Mingli Yu (4):
        gosu: Upgrade to 1.17
        googletest: Pass -fPIC to CFLAGS
        re2: Upgrade 2023.03.01 -> 2024.03.01
        nss: Upgrade 3.74 -> 3.98

  Ola x Nilsson (2):
        abseil-cpp: Split so-files into separate packages
        abseil-cpp: Split so-files into separate packages

  Peter Kjellerstedt (3):
        abseil-cpp: A little clean-up
        libnice: Disable the examples and the tests
        abseil-cpp: A little clean-up

  Peter Marko (5):
        jwt-cpp: fix cmake file install path
        soci: fix buildpaths warning
        libcpr: add new recipe
        python3-grpcio: cleanup dependencies
        microsoft-gsl: add new recipe including ptest

  Petr Gotthard (2):
        libmbim: Revert back to the latest stable 1.30.0
        libqmi: Revert back to the latest stable 1.34.0

  Randy MacLeod (2):
        rsyslog: update from 8.2306.0 to 8.2402.0
        nftables: Add DESCRIPTION and HOMEPAGE

  Richard Purdie (2):
        imagemagick/lcms/fftw: Allow nativesdk versions to exist
        buildtools-imagemagick: Add new recipe

  Robert P. J. Day (1):
        fmt: remove unnecessary "inherit ptest" directive

  Robert Yang (6):
        yaffs2-utils: Upgrade to 20221209
        xfsprogs: 6.5.0 -> 6.6.0
        gnulib: 2018-12-18 -> 202401
        thin-provisioning-tools: 1.0.9 -> 1.0.12
        gperftools: 2.10 -> 2.15
        freeradius: 3.0.26 -> 3.2.3

  Ross Burton (1):
        python3-pydantic-core: just set PYPI_PACKAGE

  Sam Van Den Berge (1):
        python3-aiohttp: add missing dependencies

  Samuli Piippo (1):
        geoclue: enable demo agent

  Thomas Roos (1):
        usrsctp: upgrade to latest version

  Tim Orling (1):
        liberror-perl: move recipe from oe-core

  Tomasz Żyjewski (1):
        python: python-libusb1: add recipe

  Wang Mingyu (124):
        bats: upgrade 1.10.0 -> 1.11.0
        c-ares: upgrade 1.26.0 -> 1.27.0
        ctags: upgrade 6.1.20240114.0 -> 6.1.20240225.0
        dbus-cxx: upgrade 2.5.0 -> 2.5.1
        ddrescue: upgrade 1.27 -> 1.28
        fetchmail: upgrade 6.4.37 -> 6.4.38
        libtalloc: upgrade 2.4.1 -> 2.4.2
        libtdb: upgrade 1.4.9 -> 1.4.10
        neatvnc: upgrade 0.7.2 -> 0.8.0
        ostree: upgrade 2024.3 -> 2024.4
        python3-astroid: upgrade 3.0.3 -> 3.1.0
        python3-cbor2: upgrade 5.6.1 -> 5.6.2
        python3-dnspython: upgrade 2.6.0 -> 2.6.1
        python3-eventlet: upgrade 0.35.1 -> 0.35.2
        python3-gcovr: upgrade 7.0 -> 7.2
        python3-google-api-core: upgrade 2.16.2 -> 2.17.1
        python3-google-api-python-client: upgrade 2.118.0 -> 2.120.0
        python3-grpcio(-tools): upgrade 1.60.1 -> 1.62.0
        python3-ipython: upgrade 8.21.0 -> 8.22.1
        python3-pdm: upgrade 2.12.3 -> 2.12.4
        python3-pymisp: upgrade 2.4.185 -> 2.4.186
        python3-scrypt: upgrade 0.8.20 -> 0.8.24
        python3-sentry-sdk: upgrade 1.40.4 -> 1.40.6
        smarty: upgrade 4.3.4 -> 4.4.1
        stunnel: upgrade 5.69 -> 5.72
        abseil-cpp: upgrade 20230802.1 -> 20240116.1
        dnf-plugin-tui: upgrade 1.3 -> 1.4
        boost-sml: upgrade 1.1.9 -> 1.1.11
        ctags: upgrade 6.1.20240225.0 -> 6.1.20240310.0
        dialog: upgrade 1.3-20240101 -> 1.3-20240307
        flatbuffers: upgrade 23.5.26 -> 24.3.7
        gjs: upgrade 1.78.4 -> 1.80.0
        hwdata: upgrade 0.379 -> 0.380
        iceauth: upgrade 1.0.9 -> 1.0.10
        libdnet: upgrade 1.17.0 -> 1.18.0
        libopus: upgrade 1.4 -> 1.5.1
        libreport: upgrade 2.17.11 -> 2.17.15
        libxaw: upgrade 1.0.15 -> 1.0.16
        mcelog: upgrade 196 -> 197
        networkd-dispatcher: upgrade 2.1 -> 2.2.4
        openlldp: upgrade 1.1.0 -> 1.1.1
        opensc: upgrade 0.24.0 -> 0.25.0
        pcsc-lite: upgrade 2.0.1 -> 2.0.3
        python3-a2wsgi: upgrade 1.10.2 -> 1.10.4
        python3-apiflask: upgrade 2.1.0 -> 2.1.1
        python3-argcomplete: upgrade 3.2.2 -> 3.2.3
        python3-bandit: upgrade 1.7.7 -> 1.7.8
        python3-blivet: upgrade 3.8.2 -> 3.9.1
        python3-blivetgui: upgrade 2.4.2 -> 2.5.0
        python3-django: upgrade 5.0.2 -> 5.0.3
        python3-elementpath: upgrade 4.3.0 -> 4.4.0
        python3-eth-abi: upgrade 5.0.0 -> 5.0.1
        python3-eth-rlp: upgrade 1.0.1 -> 2.0.0
        python3-flask-migrate: upgrade 4.0.5 -> 4.0.7
        python3-google-api-python-client: upgrade 2.120.0 -> 2.122.0
        python3-google-auth: upgrade 2.28.1 -> 2.28.2
        python3-googleapis-common-protos: upgrade 1.62.0 -> 1.63.0
        python3-grpcio-tools: upgrade 1.62.0 -> 1.62.1
        python3-grpcio: upgrade 1.62.0 -> 1.62.1
        python3-ipython: upgrade 8.22.1 -> 8.22.2
        python3-mypy: upgrade 1.8.0 -> 1.9.0
        python3-pydantic: upgrade 2.6.3 -> 2.6.4
        python3-pymisp: upgrade 2.4.186 -> 2.4.187
        python3-pymodbus: upgrade 3.6.4 -> 3.6.6
        python3-pyperf: upgrade 2.6.2 -> 2.6.3
        python3-pytest-lazy-fixtures: upgrade 1.0.5 -> 1.0.6
        python3-pytest-timeout: upgrade 2.2.0 -> 2.3.1
        python3-requests-oauthlib: upgrade 1.3.1 -> 1.4.0
        python3-sentry-sdk: upgrade 1.40.6 -> 1.42.0
        python3-tox: upgrade 4.13.0 -> 4.14.1
        python3-traitlets: upgrade 5.14.1 -> 5.14.2
        python3-types-psutil: upgrade 5.9.5.20240205 -> 5.9.5.20240316
        python3-types-python-dateutil: upgrade 2.8.19.20240106 -> 2.9.0.20240316
        tcsh: upgrade 6.24.10 -> 6.24.11
        thingsboard-gateway: upgrade 3.4.4 -> 3.4.5
        xmessage: upgrade 1.0.6 -> 1.0.7
        xrefresh: upgrade 1.0.7 -> 1.1.0
        gjs: upgrade 1.80.0 -> 1.80.2
        gnome-backgrounds: upgrade 45.0 -> 46.0
        gnome-font-viewer: upgrade 45.0 -> 46.0
        libblockdev: upgrade 3.1.0 -> 3.1.1
        libdeflate: upgrade 1.19 -> 1.20
        libmbim: upgrade 1.30.0 -> 1.31.2
        libqmi: upgrade 1.34.0 -> 1.35.2
        libtommath: upgrade 1.2.1 -> 1.3.0
        mcelog: upgrade 197 -> 198
        metacity: upgrade 3.50.0 -> 3.52.0
        python3-asgiref: upgrade 3.7.2 -> 3.8.1
        python3-blivet: upgrade 3.9.1 -> 3.9.2
        python3-cassandra-driver: upgrade 3.29.0 -> 3.29.1
        python3-djangorestframework: upgrade 3.14.0 -> 3.15.1
        python3-eth-rlp: upgrade 2.0.0 -> 2.1.0
        python3-eventlet: upgrade 0.35.2 -> 0.36.1
        python3-filelock: upgrade 3.13.1 -> 3.13.3
        python3-flask-marshmallow: upgrade 1.2.0 -> 1.2.1
        python3-flatbuffers: upgrade 24.3.7 -> 24.3.25
        python3-google-api-core: upgrade 2.17.1 -> 2.18.0
        python3-google-api-python-client: upgrade 2.122.0 -> 2.124.0
        python3-google-auth: upgrade 2.28.2 -> 2.29.0
        python3-graphviz: upgrade 0.20.1 -> 0.20.3
        python3-gspread: upgrade 6.0.2 -> 6.1.0
        python3-jdatetime: upgrade 4.1.1 -> 5.0.0
        python3-pdm: upgrade 2.12.4 -> 2.13.2
        python3-pyasn1-modules: upgrade 0.3.0 -> 0.4.0
        python3-pymisp: upgrade 2.4.187 -> 2.4.188
        python3-pytest-asyncio: upgrade 0.23.5 -> 0.23.6
        python3-pytest-cov: upgrade 4.1.0 -> 5.0.0
        python3-pytest-lazy-fixtures: upgrade 1.0.6 -> 1.0.7
        python3-pywbem: upgrade 1.6.2 -> 1.6.3
        python3-pywbemtools: upgrade 1.2.0 -> 1.2.1
        python3-pyzstd: upgrade 0.15.9 -> 0.15.10
        python3-requests-oauthlib: upgrade 1.4.0 -> 2.0.0
        python3-sentry-sdk: upgrade 1.42.0 -> 1.44.0
        python3-socketio: upgrade 5.11.1 -> 5.11.2
        python3-thrift: upgrade 0.16.0 -> 0.20.0
        python3-tox: upgrade 4.14.1 -> 4.14.2
        python3-web3: upgrade 6.15.1 -> 6.16.0
        st: upgrade 0.9 -> 0.9.1
        thingsboard-gateway: upgrade 3.4.5 -> 3.4.6
        thrift: upgrade 0.19.0 -> 0.20.0
        tracker-miners: upgrade 3.7.0 -> 3.7.1
        tracker: upgrade 3.7.0 -> 3.7.1
        wireshark: upgrade 4.2.3 -> 4.2.4
        wolfssl: upgrade 5.6.6 -> 5.7.0

  William Lyu (3):
        nftables: Fix ptest output format issues
        nftables: Fix ShellCheck violations in ptest wrapper script "run-ptest"
        nftables: Fix failed ptest testcases

  Yi Zhao (13):
        netplan: upgrade 0.106 -> 1.0
        networkmanager: 1.44.0 -> 1.46.0
        postfix: upgrade 3.8.5 -> 3.8.6
        net-snmp: upgrade 5.9.3 -> 5.9.4
        cryptsetup: upgrade 2.7.0 -> 2.7.1
        samba: upgrade 4.19.4 -> 4.19.5
        civetweb: remove buildpaths from civetweb-targets.cmake
        minifi-cpp: upgrade 0.7.0 -> 0.15.0
        openvpn: upgrade 2.6.9 -> 2.6.10
        rocksdb: upgrade 7.9.2 -> 9.0.0
        audit: upgrade 4.0 -> 4.0.1
        netplan: add missing config directory
        strongswan: upgrade 5.9.13 -> 5.9.14

  alperak (15):
        python3-icecream: add recipe
        python3-invoke: add recipe
        python3-traitlets: add ptest and update runtime dependencies
        python3-google-auth-oauthlib: add ptest
        python3-tomli-w: added recipe which is also include ptest
        python3-pytest-localserver: added recipe which is also include ptest
        python3-responses: add recipe
        python3-google-auth: add ptest and update runtime dependencies
        remove obsolete PIP_INSTALL_PACKAGE and PIP_INSTALL_DIST_PATH
        python3-a2wsgi: added recipe which is also include ptest
        python3-httptools: added recipe which is also include ptest
        python3-wsproto: Add recipe
        python3-portalocker: enable ptest
        python3-validators: upgrade 0.22.0 > 0.24.0 and enable ptest
        python3-pydbus: Drop ${PYTHON_PN}

  chenheyun (1):
        aer-inject:add new recipe

Change-Id: I3cf0e5c87ecdfa18c35d318cb64c0e6559348618
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
similarity index 98%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
index 1fd44f4..ff79bb9 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240220.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20240312.bb
@@ -28,7 +28,6 @@
     & Firmware-ene_firmware \
     & Firmware-fw_sst_0f28 \
     & Firmware-go7007 \
-    & Firmware-GPLv2 \
     & Firmware-hfi1_firmware \
     & Firmware-i915 \
     & Firmware-ibt_firmware \
@@ -77,6 +76,7 @@
     & Firmware-xc5000 \
     & Firmware-xc5000c \
     & WHENCE \
+    & GPL-2.0-or-later \
 "
 
 LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
@@ -102,7 +102,6 @@
                     file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \
                     file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \
                     file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \
-                    file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \
                     file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \
                     file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \
@@ -155,7 +154,7 @@
                     "
 # WHENCE checksum is defined separately to ease overriding it if
 # class-devupstream is selected.
-WHENCE_CHKSUM  = "a344e6c28970fc7daafa81c10247aeb6"
+WHENCE_CHKSUM  = "514da1cd8b363373030f0c16749feb8d"
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
 # so that the license files will be copied from fetched source
@@ -182,7 +181,6 @@
 NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware"
 NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28"
 NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007"
-NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2"
 NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware"
 NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915"
 NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware"
@@ -243,20 +241,24 @@
 # Pin this to the 20220509 release, override this in local.conf
 SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae"
 
-SRC_URI[sha256sum] = "bf0f239dc0801e9d6bf5d5fb3e2f549575632cf4688f4348184199cb02c2bcd7"
+SRC_URI[sha256sum] = "b2327a54ad1897c828008caf63af5ee15469ba723a5016be58f2b44f07bd4b94"
 
 inherit allarch
 
 CLEANBROKEN = "1"
 
+# Use PACKAGECONFIG_CONFARGS to set the Makefile target
+PACKAGECONFIG ??= ""
+# Enabling dedup will turn duplicate firmware files into links
+PACKAGECONFIG[deduplicate] = "install,install-nodedup,rdfind-native"
+
 do_compile() {
 	:
 }
 
 do_install() {
-        # install-nodedup avoids rdfind dependency
-        oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install-nodedup
-        cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/
+        oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' ${PACKAGECONFIG_CONFARGS}
+        cp LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/
 }
 
 
@@ -319,7 +321,7 @@
              ${PN}-cirrus-license ${PN}-cirrus \
              ${PN}-cnm-license ${PN}-cnm \
              ${PN}-atheros-license ${PN}-ar5523 ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k ${PN}-ath3k \
-             ${PN}-gplv2-license ${PN}-carl9170 \
+             ${PN}-carl9170 \
              ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-ath11k ${PN}-qca \
              \
              ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \
@@ -336,6 +338,7 @@
              ${PN}-iwlwifi-7265 \
              ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \
              ${PN}-iwlwifi-9000 \
+             ${PN}-iwlwifi-9260 \
              ${PN}-iwlwifi-misc \
              ${PN}-ibt-license ${PN}-ibt \
              ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \
@@ -457,15 +460,11 @@
 RDEPENDS:${PN}-ath9k += "${PN}-atheros-license"
 
 # For carl9170
-LICENSE:${PN}-carl9170 = "Firmware-GPLv2"
-LICENSE:${PN}-gplv2-license = "Firmware-GPLv2"
 
-FILES:${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2"
 FILES:${PN}-carl9170 = " \
   ${nonarch_base_libdir}/firmware/carl9170*.fw \
 "
-
-RDEPENDS:${PN}-carl9170 += "${PN}-gplv2-license"
+LICENSE:${PN}-carl9170 = "GPL-2.0-or-later"
 
 # For QualCommAthos
 LICENSE:${PN}-ar3k = "Firmware-qualcommAthos_ar3k & Firmware-atheros_firmware"
@@ -1190,6 +1189,7 @@
 LICENSE:${PN}-iwlwifi-8000c     = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-8265      = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-9000      = "Firmware-iwlwifi_firmware"
+LICENSE:${PN}-iwlwifi-9260      = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-misc      = "Firmware-iwlwifi_firmware"
 LICENSE:${PN}-iwlwifi-license   = "Firmware-iwlwifi_firmware"
 
@@ -1217,6 +1217,7 @@
 FILES:${PN}-iwlwifi-8000c   = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode"
 FILES:${PN}-iwlwifi-8265   = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode"
 FILES:${PN}-iwlwifi-9000   = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode"
+FILES:${PN}-iwlwifi-9260   = "${nonarch_base_libdir}/firmware/iwlwifi-9260-*.ucode"
 FILES:${PN}-iwlwifi-misc   = " \
     ${nonarch_base_libdir}/firmware/iwlwifi-*.ucode \
     ${nonarch_base_libdir}/firmware/iwlwifi-*.pnvm \
@@ -1244,6 +1245,7 @@
 RDEPENDS:${PN}-iwlwifi-8000c     = "${PN}-iwlwifi-license"
 RDEPENDS:${PN}-iwlwifi-8265      = "${PN}-iwlwifi-license"
 RDEPENDS:${PN}-iwlwifi-9000      = "${PN}-iwlwifi-license"
+RDEPENDS:${PN}-iwlwifi-9260      = "${PN}-iwlwifi-license"
 RDEPENDS:${PN}-iwlwifi-misc      = "${PN}-iwlwifi-license"
 
 # -iwlwifi-misc is a "catch all" package that includes all the iwlwifi
@@ -1477,8 +1479,10 @@
 RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${PN}-qcom-sc8280xp-lenovo-x13s-compat"
 RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${PN}-qcom-sc8280xp-lenovo-x13s-compat"
 
+LICENSE:${PN}-liquidui = "Firmware-cavium_liquidio"
 FILES:${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio"
 
+LICENSE:${PN}-mellanox = "WHENCE"
 FILES:${PN}-mellanox = "${nonarch_base_libdir}/firmware/mellanox"
 
 LICENSE:${PN}-prestera = "Firmware-Marvell"
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
index 5449b7e..bb9ba49 100644
--- a/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.6.inc
@@ -1,9 +1,9 @@
 
 # Auto-generated CVE metadata, DO NOT EDIT BY HAND.
-# Generated at 2024-03-03 16:30:03.739466+00:00 for version 6.6.20
+# Generated at 2024-03-28 16:40:04.102652+00:00 for version 6.6.23
 
 python check_kernel_cve_status_version() {
-    this_version = "6.6.20"
+    this_version = "6.6.23"
     kernel_version = d.getVar("LINUX_VERSION")
     if kernel_version != this_version:
         bb.warn("Kernel CVE status needs updating: generated for %s but kernel is %s" % (this_version, kernel_version))
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index bd3e5a9..9bd2198 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -14,7 +14,7 @@
 # provide this .inc to set specific revisions
 include recipes-kernel/linux/linux-yocto-dev-revisions.inc
 
-KBRANCH = "v6.8/standard/base"
+KBRANCH = "v6.9/standard/base"
 KMETA = "kernel-meta"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine;protocol=https \
@@ -28,7 +28,7 @@
 SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 
-LINUX_VERSION ?= "6.8"
+LINUX_VERSION ?= "6.9"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
 PV = "${LINUX_VERSION}+git"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
index e80594b..a44a084 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
@@ -14,13 +14,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "7c5911ab2e70bf84bb38a598b2a7e094618a9620"
-SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
+SRCREV_machine ?= "19813826de57a6425518c7b3daf8dd6a04d2321f"
+SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
 
-LINUX_VERSION ?= "6.6.20"
+LINUX_VERSION ?= "6.6.23"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
index c2a0387..db9e252 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.6.bb
@@ -8,7 +8,7 @@
 # CVE exclusions
 include recipes-kernel/linux/cve-exclusion_6.6.inc
 
-LINUX_VERSION ?= "6.6.20"
+LINUX_VERSION ?= "6.6.23"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
+SRCREV_machine ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b"
 
 PV = "${LINUX_VERSION}+git"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
index 0f62dea..8fb9867 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.6.bb
@@ -18,25 +18,25 @@
 KBRANCH:qemuloongarch64  ?= "v6.6/standard/base"
 KBRANCH:qemumips64 ?= "v6.6/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "9d30fb4668cd7087e81b40f223cdd0090863602b"
-SRCREV_machine:qemuarm64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemuloongarch64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemumips ?= "4b49da8bb522bdaf928855c2c102fa839625c6c1"
-SRCREV_machine:qemuppc ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemuriscv64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemuriscv32 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemux86 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemux86-64 ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_machine:qemumips64 ?= "8e7605bafdfeb842396292181d524b183a1e13d6"
-SRCREV_machine ?= "a04baee60b5a7cf4d9c0c2f4856c6d5bb9b98074"
-SRCREV_meta ?= "8cd63077f67a0f7ff639a2ff24c82b09d71048a4"
+SRCREV_machine:qemuarm ?= "ceb94a85299b59d8840ed7ed392b1d3e4c727678"
+SRCREV_machine:qemuarm64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemuloongarch64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemumips ?= "c79ffc89f8909f60de52005ef258db9752634eda"
+SRCREV_machine:qemuppc ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemuriscv64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemuriscv32 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemux86 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemux86-64 ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_machine:qemumips64 ?= "b0a73fa83073c8d7d7bc917bcbeac88d296ebe38"
+SRCREV_machine ?= "2d01bc1d4eeade12518371139dd24a21438f523c"
+SRCREV_meta ?= "f7f00b22efcfcae6489e9ec7db7002685fbc078b"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same
 # meta SRCREV as the linux-yocto-standard builds. Select your version using the
 # normal PREFERRED_VERSION settings.
 BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "9b4a8eac17f0d840729384618b4b1e876233026c"
+SRCREV_machine:class-devupstream ?= "5c7587f69194bc9fc714953ab4c7203e6e68885b"
 PN:class-devupstream = "linux-yocto-upstream"
 KBRANCH:class-devupstream = "v6.6/base"
 
@@ -44,7 +44,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.6.20"
+LINUX_VERSION ?= "6.6.23"
 
 PV = "${LINUX_VERSION}+git"
 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch
new file mode 100644
index 0000000..9d5fd0d
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch
@@ -0,0 +1,93 @@
+From fec007d9630e010062cf5699a08460f71f46b527 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 08:54:42 -0400
+Subject: [PATCH 1/4] Fix: ASoC snd_doc_dapm on linux 6.9-rc1
+
+See upstream commit:
+
+    commit 7df3eb4cdb6bbfa482f51548b9fd47c2723c68ba
+    Author: Luca Ceresoli <luca.ceresoli@bootlin.com>
+    Date:   Wed Mar 6 10:30:01 2024 +0100
+
+        ASoC: trace: add event to snd_soc_dapm trace events
+
+        Add the event value to the snd_soc_dapm_start and snd_soc_dapm_done trace
+        events to make them more informative.
+
+        Trace before:
+
+                   aplay-229   [000]   250.140309: snd_soc_dapm_start:   card=vscn-2046
+                   aplay-229   [000]   250.167531: snd_soc_dapm_done:    card=vscn-2046
+                   aplay-229   [000]   251.169588: snd_soc_dapm_start:   card=vscn-2046
+                   aplay-229   [000]   251.195245: snd_soc_dapm_done:    card=vscn-2046
+
+        Trace after:
+
+                   aplay-214   [000]   693.290612: snd_soc_dapm_start:   card=vscn-2046 event=1
+                   aplay-214   [000]   693.315508: snd_soc_dapm_done:    card=vscn-2046 event=1
+                   aplay-214   [000]   694.537349: snd_soc_dapm_start:   card=vscn-2046 event=2
+                   aplay-214   [000]   694.563241: snd_soc_dapm_done:    card=vscn-2046 event=2
+
+Upstream-Status: Backport [88c4e0fe Fix: ASoC snd_doc_dapm on linux 6.9-rc1]
+
+Change-Id: If0d33544b8dd1dfb3d12ca9390892190fc0444b0
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/asoc.h | 33 +++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/include/instrumentation/events/asoc.h b/include/instrumentation/events/asoc.h
+index 21d13a0f..5126d4c1 100644
+--- a/include/instrumentation/events/asoc.h
++++ b/include/instrumentation/events/asoc.h
+@@ -51,6 +51,38 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_card, snd_soc_bias_level_done,
+ 
+ )
+ 
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
++
++	TP_PROTO(struct snd_soc_card *card, int event),
++
++	TP_ARGS(card, event),
++
++	TP_FIELDS(
++		ctf_string(name, card->name)
++		ctf_integer(int, event, event)
++	)
++)
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_start,
++
++	asoc_snd_soc_dapm_start,
++
++	TP_PROTO(struct snd_soc_card *card, int event),
++
++	TP_ARGS(card, event)
++
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_done,
++
++	asoc_snd_soc_dapm_done,
++
++	TP_PROTO(struct snd_soc_card *card, int event),
++
++	TP_ARGS(card, event)
++
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
+ 
+ 	TP_PROTO(struct snd_soc_card *card),
+@@ -81,6 +113,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_basic, snd_soc_dapm_done,
+ 	TP_ARGS(card)
+ 
+ )
++#endif
+ 
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_widget,
+ 
+-- 
+2.39.2
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch
deleted file mode 100644
index a0d932c..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 9e59c2f6387aeb832ae3af3095f987529722e08f Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 11:10:37 -0500
-Subject: [PATCH 1/5] Fix: sched_stat_runtime changed in linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit 5fe6ec8f6ab549b6422e41551abb51802bd48bc7
-    Author: Peter Zijlstra <peterz@infradead.org>
-    Date:   Mon Nov 6 13:41:43 2023 +0100
-
-        sched: Remove vruntime from trace_sched_stat_runtime()
-
-        Tracing the runtime delta makes sense, observer can sum over time.
-        Tracing the absolute vruntime makes less sense, inconsistent:
-        absolute-vs-delta, but also vruntime delta can be computed from
-        runtime delta.
-
-        Removing the vruntime thing also makes the two tracepoint sites
-        identical, allowing to unify the code in a later patch.
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I24ebb4e06dbb646a1af75ac62b74f3821ff197de
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/sched.h | 19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
-diff --git a/include/instrumentation/events/sched.h b/include/instrumentation/events/sched.h
-index 066a0f8..24cf37c 100644
---- a/include/instrumentation/events/sched.h
-+++ b/include/instrumentation/events/sched.h
-@@ -646,6 +646,24 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_stat_template, sched_stat_blocked,
- 	     TP_ARGS(tsk, delay))
- #endif
- 
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+/*
-+ * Tracepoint for accounting runtime (time the task is executing
-+ * on a CPU).
-+ */
-+LTTNG_TRACEPOINT_EVENT(sched_stat_runtime,
-+
-+	TP_PROTO(struct task_struct *tsk, u64 runtime),
-+
-+	TP_ARGS(tsk, runtime),
-+
-+	TP_FIELDS(
-+		ctf_array_text(char, comm, tsk->comm, TASK_COMM_LEN)
-+		ctf_integer(pid_t, tid, tsk->pid)
-+		ctf_integer(u64, runtime, runtime)
-+	)
-+)
-+#else
- /*
-  * Tracepoint for accounting runtime (time the task is executing
-  * on a CPU).
-@@ -663,6 +681,7 @@ LTTNG_TRACEPOINT_EVENT(sched_stat_runtime,
- 		ctf_integer(u64, vruntime, vruntime)
- 	)
- )
-+#endif
- 
- #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0) || \
- 	LTTNG_RT_KERNEL_RANGE(4,9,27,18, 4,10,0,0) || \
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch
new file mode 100644
index 0000000..6ea10ff
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch
@@ -0,0 +1,132 @@
+From d8379ec6365a925db33cae94fb6783cdbdb6a922 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 09:40:29 -0400
+Subject: [PATCH 2/4] Fix: ASoC add component to set_bias_level events in linux
+ 6.9-rc1
+
+See upstream commit:
+
+    commit 6ef46a69ec32fe1cf56de67742fcd01af4bf48af
+    Author: Luca Ceresoli <luca.ceresoli@bootlin.com>
+    Date:   Wed Mar 6 10:30:00 2024 +0100
+
+        ASoC: trace: add component to set_bias_level trace events
+
+        The snd_soc_bias_level_start and snd_soc_bias_level_done trace events
+        currently look like:
+
+                   aplay-229   [000]  1250.140778: snd_soc_bias_level_start: card=vscn-2046 val=1
+                   aplay-229   [000]  1250.140784: snd_soc_bias_level_done: card=vscn-2046 val=1
+                   aplay-229   [000]  1250.140786: snd_soc_bias_level_start: card=vscn-2046 val=2
+                   aplay-229   [000]  1250.140788: snd_soc_bias_level_done: card=vscn-2046 val=2
+            kworker/u8:1-21    [000]  1250.140871: snd_soc_bias_level_start: card=vscn-2046 val=1
+            kworker/u8:0-11    [000]  1250.140951: snd_soc_bias_level_start: card=vscn-2046 val=1
+            kworker/u8:0-11    [000]  1250.140956: snd_soc_bias_level_done: card=vscn-2046 val=1
+            kworker/u8:0-11    [000]  1250.140959: snd_soc_bias_level_start: card=vscn-2046 val=2
+            kworker/u8:0-11    [000]  1250.140961: snd_soc_bias_level_done: card=vscn-2046 val=2
+            kworker/u8:1-21    [000]  1250.167219: snd_soc_bias_level_done: card=vscn-2046 val=1
+            kworker/u8:1-21    [000]  1250.167222: snd_soc_bias_level_start: card=vscn-2046 val=2
+            kworker/u8:1-21    [000]  1250.167232: snd_soc_bias_level_done: card=vscn-2046 val=2
+            kworker/u8:0-11    [000]  1250.167440: snd_soc_bias_level_start: card=vscn-2046 val=3
+            kworker/u8:0-11    [000]  1250.167444: snd_soc_bias_level_done: card=vscn-2046 val=3
+            kworker/u8:1-21    [000]  1250.167497: snd_soc_bias_level_start: card=vscn-2046 val=3
+            kworker/u8:1-21    [000]  1250.167506: snd_soc_bias_level_done: card=vscn-2046 val=3
+
+        There are clearly multiple calls, one per component, but they cannot be
+        discriminated from each other.
+
+        Change the ftrace events to also print the component name, to make it clear
+        which part of the code is involved. This requires changing the passed value
+        from a struct snd_soc_card, where the DAPM context is not kwown, to a
+        struct snd_soc_dapm_context where it is obviously known but the a card
+        pointer is also available.
+
+        With this change, the resulting trace becomes:
+
+                   aplay-247   [000]  1436.357332: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=1
+                   aplay-247   [000]  1436.357338: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=1
+                   aplay-247   [000]  1436.357340: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=2
+                   aplay-247   [000]  1436.357343: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=2
+            kworker/u8:4-215   [000]  1436.357437: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=1
+            kworker/u8:5-231   [000]  1436.357518: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=1
+            kworker/u8:5-231   [000]  1436.357523: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=1
+            kworker/u8:5-231   [000]  1436.357526: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=2
+            kworker/u8:5-231   [000]  1436.357528: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=2
+            kworker/u8:4-215   [000]  1436.383217: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=1
+            kworker/u8:4-215   [000]  1436.383221: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=2
+            kworker/u8:4-215   [000]  1436.383231: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=2
+            kworker/u8:5-231   [000]  1436.383468: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=3
+            kworker/u8:5-231   [000]  1436.383472: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=3
+            kworker/u8:4-215   [000]  1436.383503: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=3
+            kworker/u8:4-215   [000]  1436.383513: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=3
+
+Upstream-Status: Backport [303434ab Fix: ASoC add component to set_bias_level events in linux 6.9-rc1]
+
+Change-Id: I959f1680c002acdf29828b968d3975247f5433d8
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/asoc.h | 36 +++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+Index: lttng-modules-2.13.12/include/instrumentation/events/asoc.h
+===================================================================
+--- lttng-modules-2.13.12.orig/include/instrumentation/events/asoc.h
++++ lttng-modules-2.13.12/include/instrumentation/events/asoc.h
+@@ -10,6 +10,7 @@
+ #include <lttng/kernel-version.h>
+ 
+ #define DAPM_DIRECT "(direct)"
++#define DAPM_COMPONENT_NONE "(none)"
+ 
+ #ifndef _TRACE_ASOC_DEF
+ #define _TRACE_ASOC_DEF
+@@ -119,6 +120,40 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc
+ )
+ #endif
+ 
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_context,
++
++	TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
++
++	TP_ARGS(dapm, val),
++
++	TP_FIELDS(
++		ctf_string(name, dapm->card->name)
++		ctf_string(component, dapm->component ? dapm->component->name : DAPM_COMPONENT_NONE)
++		ctf_integer(int, val, val)
++	)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_start,
++
++	asoc_snd_soc_bias_level_start,
++
++	TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
++
++	TP_ARGS(dapm, val)
++
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_done,
++
++	asoc_snd_soc_bias_level_done,
++
++	TP_PROTO(struct snd_soc_dapm_context *dapm, int val),
++
++	TP_ARGS(dapm, val)
++
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card,
+ 
+ 	TP_PROTO(struct snd_soc_card *card, int val),
+@@ -150,6 +185,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc
+ 	TP_ARGS(card, val)
+ 
+ )
++#endif
+ 
+ #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
+ LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic,
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch
deleted file mode 100644
index 5a4294d..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From d52ab4b9a71a4bef535dadb8e7062112ac5c0c88 Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 11:33:39 -0500
-Subject: [PATCH 2/5] Fix: timer_start changed in linux 6.8.0-rc1
-
-See upstream commit
-
-    commit dbcdcb62b59db2cf6a24113873b90da15c6f0b19
-    Author: Anna-Maria Behnsen <anna-maria@linutronix.de>
-    Date:   Fri Dec 1 10:26:26 2023 +0100
-
-        tracing/timers: Enhance timer_start tracepoint
-
-        For starting a timer, the timer is enqueued into a bucket of the timer
-        wheel. The bucket expiry is the defacto expiry of the timer but it is not
-        equal the timer expiry because of increasing granularity when bucket is in
-        a higher level of the wheel. To be able to figure out in a trace whether a
-        timer expired in time or not, the bucket expiry time is required as well.
-
-        Add bucket expiry time to the timer_start tracepoint and thereby simplify
-        the arguments.
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I4868092765745b1efd0c48f13c0b837f2007dcb6
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/timer.h | 24 +++++++++++++-----------
- 1 file changed, 13 insertions(+), 11 deletions(-)
-
-diff --git a/include/instrumentation/events/timer.h b/include/instrumentation/events/timer.h
-index 91a2cd9..ce571f5 100644
---- a/include/instrumentation/events/timer.h
-+++ b/include/instrumentation/events/timer.h
-@@ -45,8 +45,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init,
- 	TP_ARGS(timer)
- )
- 
--#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0) || \
--	LTTNG_RHEL_KERNEL_RANGE(3,10,0,957,0,0, 3,11,0,0,0,0))
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
- /**
-  * timer_start - called when the timer is started
-  * @timer:	pointer to struct timer_list
-@@ -55,39 +54,42 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init,
-  */
- LTTNG_TRACEPOINT_EVENT(timer_start,
- 
--	TP_PROTO(struct timer_list *timer, unsigned long expires,
--		unsigned int flags),
-+	TP_PROTO(struct timer_list *timer, unsigned long bucket_expiry),
- 
--	TP_ARGS(timer, expires, flags),
-+	TP_ARGS(timer, bucket_expiry),
- 
- 	TP_FIELDS(
- 		ctf_integer_hex(void *, timer, timer)
- 		ctf_integer_hex(void *, function, timer->function)
--		ctf_integer(unsigned long, expires, expires)
-+		ctf_integer(unsigned long, expires, timer->expires)
-+		ctf_integer(unsigned long, bucket_expiry, bucket_expiry)
- 		ctf_integer(unsigned long, now, jiffies)
--		ctf_integer(unsigned int, flags, flags)
-+		ctf_integer(unsigned int, flags, timer->flags)
- 	)
- )
--#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
-+#else
- /**
-  * timer_start - called when the timer is started
-  * @timer:	pointer to struct timer_list
-  * @expires:	the timers expiry time
-+ * @flags:	the timers expiry time
-  */
- LTTNG_TRACEPOINT_EVENT(timer_start,
- 
--	TP_PROTO(struct timer_list *timer, unsigned long expires),
-+	TP_PROTO(struct timer_list *timer, unsigned long expires,
-+		unsigned int flags),
- 
--	TP_ARGS(timer, expires),
-+	TP_ARGS(timer, expires, flags),
- 
- 	TP_FIELDS(
- 		ctf_integer_hex(void *, timer, timer)
- 		ctf_integer_hex(void *, function, timer->function)
- 		ctf_integer(unsigned long, expires, expires)
- 		ctf_integer(unsigned long, now, jiffies)
-+		ctf_integer(unsigned int, flags, flags)
- 	)
- )
--#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,2,0)) */
-+#endif
- 
- #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0) || \
- 	LTTNG_RHEL_KERNEL_RANGE(4,18,0,193,0,0, 4,19,0,0,0,0))
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch
new file mode 100644
index 0000000..66c48eb
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch
@@ -0,0 +1,81 @@
+From f4a6415f8d5fa447868d1fdc7119e0a328966379 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 10:30:32 -0400
+Subject: [PATCH 3/4] Fix: mm_compaction_migratepages changed in linux 6.9-rc1
+
+See upstream commit:
+
+    commit ab755bf4249b992fc2140d615ab0a686d50765b4
+    Author: Baolin Wang <baolin.wang@linux.alibaba.com>
+    Date:   Tue Feb 20 14:16:31 2024 +0800
+
+        mm: compaction: update the cc->nr_migratepages when allocating or freeing the freepages
+
+        Currently we will use 'cc->nr_freepages >= cc->nr_migratepages' comparison
+        to ensure that enough freepages are isolated in isolate_freepages(),
+        however it just decreases the cc->nr_freepages without updating
+        cc->nr_migratepages in compaction_alloc(), which will waste more CPU
+        cycles and cause too many freepages to be isolated.
+
+        So we should also update the cc->nr_migratepages when allocating or
+        freeing the freepages to avoid isolating excess freepages.  And I can see
+        fewer free pages are scanned and isolated when running thpcompact on my
+        Arm64 server:
+
+                                               k6.7         k6.7_patched
+        Ops Compaction pages isolated      120692036.00   118160797.00
+        Ops Compaction migrate scanned     131210329.00   154093268.00
+        Ops Compaction free scanned       1090587971.00  1080632536.00
+        Ops Compact scan efficiency               12.03          14.26
+
+        Moreover, I did not see an obvious latency improvements, this is likely
+        because isolating freepages is not the bottleneck in the thpcompact test
+        case.
+
+                                      k6.7                  k6.7_patched
+        Amean     fault-both-1      1089.76 (   0.00%)     1080.16 *   0.88%*
+        Amean     fault-both-3      1616.48 (   0.00%)     1636.65 *  -1.25%*
+        Amean     fault-both-5      2266.66 (   0.00%)     2219.20 *   2.09%*
+        Amean     fault-both-7      2909.84 (   0.00%)     2801.90 *   3.71%*
+        Amean     fault-both-12     4861.26 (   0.00%)     4733.25 *   2.63%*
+        Amean     fault-both-18     7351.11 (   0.00%)     6950.51 *   5.45%*
+        Amean     fault-both-24     9059.30 (   0.00%)     9159.99 *  -1.11%*
+        Amean     fault-both-30    10685.68 (   0.00%)    11399.02 *  -6.68%*
+
+Upstream-Status: Backport [175fe77c Fix: mm_compaction_migratepages changed in linux 6.9-rc1]
+
+Change-Id: I103a43fd1b549360b3fc978fd409b7c17ef3e192
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/compaction.h | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+Index: lttng-modules-2.13.12/include/instrumentation/events/compaction.h
+===================================================================
+--- lttng-modules-2.13.12.orig/include/instrumentation/events/compaction.h
++++ lttng-modules-2.13.12/include/instrumentation/events/compaction.h
+@@ -97,7 +97,22 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(comp
+ 
+ #endif /* #else #if LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,0,0) */
+ 
+-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,18,0) || \
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
++
++	compaction_migratepages,
++
++	TP_PROTO(unsigned int nr_migratepages,
++		unsigned int nr_succeeded),
++
++	TP_ARGS(nr_migratepages, nr_succeeded),
++
++	TP_FIELDS(
++		ctf_integer(unsigned long, nr_migrated, nr_succeeded)
++		ctf_integer(unsigned long, nr_failed, nr_migratepages - nr_succeeded)
++	)
++)
++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,18,0) || \
+     LTTNG_RHEL_KERNEL_RANGE(5,14,0,163,0,0, 5,15,0,0,0,0))
+ LTTNG_TRACEPOINT_EVENT_MAP(mm_compaction_migratepages,
+ 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch
deleted file mode 100644
index 4ad9adc..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 7432f583674294b676577b6505b89fc74dc5c7ab Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 11:47:40 -0500
-Subject: [PATCH 3/5] Fix: strlcopy removed in linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit d26270061ae66b915138af7cd73ca6f8b85e6b44
-    Author: Kees Cook <keescook@chromium.org>
-    Date:   Thu Jan 18 12:31:55 2024 -0800
-
-        string: Remove strlcpy()
-
-        With all the users of strlcpy() removed[1] from the kernel, remove the
-        API, self-tests, and other references. Leave mentions in Documentation
-        (about its deprecation), and in checkpatch.pl (to help migrate host-only
-        tools/ usage). Long live strscpy().
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I27cdff70a504b25340cc59150ed8e959d9629e43
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- src/lib/ringbuffer/ring_buffer_backend.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/lib/ringbuffer/ring_buffer_backend.c b/src/lib/ringbuffer/ring_buffer_backend.c
-index 9a339be..2181145 100644
---- a/src/lib/ringbuffer/ring_buffer_backend.c
-+++ b/src/lib/ringbuffer/ring_buffer_backend.c
-@@ -405,7 +405,11 @@ int channel_backend_init(struct channel_backend *chanb,
- 	chanb->extra_reader_sb =
- 			(config->mode == RING_BUFFER_OVERWRITE) ? 1 : 0;
- 	chanb->num_subbuf = num_subbuf;
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+	strscpy(chanb->name, name, NAME_MAX);
-+#else
- 	strlcpy(chanb->name, name, NAME_MAX);
-+#endif
- 	memcpy(&chanb->config, config, sizeof(chanb->config));
- 
- 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch
deleted file mode 100644
index c9b1af3..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From c8198382fe1cede3e16aae9978642a113a217e4c Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 12:17:33 -0500
-Subject: [PATCH 4/5] Fix: btrfs_chunk tracepoints changed in linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit 7dc66abb5a47778d7db327783a0ba172b8cff0b5
-    Author: Filipe Manana <fdmanana@suse.com>
-    Date:   Tue Nov 21 13:38:38 2023 +0000
-
-        btrfs: use a dedicated data structure for chunk maps
-
-        Currently we abuse the extent_map structure for two purposes:
-
-        1) To actually represent extents for inodes;
-        2) To represent chunk mappings.
-
-        This is odd and has several disadvantages:
-
-        1) To create a chunk map, we need to do two memory allocations: one for
-           an extent_map structure and another one for a map_lookup structure, so
-           more potential for an allocation failure and more complicated code to
-           manage and link two structures;
-
-        2) For a chunk map we actually only use 3 fields (24 bytes) of the
-           respective extent map structure: the 'start' field to have the logical
-           start address of the chunk, the 'len' field to have the chunk's size,
-           and the 'orig_block_len' field to contain the chunk's stripe size.
-
-           Besides wasting a memory, it's also odd and not intuitive at all to
-           have the stripe size in a field named 'orig_block_len'.
-
-           We are also using 'block_len' of the extent_map structure to contain
-           the chunk size, so we have 2 fields for the same value, 'len' and
-           'block_len', which is pointless;
-
-        3) When an extent map is associated to a chunk mapping, we set the bit
-           EXTENT_FLAG_FS_MAPPING on its flags and then make its member named
-           'map_lookup' point to the associated map_lookup structure. This means
-           that for an extent map associated to an inode extent, we are not using
-           this 'map_lookup' pointer, so wasting 8 bytes (on a 64 bits platform);
-
-        4) Extent maps associated to a chunk mapping are never merged or split so
-           it's pointless to use the existing extent map infrastructure.
-
-        So add a dedicated data structure named 'btrfs_chunk_map' to represent
-        chunk mappings, this is basically the existing map_lookup structure with
-        some extra fields:
-
-        1) 'start' to contain the chunk logical address;
-        2) 'chunk_len' to contain the chunk's length;
-        3) 'stripe_size' for the stripe size;
-        4) 'rb_node' for insertion into a rb tree;
-        5) 'refs' for reference counting.
-
-        This way we do a single memory allocation for chunk mappings and we don't
-        waste memory for them with unused/unnecessary fields from an extent_map.
-
-        We also save 8 bytes from the extent_map structure by removing the
-        'map_lookup' pointer, so the size of struct extent_map is reduced from
-        144 bytes down to 136 bytes, and we can now have 30 extents map per 4K
-        page instead of 28.
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: Ie52b5ac83df4bc6abeb84d958c4f5d24ae0d8c75
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/btrfs.h | 37 +++++++++++++++++++++++++-
- 1 file changed, 36 insertions(+), 1 deletion(-)
-
-diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h
-index 7c7b9b0..a2a412b 100644
---- a/include/instrumentation/events/btrfs.h
-+++ b/include/instrumentation/events/btrfs.h
-@@ -1609,7 +1609,42 @@ LTTNG_TRACEPOINT_EVENT(btrfs_delayed_ref_head,
- )
- #endif
- 
--#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+
-+LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
-+
-+	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_chunk_map *map,
-+		 u64 offset, u64 size),
-+
-+	TP_ARGS(fs_info, map, offset, size),
-+
-+	TP_FIELDS(
-+		ctf_integer(int, num_stripes, map->num_stripes)
-+		ctf_integer(u64, type, map->type)
-+		ctf_integer(int, sub_stripes, map->sub_stripes)
-+		ctf_integer(u64, offset, offset)
-+		ctf_integer(u64, size, size)
-+		ctf_integer(u64, root_objectid, fs_info->chunk_root->root_key.objectid)
-+	)
-+)
-+
-+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_alloc,
-+
-+	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_chunk_map *map,
-+		 u64 offset, u64 size),
-+
-+	TP_ARGS(fs_info, map, offset, size)
-+)
-+
-+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_free,
-+
-+	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_chunk_map *map,
-+		 u64 offset, u64 size),
-+
-+	TP_ARGS(fs_info, map, offset, size)
-+)
-+
-+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
- 
- LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
- 
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch
new file mode 100644
index 0000000..59ef4f9
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch
@@ -0,0 +1,57 @@
+From 217bc2e4685050dddce9bdd2557b64f6b8c16622 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 25 Mar 2024 10:53:46 -0400
+Subject: [PATCH 4/4] Fix: dev_base_lock removed in linux 6.9-rc1
+
+See upstream commit:
+
+    commit 1b3ef46cb7f2618cc0b507393220a69810f6da12
+    Author: Eric Dumazet <edumazet@google.com>
+    Date:   Tue Feb 13 06:32:45 2024 +0000
+
+        net: remove dev_base_lock
+
+        dev_base_lock is not needed anymore, all remaining users also hold RTNL.
+
+Upstream-Status: Backport [52eb2ee9 Fix: dev_base_lock removed in linux 6.9-rc1]
+
+Change-Id: I6b07e6eed07fd398302ca14d23162ed24d74df15
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ src/lttng-statedump-impl.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+Index: lttng-modules-2.13.12/src/lttng-statedump-impl.c
+===================================================================
+--- lttng-modules-2.13.12.orig/src/lttng-statedump-impl.c
++++ lttng-modules-2.13.12/src/lttng-statedump-impl.c
+@@ -392,6 +392,20 @@ void lttng_enumerate_device(struct lttng
+ 	}
+ }
+ 
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0))
++static
++int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
++{
++	struct net_device *dev;
++
++	rtnl_lock();
++	for_each_netdev(&init_net, dev)
++		lttng_enumerate_device(session, dev);
++	rtnl_unlock();
++
++	return 0;
++}
++#else
+ static
+ int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
+ {
+@@ -404,6 +418,7 @@ int lttng_enumerate_network_ip_interface
+ 
+ 	return 0;
+ }
++#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0)) */
+ #else /* CONFIG_INET */
+ static inline
+ int lttng_enumerate_network_ip_interface(struct lttng_kernel_session *session)
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch
deleted file mode 100644
index 65c33da..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 86db094386b43bb5c6b47552f9a4826ca8ba917d Mon Sep 17 00:00:00 2001
-From: Kienan Stewart <kstewart@efficios.com>
-Date: Mon, 22 Jan 2024 13:13:36 -0500
-Subject: [PATCH 5/5] Fix: btrfs_get_extent flags and compress_type changed in
- linux 6.8.0-rc1
-
-See upstream commit:
-
-    commit f86f7a75e2fb5fd7d31d00eab8a392f97ba42ce9
-    Author: Filipe Manana <fdmanana@suse.com>
-    Date:   Mon Dec 4 16:20:33 2023 +0000
-
-        btrfs: use the flags of an extent map to identify the compression type
-
-        Currently, in struct extent_map, we use an unsigned int (32 bits) to
-        identify the compression type of an extent and an unsigned long (64 bits
-        on a 64 bits platform, 32 bits otherwise) for flags. We are only using
-        6 different flags, so an unsigned long is excessive and we can use flags
-        to identify the compression type instead of using a dedicated 32 bits
-        field.
-
-        We can easily have tens or hundreds of thousands (or more) of extent maps
-        on busy and large filesystems, specially with compression enabled or many
-        or large files with tons of small extents. So it's convenient to have the
-        extent_map structure as small as possible in order to use less memory.
-
-        So remove the compression type field from struct extent_map, use flags
-        to identify the compression type and shorten the flags field from an
-        unsigned long to a u32. This saves 8 bytes (on 64 bits platforms) and
-        reduces the size of the structure from 136 bytes down to 128 bytes, using
-        now only two cache lines, and increases the number of extent maps we can
-        have per 4K page from 30 to 32. By using a u32 for the flags instead of
-        an unsigned long, we no longer use test_bit(), set_bit() and clear_bit(),
-        but that level of atomicity is not needed as most flags are never cleared
-        once set (before adding an extent map to the tree), and the ones that can
-        be cleared or set after an extent map is added to the tree, are always
-        performed while holding the write lock on the extent map tree, while the
-        reader holds a lock on the tree or tests for a flag that never changes
-        once the extent map is in the tree (such as compression flags).
-
-Upstream-Status: Backport [Uhttps://review.lttng.org/c/lttng-modules/+/11700]
-
-Change-Id: I95402d43f064c016b423b48652e4968d3db9b8a9
-Signed-off-by: Kienan Stewart <kstewart@efficios.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- include/instrumentation/events/btrfs.h | 25 ++++++++++++++++++++++++-
- 1 file changed, 24 insertions(+), 1 deletion(-)
-
-diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h
-index a2a412b..ffb1b64 100644
---- a/include/instrumentation/events/btrfs.h
-+++ b/include/instrumentation/events/btrfs.h
-@@ -177,7 +177,30 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__inode, btrfs_inode_evict,
- )
- #endif
- 
--#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0))
-+
-+LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
-+
-+	TP_PROTO(const struct btrfs_root *root, const struct btrfs_inode *inode,
-+		const struct extent_map *map),
-+
-+	TP_ARGS(root, inode, map),
-+
-+	TP_FIELDS(
-+		ctf_integer(u64, root_objectid, root->root_key.objectid)
-+		ctf_integer(u64, ino, btrfs_ino(inode))
-+		ctf_integer(u64, start, map->start)
-+		ctf_integer(u64, len, map->len)
-+		ctf_integer(u64, orig_start, map->orig_start)
-+		ctf_integer(u64, block_start, map->block_start)
-+		ctf_integer(u64, block_len, map->block_len)
-+		ctf_integer(unsigned int, flags, map->flags)
-+		ctf_integer(int, refs, refcount_read(&map->refs))
-+		ctf_integer(unsigned int, compress_type, extent_map_compression(map))
-+	)
-+)
-+
-+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,14,0))
- 
- LTTNG_TRACEPOINT_EVENT(btrfs_get_extent,
- 
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.11.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.12.bb
similarity index 75%
rename from poky/meta/recipes-kernel/lttng/lttng-modules_2.13.11.bb
rename to poky/meta/recipes-kernel/lttng/lttng-modules_2.13.12.bb
index b6bae73..95d5e2d 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.11.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.12.bb
@@ -10,17 +10,16 @@
 include lttng-platforms.inc
 
 SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
-           file://0001-Fix-sched_stat_runtime-changed-in-linux-6.8.0-rc1.patch \
-           file://0002-Fix-timer_start-changed-in-linux-6.8.0-rc1.patch \
-           file://0003-Fix-strlcopy-removed-in-linux-6.8.0-rc1.patch \
-           file://0004-Fix-btrfs_chunk-tracepoints-changed-in-linux-6.8.0-r.patch \
-           file://0005-Fix-btrfs_get_extent-flags-and-compress_type-changed.patch \
+           file://0001-Fix-ASoC-snd_doc_dapm-on-linux-6.9-rc1.patch \
+           file://0002-Fix-ASoC-add-component-to-set_bias_level-events-in-l.patch \
+           file://0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch \
+           file://0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch \
         "
 
 # Use :append here so that the patch is applied also when using devupstream
 SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"
 
-SRC_URI[sha256sum] = "297211d6fda459c85793c1f498c90fad2939cda7939d503f3ec5eaaf5fbec3c7"
+SRC_URI[sha256sum] = "d85fcb66c7bd31003ab8735e8c77700e5e4f417b4c22fe1f20112cf435abad79"
 
 export INSTALL_MOD_DIR="kernel/lttng-modules"
 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch
new file mode 100644
index 0000000..3286dfb
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch
@@ -0,0 +1,56 @@
+From 6b45c5f80d20e7bbf3d98c1fa17d2cf8716af3bb Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Mon, 25 Mar 2024 18:20:14 +0800
+Subject: [PATCH] Fix: rotation-destroy-flush: fix session daemon abort if no
+ kernel module present
+
+Testing rotation-destroy-flush when no lttng kernel modules present, it would
+be failed with error message:
+
+  Error: Unable to load required module lttng-ring-buffer-client-discard
+  not ok 1 - Start session daemon
+  Failed test 'Start session daemon'
+  not ok 2 - Create session rotation_destroy_flush in -o /tmp/tmp.test_rot ...
+  ...
+
+This because test script that sets the LTTNG_ABORT_ON_ERROR environment
+variable. It's this environment variable that causes the sessiond to handle the
+kernel module loading failure as an abort rather than a warning.
+
+Using "check_skip_kernel_test" to detect whether the kernel module fails to
+load is expected or not. If the failure is expected, the script won't set that
+environment variable any more.
+
+Fixes: 3a174400
+("tests:add check_skip_kernel_test to check root user and lttng kernel modules")
+
+Upstream-Status: Submitted [https://review.lttng.org/c/lttng-tools/+/12155]
+
+Change-Id: I371e9ba717613e2940186f710cf3cccd35baed6c
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ .../ust/rotation-destroy-flush/test_rotation_destroy_flush  | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
+index 669bcbc43..64161768f 100755
+--- a/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
++++ b/tests/regression/ust/rotation-destroy-flush/test_rotation_destroy_flush
+@@ -23,11 +23,11 @@ SIZE_LIMIT=$PAGE_SIZE
+ NR_ITER=10
+ NUM_TESTS=$((15*$NR_ITER))
+ 
+-# Ensure the daemons invoke abort on error.
+-export LTTNG_ABORT_ON_ERROR=1
+-
+ source $TESTDIR/utils/utils.sh
+ 
++# Ensure the daemons invoke abort on error.
++check_skip_kernel_test || export LTTNG_ABORT_ON_ERROR=1
++
+ # MUST set TESTDIR before calling those functions
+ function run_app()
+ {
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch
new file mode 100644
index 0000000..2671a19
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch
@@ -0,0 +1,1246 @@
+From cf558f802b259a33605fe0ede4d74ae2ff6be699 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Mon, 12 Feb 2024 09:23:54 -0500
+Subject: [PATCH] tests: add check_skip_kernel_test to check root user and
+ lttng kernel modules
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The current tests will run both userspace and kernel testing. Some of
+use cases only use lttng for one kind of tracing on an embedded
+device (e.g. userspace), so in this scenario, the kernel modules might
+not install to target rootfs, the test cases would be fail and exit.
+
+Add LTTNG_TOOLS_DISABLE_KERNEL_TESTS to skip the lttng kernel features
+test, this flag can be set via "make":
+
+  make check LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1
+
+When this flag was set, all kernel related testcases would be marked as
+SKIP in result.
+
+Since the the LTTNG_TOOLS_DISABLE_KERNEL_TESTS was checked in function
+check_skip_kernel_test, lots of testcases also need to check root
+permission, so merging the root permission checking into
+check_skip_kernel_test.
+
+Upstream-Status: Backport from
+[https://git.lttng.org/?p=lttng-tools.git;a=commit;h=3a1744008331a0604479d3d7461f77056fad3a64]
+
+Change-Id: I49a1f642a9869c21a69e0186c296fd917bd7b525
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
+---
+ tests/destructive/metadata-regeneration       |  8 +----
+ tests/perf/test_perf_raw.in                   |  8 +----
+ tests/regression/kernel/test_all_events       |  8 +----
+ tests/regression/kernel/test_callstack        |  8 +----
+ tests/regression/kernel/test_channel          |  8 +----
+ tests/regression/kernel/test_clock_override   |  8 +----
+ tests/regression/kernel/test_event_basic      |  8 +----
+ tests/regression/kernel/test_kernel_function  |  8 +----
+ tests/regression/kernel/test_lttng_logger     |  8 +----
+ tests/regression/kernel/test_ns_contexts      |  8 +----
+ .../regression/kernel/test_ns_contexts_change |  9 +----
+ .../kernel/test_rotation_destroy_flush        |  8 +----
+ .../regression/kernel/test_select_poll_epoll  |  8 +----
+ tests/regression/kernel/test_syscall          |  8 +----
+ tests/regression/kernel/test_userspace_probe  |  8 +----
+ tests/regression/tools/clear/test_kernel      |  8 +----
+ .../tools/filtering/test_invalid_filter       |  8 +----
+ .../tools/filtering/test_unsupported_op       |  8 +----
+ .../tools/filtering/test_valid_filter         |  8 +----
+ tests/regression/tools/health/test_health.sh  | 10 ++----
+ tests/regression/tools/health/test_thread_ok  |  9 +----
+ tests/regression/tools/live/test_kernel       | 10 +++---
+ tests/regression/tools/live/test_lttng_kernel |  8 +----
+ tests/regression/tools/metadata/test_kernel   |  8 +----
+ .../test_notification_kernel_buffer_usage     | 36 +++++++++----------
+ .../test_notification_kernel_capture          | 23 ++++++------
+ .../test_notification_kernel_error            | 23 ++++++------
+ .../test_notification_kernel_instrumentation  | 23 ++++++------
+ .../test_notification_kernel_syscall          | 19 +++++-----
+ .../test_notification_kernel_userspace_probe  | 20 +++++------
+ .../notification/test_notification_multi_app  | 14 +++-----
+ ...test_notification_notifier_discarded_count |  9 +++--
+ .../tools/regen-metadata/test_kernel          |  8 +----
+ .../tools/regen-statedump/test_kernel         |  8 +----
+ tests/regression/tools/rotation/test_kernel   |  8 +----
+ tests/regression/tools/snapshots/test_kernel  |  8 +----
+ .../tools/snapshots/test_kernel_streaming     |  8 +----
+ .../streaming/test_high_throughput_limits     |  8 +----
+ tests/regression/tools/streaming/test_kernel  |  8 +----
+ .../tools/tracker/test_event_tracker          |  8 +----
+ .../tools/trigger/test_add_trigger_cli        | 12 ++-----
+ .../tools/trigger/test_list_triggers_cli      | 26 +++++---------
+ .../tools/wildcard/test_event_wildcard        |  8 +----
+ .../test_relayd_working_directory             |  4 +--
+ .../ust/namespaces/test_ns_contexts_change    |  7 +---
+ tests/regression/ust/test_event_perf          |  8 +----
+ tests/utils/utils.sh                          | 35 ++++++++++++++++++
+ 47 files changed, 166 insertions(+), 363 deletions(-)
+
+diff --git a/tests/destructive/metadata-regeneration b/tests/destructive/metadata-regeneration
+index b81e7af32..36b130d17 100755
+--- a/tests/destructive/metadata-regeneration
++++ b/tests/destructive/metadata-regeneration
+@@ -185,19 +185,13 @@ function test_ust_streaming ()
+ 	rm -f ${file_sync_before_last}
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ if ! destructive_tests_enabled ; then
+ 	echo 'You need to set the LTTNG_ENABLE_DESTRUCTIVE_TESTS to "will-break-my-system" as argument to run this test'
+ 	echo 'Moreover, please make sure that ntp is not running while executing this test'
+ 	exit 0
+ fi
+ 
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test $NUM_TESTS "Skipping all tests." ||
+ {
+ 	start_lttng_relayd "-o $TRACE_PATH"
+ 	start_lttng_sessiond
+diff --git a/tests/perf/test_perf_raw.in b/tests/perf/test_perf_raw.in
+index f293ccd71..d35529a87 100644
+--- a/tests/perf/test_perf_raw.in
++++ b/tests/perf/test_perf_raw.in
+@@ -137,12 +137,6 @@ function test_kernel_raw()
+ 	rm -rf $TRACE_PATH
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ # MUST set TESTDIR before calling those functions
+ plan_tests $NUM_TESTS
+ 
+@@ -154,7 +148,7 @@ have_libpfm
+ 
+ test_ust_raw
+ 
+-skip $isroot "Root access is needed for kernel testing, skipping." 9 ||
++check_skip_kernel_test 9 ||
+ {
+ 	modprobe lttng-test
+ 	test_kernel_raw
+diff --git a/tests/regression/kernel/test_all_events b/tests/regression/kernel/test_all_events
+index 2e20888df..044f9b65f 100755
+--- a/tests/regression/kernel/test_all_events
++++ b/tests/regression/kernel/test_all_events
+@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_callstack b/tests/regression/kernel/test_callstack
+index a4477fd7c..d8d6b5e0f 100755
+--- a/tests/regression/kernel/test_callstack
++++ b/tests/regression/kernel/test_callstack
+@@ -134,13 +134,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_channel b/tests/regression/kernel/test_channel
+index 9cc74c4e8..4c377bd2a 100755
+--- a/tests/regression/kernel/test_channel
++++ b/tests/regression/kernel/test_channel
+@@ -47,13 +47,7 @@ function test_channel_buffer_too_large()
+ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	start_lttng_sessiond
+ 
+diff --git a/tests/regression/kernel/test_clock_override b/tests/regression/kernel/test_clock_override
+index 72892898b..48a3f926a 100755
+--- a/tests/regression/kernel/test_clock_override
++++ b/tests/regression/kernel/test_clock_override
+@@ -172,13 +172,7 @@ TESTS=(
+ TEST_COUNT=${#TESTS[@]}
+ i=0
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	trap signal_cleanup SIGTERM SIGINT
+diff --git a/tests/regression/kernel/test_event_basic b/tests/regression/kernel/test_event_basic
+index ac9ec0549..387e2f733 100755
+--- a/tests/regression/kernel/test_event_basic
++++ b/tests/regression/kernel/test_event_basic
+@@ -73,13 +73,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test $NUM_TESTS "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_kernel_function b/tests/regression/kernel/test_kernel_function
+index b1d5491fc..ea16cdeef 100755
+--- a/tests/regression/kernel/test_kernel_function
++++ b/tests/regression/kernel/test_kernel_function
+@@ -43,13 +43,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	start_lttng_sessiond_notap
+ 	validate_lttng_modules_present
+diff --git a/tests/regression/kernel/test_lttng_logger b/tests/regression/kernel/test_lttng_logger
+index b8f7ded82..00eaae823 100755
+--- a/tests/regression/kernel/test_lttng_logger
++++ b/tests/regression/kernel/test_lttng_logger
+@@ -110,13 +110,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_ns_contexts b/tests/regression/kernel/test_ns_contexts
+index 0c8718d78..59e2568f6 100755
+--- a/tests/regression/kernel/test_ns_contexts
++++ b/tests/regression/kernel/test_ns_contexts
+@@ -108,13 +108,7 @@ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+ 
+-isroot=0
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0
+-
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0
+ 
+ system_has_ns=0
+ if [ -d "/proc/$$/ns" ]; then
+diff --git a/tests/regression/kernel/test_ns_contexts_change b/tests/regression/kernel/test_ns_contexts_change
+index 42a61276b..3f5e4eeab 100755
+--- a/tests/regression/kernel/test_ns_contexts_change
++++ b/tests/regression/kernel/test_ns_contexts_change
+@@ -162,14 +162,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-
+-isroot=0
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0
+-
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0
+ 
+ system_has_ns=0
+ if [ -d "/proc/$$/ns" ]; then
+diff --git a/tests/regression/kernel/test_rotation_destroy_flush b/tests/regression/kernel/test_rotation_destroy_flush
+index cb773d7df..0af514b49 100755
+--- a/tests/regression/kernel/test_rotation_destroy_flush
++++ b/tests/regression/kernel/test_rotation_destroy_flush
+@@ -120,13 +120,7 @@ TESTS=(
+ TEST_COUNT=${#TESTS[@]}
+ i=0
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	trap signal_cleanup SIGTERM SIGINT
+diff --git a/tests/regression/kernel/test_select_poll_epoll b/tests/regression/kernel/test_select_poll_epoll
+index d8245a0e7..20f0ef0ae 100755
+--- a/tests/regression/kernel/test_select_poll_epoll
++++ b/tests/regression/kernel/test_select_poll_epoll
+@@ -374,13 +374,7 @@ if test $? != 0; then
+ 	exit 0
+ fi
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/kernel/test_syscall b/tests/regression/kernel/test_syscall
+index 401a18a8d..219d94703 100755
+--- a/tests/regression/kernel/test_syscall
++++ b/tests/regression/kernel/test_syscall
+@@ -664,13 +664,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/kernel/test_userspace_probe b/tests/regression/kernel/test_userspace_probe
+index 1091ee65e..5d984d666 100755
+--- a/tests/regression/kernel/test_userspace_probe
++++ b/tests/regression/kernel/test_userspace_probe
+@@ -815,13 +815,7 @@ fi
+ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/tools/clear/test_kernel b/tests/regression/tools/clear/test_kernel
+index 06fb1c368..48250a742 100755
+--- a/tests/regression/tools/clear/test_kernel
++++ b/tests/regression/tools/clear/test_kernel
+@@ -536,12 +536,6 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ streaming_tests=(test_kernel_streaming
+ 	test_kernel_streaming_rotate_clear
+ 	test_kernel_streaming_clear_rotate
+@@ -563,7 +557,7 @@ snapshot_tests=(test_kernel_streaming_snapshot
+ 	test_kernel_local_snapshot
+ )
+ 
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel streaming tests." ||
+ {
+ 	trap signal_cleanup SIGTERM SIGINT
+ 
+diff --git a/tests/regression/tools/filtering/test_invalid_filter b/tests/regression/tools/filtering/test_invalid_filter
+index 7d9e524d9..8435e5546 100755
+--- a/tests/regression/tools/filtering/test_invalid_filter
++++ b/tests/regression/tools/filtering/test_invalid_filter
+@@ -168,13 +168,7 @@ done
+ 
+ test_bytecode_limit -u
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel invalid filter tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel invalid filter tests." ||
+ {
+ 	diag "Test kernel filters"
+ 	i=0
+diff --git a/tests/regression/tools/filtering/test_unsupported_op b/tests/regression/tools/filtering/test_unsupported_op
+index 299247a3c..91eb86d21 100755
+--- a/tests/regression/tools/filtering/test_unsupported_op
++++ b/tests/regression/tools/filtering/test_unsupported_op
+@@ -103,13 +103,7 @@ while [ "$i" -lt "$OP_COUNT" ]; do
+ 	let "i++"
+ done
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel unsupported filter operations tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test $NUM_KERNEL_TESTS "Skipping kernel unsupported filter operations tests." ||
+ {
+ 	diag "Test kernel unsupported filter operations"
+ 
+diff --git a/tests/regression/tools/filtering/test_valid_filter b/tests/regression/tools/filtering/test_valid_filter
+index e76ffa25f..1ba7c79bb 100755
+--- a/tests/regression/tools/filtering/test_valid_filter
++++ b/tests/regression/tools/filtering/test_valid_filter
+@@ -1452,13 +1452,7 @@ KERNEL_FILTERS=(
+ 
+ IFS=$OLDIFS
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel valid filter tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel valid filter tests." ||
+ {
+ 	diag "Test kernel valid filters"
+ 
+diff --git a/tests/regression/tools/health/test_health.sh b/tests/regression/tools/health/test_health.sh
+index b3d6419d2..68716e6b9 100644
+--- a/tests/regression/tools/health/test_health.sh
++++ b/tests/regression/tools/health/test_health.sh
+@@ -82,7 +82,7 @@ function test_health
+ 		diag "With UST consumer daemons"
+ 		enable_ust_lttng_event_ok $SESSION_NAME $UST_EVENT_NAME $CHANNEL_NAME
+ 
+-		skip $isroot "Root access is needed. Skipping kernel consumer health check test." "1" ||
++		check_skip_kernel_test "1" "Skipping kernel consumer health check test." ||
+ 		{
+ 			diag "With kernel consumer daemon"
+ 			lttng_enable_kernel_event $SESSION_NAME $KERNEL_EVENT_NAME $CHANNEL_NAME
+@@ -113,7 +113,7 @@ function test_health
+ 
+ 
+ 	if [ ${test_needs_root} -eq 1 ]; then
+-		skip ${isroot} "Root access needed for test \"${test_thread_name}\"." "1" ||
++		check_skip_kernel_test "1" "Skipping \"${test_thread_name}\"." ||
+ 		{
+ 			report_errors "${test_thread_error_string}" "${test_relayd}"
+ 		}
+@@ -276,12 +276,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_health_stderr_path.XXXXXX)
+ TRACE_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX)
+ HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_health_trace_path.XXXXXX)
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ THREAD_COUNT=${#THREAD[@]}
+ i=0
+ while [ "$i" -lt "$THREAD_COUNT" ]; do
+diff --git a/tests/regression/tools/health/test_thread_ok b/tests/regression/tools/health/test_thread_ok
+index e84adb611..e5e23543f 100755
+--- a/tests/regression/tools/health/test_thread_ok
++++ b/tests/regression/tools/health/test_thread_ok
+@@ -67,7 +67,7 @@ function test_thread_ok
+ 	$CURDIR/$HEALTH_CHECK_BIN > ${STDOUT_PATH} 2> ${STDERR_PATH}
+ 	report_errors
+ 
+-	skip $isroot "Root access is needed. Skipping kernel consumer health check test." "5" ||
++	check_skip_kernel_test "5" "Skipping kernel consumer health check test." ||
+ 	{
+ 		diag "With kernel consumer daemon"
+ 		create_lttng_session_no_output $SESSION_NAME
+@@ -115,13 +115,6 @@ STDERR_PATH=$(mktemp --tmpdir tmp.test_thread_ok_stderr_path.XXXXXX)
+ TRACE_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX)
+ HEALTH_PATH=$(mktemp --tmpdir -d tmp.test_thread_ok_trace_path.XXXXXX)
+ 
+-# The manage kernel thread is only spawned if we are root
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+ test_thread_ok
+ 
+ rm -rf ${HEALTH_PATH}
+diff --git a/tests/regression/tools/live/test_kernel b/tests/regression/tools/live/test_kernel
+index b622b5214..fdaa09f0d 100755
+--- a/tests/regression/tools/live/test_kernel
++++ b/tests/regression/tools/live/test_kernel
+@@ -39,13 +39,11 @@ function clean_live_tracing()
+ 	rm -rf $TRACE_PATH
+ }
+ 
+-# Need root access for kernel tracing.
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	plan_skip_all "Root access is needed. Skipping all tests."
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
+ 	exit 0
+-fi
++}
+ 
+ modprobe lttng-test
+ 
+diff --git a/tests/regression/tools/live/test_lttng_kernel b/tests/regression/tools/live/test_lttng_kernel
+index a23d9373a..1b933648f 100755
+--- a/tests/regression/tools/live/test_lttng_kernel
++++ b/tests/regression/tools/live/test_lttng_kernel
+@@ -45,13 +45,7 @@ function clean_live_tracing()
+ }
+ 
+ # Need root access for kernel tracing.
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	modprobe lttng-test
+ 
+diff --git a/tests/regression/tools/metadata/test_kernel b/tests/regression/tools/metadata/test_kernel
+index 57cace6ea..26e95d93a 100755
+--- a/tests/regression/tools/metadata/test_kernel
++++ b/tests/regression/tools/metadata/test_kernel
+@@ -91,13 +91,7 @@ plan_tests $NUM_TESTS
+ print_test_banner "$TEST_DESC"
+ 
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel metadata tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping kernel metadata tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	modprobe lttng-test
+diff --git a/tests/regression/tools/notification/test_notification_kernel_buffer_usage b/tests/regression/tools/notification/test_notification_kernel_buffer_usage
+index 76e69a77e..8fdaabb3e 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_buffer_usage
++++ b/tests/regression/tools/notification/test_notification_kernel_buffer_usage
+@@ -60,29 +60,27 @@ function test_buffer_usage_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-
+-	validate_lttng_modules_present
+-
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	rm -rf "$TEST_TMPDIR"
++	exit 0
++}
+ 
+-	modprobe lttng-test
++validate_lttng_modules_present
+ 
+-	# Used on sessiond launch.
+-	LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \
+-		CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \
+-		LD_PRELOAD=${TESTPOINT}"
+-	start_lttng_sessiond_notap
++modprobe lttng-test
+ 
+-	test_buffer_usage_notification
++# Used on sessiond launch.
++LTTNG_SESSIOND_ENV_VARS="LTTNG_TESTPOINT_ENABLE=1 \
++	CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \
++	LD_PRELOAD=${TESTPOINT}"
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++test_buffer_usage_notification
+ 
+-	rm -rf "${consumerd_pipe[@]}" 2> /dev/null
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
++rm -rf "${consumerd_pipe[@]}" 2> /dev/null
+ rm -rf "$TEST_TMPDIR"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_capture b/tests/regression/tools/notification/test_notification_kernel_capture
+index 88f123d3d..0f8a2bc6f 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_capture
++++ b/tests/regression/tools/notification/test_notification_kernel_capture
+@@ -31,22 +31,21 @@ function test_basic_error_path
+ }
+ 
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-	modprobe lttng-test
++validate_lttng_modules_present
+ 
+-	start_lttng_sessiond_notap
++modprobe lttng-test
+ 
+-	test_basic_error_path
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++test_basic_error_path
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_error b/tests/regression/tools/notification/test_notification_kernel_error
+index 80fe6e5b5..b757ec2b4 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_error
++++ b/tests/regression/tools/notification/test_notification_kernel_error
+@@ -30,23 +30,22 @@ function test_basic_error_path
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++validate_lttng_modules_present
+ 
+-	modprobe lttng-test
++modprobe lttng-test
+ 
+-	start_lttng_sessiond_notap
++start_lttng_sessiond_notap
+ 
+-	test_basic_error_path
++test_basic_error_path
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_instrumentation b/tests/regression/tools/notification/test_notification_kernel_instrumentation
+index 90545a541..705f7703d 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_instrumentation
++++ b/tests/regression/tools/notification/test_notification_kernel_instrumentation
+@@ -28,22 +28,21 @@ function test_kernel_instrumentation_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-	modprobe lttng-test
++validate_lttng_modules_present
+ 
+-	start_lttng_sessiond_notap
++modprobe lttng-test
+ 
+-	test_kernel_instrumentation_notification
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
+-	rmmod lttng-test
++test_kernel_instrumentation_notification
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
++rmmod lttng-test
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_syscall b/tests/regression/tools/notification/test_notification_kernel_syscall
+index d273cb55d..7fa235388 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_syscall
++++ b/tests/regression/tools/notification/test_notification_kernel_syscall
+@@ -31,19 +31,18 @@ function test_kernel_syscall_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
+ 
+-	start_lttng_sessiond_notap
++validate_lttng_modules_present
+ 
+-	test_kernel_syscall_notification
++start_lttng_sessiond_notap
+ 
+-	stop_lttng_sessiond_notap
++test_kernel_syscall_notification
+ 
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_kernel_userspace_probe b/tests/regression/tools/notification/test_notification_kernel_userspace_probe
+index 8ef8d708d..abddd9be7 100755
+--- a/tests/regression/tools/notification/test_notification_kernel_userspace_probe
++++ b/tests/regression/tools/notification/test_notification_kernel_userspace_probe
+@@ -29,18 +29,18 @@ function test_kernel_userspace_probe_notification
+ 	wait $APP_PID 2> /dev/null
+ }
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	validate_lttng_modules_present
++check_skip_kernel_test &&
++{
++	plan_skip_all "Skipping all tests."
++	exit 0
++}
++
++validate_lttng_modules_present
+ 
+-	start_lttng_sessiond_notap
++start_lttng_sessiond_notap
+ 
+-	test_kernel_userspace_probe_notification
++test_kernel_userspace_probe_notification
+ 
+-	stop_lttng_sessiond_notap
+-else
+-	# Kernel tests are skipped.
+-	plan_tests $NUM_TESTS
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $NUM_TESTS
+-fi
++stop_lttng_sessiond_notap
+ 
+ rm -f "$TESTAPP_STATE_PATH"
+diff --git a/tests/regression/tools/notification/test_notification_multi_app b/tests/regression/tools/notification/test_notification_multi_app
+index d8b639225..61891b56f 100755
+--- a/tests/regression/tools/notification/test_notification_multi_app
++++ b/tests/regression/tools/notification/test_notification_multi_app
+@@ -411,22 +411,18 @@ function test_on_register_evaluation ()
+ 	rm -rf "$output_dir"
+ }
+ 
+-
+ TESTS=(
+ 	test_multi_app_ust
+ 	test_on_register_evaluation_ust
+ )
+ 
+-if [ "$(id -u)" == "0" ]; then
++check_skip_kernel_test "$NUM_TEST_KERNEL" "Skipping kernel multi-app notification tests." || {
+ 	validate_lttng_modules_present
+ 	TESTS+=(
+-	test_multi_app_kernel
+-	test_on_register_evaluation_kernel
+-)
+-else
+-        skip 0 "Root access is needed. Skipping all kernel multi-app notification tests." $NUM_TEST_KERNEL
+-fi
+-
++		test_multi_app_kernel
++		test_on_register_evaluation_kernel
++	)
++}
+ 
+ for fct_test in ${TESTS[@]};
+ do
+diff --git a/tests/regression/tools/notification/test_notification_notifier_discarded_count b/tests/regression/tools/notification/test_notification_notifier_discarded_count
+index c9235393e..a6c31a728 100755
+--- a/tests/regression/tools/notification/test_notification_notifier_discarded_count
++++ b/tests/regression/tools/notification/test_notification_notifier_discarded_count
+@@ -391,7 +391,8 @@ function test_ust_notifier_discarded_regardless_trigger_owner
+ test_ust_notifier_discarded_count
+ test_ust_notifier_discarded_count_max_bucket
+ 
+-if [ "$(id -u)" == "0" ]; then
++check_skip_kernel_test "$KERNEL_NUM_TESTS" "Skipping kernel notification tests." ||
++{
+ 
+ 	validate_lttng_modules_present
+ 
+@@ -413,9 +414,7 @@ if [ "$(id -u)" == "0" ]; then
+ 	modprobe --remove lttng-test
+ 
+ 	rm -rf "${sessiond_pipe[@]}" 2> /dev/null
+-else
+-	# Kernel tests are skipped.
+-	skip 0 "Root access is needed. Skipping all kernel notification tests." $KERNEL_NUM_TESTS
+-fi
++
++}
+ 
+ rm -rf "$TEST_TMPDIR"
+diff --git a/tests/regression/tools/regen-metadata/test_kernel b/tests/regression/tools/regen-metadata/test_kernel
+index 49eea32a7..555a4e2ce 100755
+--- a/tests/regression/tools/regen-metadata/test_kernel
++++ b/tests/regression/tools/regen-metadata/test_kernel
+@@ -99,13 +99,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/regen-statedump/test_kernel b/tests/regression/tools/regen-statedump/test_kernel
+index 8a261355d..bbbac3942 100755
+--- a/tests/regression/tools/regen-statedump/test_kernel
++++ b/tests/regression/tools/regen-statedump/test_kernel
+@@ -39,13 +39,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 	start_lttng_sessiond
+diff --git a/tests/regression/tools/rotation/test_kernel b/tests/regression/tools/rotation/test_kernel
+index f5f1f5553..efe3fd359 100755
+--- a/tests/regression/tools/rotation/test_kernel
++++ b/tests/regression/tools/rotation/test_kernel
+@@ -82,13 +82,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/snapshots/test_kernel b/tests/regression/tools/snapshots/test_kernel
+index abb243563..d91876867 100755
+--- a/tests/regression/tools/snapshots/test_kernel
++++ b/tests/regression/tools/snapshots/test_kernel
+@@ -217,13 +217,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel snapshot tests" $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 
+ 	validate_lttng_modules_present
+diff --git a/tests/regression/tools/snapshots/test_kernel_streaming b/tests/regression/tools/snapshots/test_kernel_streaming
+index 0c92dc710..dd965afee 100755
+--- a/tests/regression/tools/snapshots/test_kernel_streaming
++++ b/tests/regression/tools/snapshots/test_kernel_streaming
+@@ -145,13 +145,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests" $NUM_TESTS ||
++check_skip_kernel_test $NUM_TESTS "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits
+index 2b9e3ad39..c55d51098 100755
+--- a/tests/regression/tools/streaming/test_high_throughput_limits
++++ b/tests/regression/tools/streaming/test_high_throughput_limits
+@@ -170,13 +170,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed to set bandwith limits. Skipping all tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 
+ 	# Catch sigint and try to cleanup limits
+diff --git a/tests/regression/tools/streaming/test_kernel b/tests/regression/tools/streaming/test_kernel
+index 33334229f..113eea7bf 100755
+--- a/tests/regression/tools/streaming/test_kernel
++++ b/tests/regression/tools/streaming/test_kernel
+@@ -47,13 +47,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS ||
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." ||
+ {
+ 	validate_lttng_modules_present
+ 
+diff --git a/tests/regression/tools/tracker/test_event_tracker b/tests/regression/tools/tracker/test_event_tracker
+index cc0f698d2..de0c79d36 100755
+--- a/tests/regression/tools/tracker/test_event_tracker
++++ b/tests/regression/tools/tracker/test_event_tracker
+@@ -466,13 +466,7 @@ test_event_track_untrack ust 0 "${EVENT_NAME}" "--pid --all"	# backward compat
+ test_event_tracker ust 1 "${EVENT_NAME}" "--pid --all"	# backward compat
+ test_event_pid_tracker ust 1 "${EVENT_NAME}"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel tracker tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel tracker tests." ||
+ {
+ 	diag "Test kernel tracker"
+ 
+diff --git a/tests/regression/tools/trigger/test_add_trigger_cli b/tests/regression/tools/trigger/test_add_trigger_cli
+index 98ecf6272..d1763aa2e 100755
+--- a/tests/regression/tools/trigger/test_add_trigger_cli
++++ b/tests/regression/tools/trigger/test_add_trigger_cli
+@@ -34,12 +34,6 @@ tmp_stdout=$(mktemp --tmpdir -t test_parse_cli_trigger_stdout.XXXXXX)
+ tmp_stderr=$(mktemp --tmpdir -t test_parse_cli_trigger_stderr.XXXXXX)
+ uprobe_elf_binary="${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	ist_root=1
+-else
+-	ist_root=0
+-fi
+-
+ function test_success ()
+ {
+ 	local test_name="$1"
+@@ -223,7 +217,7 @@ test_success "--exclude-name two" "trigger5" \
+ 	--condition event-rule-matches --type=user --name='jean-*' --exclude-name jean-chretien -x jean-charest \
+ 	--action notify
+ 
+-skip $ist_root "non-root user: skipping kprobe tests" 18 || {
++check_skip_kernel_test 18 "Skipping kprobe tests." || {
+ 	i=0
+ 
+ 	for type in kprobe kernel:kprobe; do
+@@ -262,7 +256,7 @@ skip $ist_root "non-root user: skipping kprobe tests" 18 || {
+ 	done
+ }
+ 
+-skip $ist_root "non-root user: skipping uprobe tests" 6 || {
++check_skip_kernel_test 6 "Skipping uprobe tests." || {
+ 	test_success "--condition event-rule-matches uprobe" "uprobe-trigger-0" \
+ 		--name="uprobe-trigger-0" \
+ 		--condition event-rule-matches --type=kernel:uprobe --location=${uprobe_elf_binary}:test_function --event-name=ma-probe \
+@@ -274,7 +268,7 @@ skip $ist_root "non-root user: skipping uprobe tests" 6 || {
+ 		--action notify
+ }
+ 
+-skip $ist_root "non-root user: skipping syscall tests" 30 || {
++check_skip_kernel_test 30 "Skipping syscall tests." || {
+ 	test_success "--condition event-rule-matches one syscall" "syscall-trigger-0" \
+ 		--name="syscall-trigger-0" \
+ 		--condition event-rule-matches --type=syscall --name=open \
+diff --git a/tests/regression/tools/trigger/test_list_triggers_cli b/tests/regression/tools/trigger/test_list_triggers_cli
+index a04018013..02c3de3e9 100755
+--- a/tests/regression/tools/trigger/test_list_triggers_cli
++++ b/tests/regression/tools/trigger/test_list_triggers_cli
+@@ -36,22 +36,12 @@ uprobe_sdt_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-sdt-binar
+ register_some_triggers_bin=$(realpath "${CURDIR}/utils/register-some-triggers")
+ 
+ uid=$(id --user)
+-gid=$(id --group)
+ 
+-if [ "$uid" == "0" ]; then
+-	ist_root=1
+-	ls "$uprobe_sdt_binary" >/dev/null 2>&1
+-	if test $? == 0; then
+-		hast_sdt_binary=1
+-	else
+-		hast_sdt_binary=0
+-	fi
+-else
+-	ist_root=0
+-	hast_sdt_binary=0
++sdt_binary_present=0
++if [ -f "$uprobe_sdt_binary" ]; then
++	sdt_binary_present=1
+ fi
+ 
+-
+ test_top_level_options ()
+ {
+ 	diag "Listing top level options"
+@@ -2695,10 +2685,12 @@ start_lttng_sessiond_notap
+ 
+ test_top_level_options
+ test_event_rule_matches_tracepoint
+-skip $ist_root "non-root user: skipping kprobe tests" 13 || test_event_rule_matches_probe
+-skip $ist_root "non-root user: skipping uprobe tests" 9 || test_event_rule_matches_userspace_probe_elf
+-skip $(($ist_root && $hast_sdt_binary)) "skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt
+-skip $ist_root "non-root user: skipping syscall tests" 17 || test_event_rule_matches_syscall
++check_skip_kernel_test 48 "Skipping kprobe, uprobe, SDT and syscall tests." || {
++	test_event_rule_matches_probe
++	test_event_rule_matches_userspace_probe_elf
++	skip $sdt_binary_present "No SDT binary. Skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt
++	test_event_rule_matches_syscall
++}
+ test_session_consumed_size_condition
+ test_buffer_usage_conditions
+ test_session_rotation_conditions
+diff --git a/tests/regression/tools/wildcard/test_event_wildcard b/tests/regression/tools/wildcard/test_event_wildcard
+index f69baffc4..14d9bb88a 100755
+--- a/tests/regression/tools/wildcard/test_event_wildcard
++++ b/tests/regression/tools/wildcard/test_event_wildcard
+@@ -124,13 +124,7 @@ test_event_wildcard ust 1 'tp*tptest'
+ test_event_wildcard ust 1 'tp**tptest'
+ test_event_wildcard ust 1 'tp*test'
+ 
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-else
+-	isroot=0
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all kernel wildcard tests." $NUM_KERNEL_TESTS ||
++check_skip_kernel_test "$NUM_KERNEL_TESTS" "Skipping kernel wildcard tests." ||
+ {
+ 	diag "Test kernel wildcards"
+ 
+diff --git a/tests/regression/tools/working-directory/test_relayd_working_directory b/tests/regression/tools/working-directory/test_relayd_working_directory
+index c7e784cca..6bd1e504a 100755
+--- a/tests/regression/tools/working-directory/test_relayd_working_directory
++++ b/tests/regression/tools/working-directory/test_relayd_working_directory
+@@ -145,9 +145,9 @@ function test_relayd_debug_permission()
+ 	diag "Test lttng-relayd change working directory on non writable directory"
+ 
+ 	if [ "$(id -u)" == "0" ]; then
+-	    is_user=0
++		is_user=0
+ 	else
+-	    is_user=1
++		is_user=1
+ 	fi
+ 
+ 	skip $is_user "Skipping permission debug output test; operation can't fail as root" 6 ||
+diff --git a/tests/regression/ust/namespaces/test_ns_contexts_change b/tests/regression/ust/namespaces/test_ns_contexts_change
+index 8a4b62ce3..622241f7b 100755
+--- a/tests/regression/ust/namespaces/test_ns_contexts_change
++++ b/tests/regression/ust/namespaces/test_ns_contexts_change
+@@ -101,12 +101,7 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-isroot=0
+-if [ "$(id -u)" == "0" ]; then
+-	isroot=1
+-fi
+-
+-skip $isroot "Root access is needed. Skipping all tests." "$NUM_TESTS" && exit 0
++check_skip_kernel_test "$NUM_TESTS" "Skipping all tests." && exit 0
+ 
+ system_has_ns=0
+ if [ -d "/proc/$$/ns" ]; then
+diff --git a/tests/regression/ust/test_event_perf b/tests/regression/ust/test_event_perf
+index 33aab2981..178959a19 100755
+--- a/tests/regression/ust/test_event_perf
++++ b/tests/regression/ust/test_event_perf
+@@ -119,17 +119,11 @@ plan_tests $NUM_TESTS
+ 
+ print_test_banner "$TEST_DESC"
+ 
+-if [ "$(id -u)" == "0" ]; then
+-        isroot=1
+-else
+-        isroot=0
+-fi
+-
+ start_lttng_sessiond
+ 
+ test_parsing_raw
+ 
+-skip $isroot "Root access is needed. Skipping UST perf tests." 8 ||
++check_skip_kernel_test 8 "Skipping UST perf tests." ||
+ {
+ 	test_event_basic
+ }
+diff --git a/tests/utils/utils.sh b/tests/utils/utils.sh
+index faa87e783..da0e0569d 100644
+--- a/tests/utils/utils.sh
++++ b/tests/utils/utils.sh
+@@ -318,6 +318,41 @@ function conf_proc_count()
+ 	echo
+ }
+ 
++# Usage:
++# check_skip_kernel_test [NB_TESTS] [SKIP_MESSAGE]
++# Return 0 if LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set or the current user is not a root user
++# If NB_TESTS is set, call skip() to skip number of tests.
++# If NB_TESTS is empty, just output a reason with diag.
++# An optional message can be added.
++
++function check_skip_kernel_test ()
++{
++	local num_tests="$1"
++	local skip_message="$2"
++
++	# Check for skip test kernel flag
++	if [ "$LTTNG_TOOLS_DISABLE_KERNEL_TESTS" == "1" ]; then
++		if ! test -z "$num_tests"; then
++			skip 0 "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}" "$num_tests"
++		else
++			diag "LTTNG_TOOLS_DISABLE_KERNEL_TESTS was set.${skip_message+ }${skip_message}"
++		fi
++		return 0
++	fi
++
++	# Check if we are running as root
++	if [ "$(id -u)" != "0" ]; then
++		if ! test -z "$num_tests"; then
++			skip 0 "Root access is needed for kernel testing.${skip_message+ }${skip_message}" "$num_tests"
++		else
++			diag "Root access is needed for kernel testing.${skip_message+ }${skip_message}"
++		fi
++		return 0
++	fi
++
++	return 1
++}
++
+ # Check if base lttng-modules are present.
+ # Bail out on failure
+ function validate_lttng_modules_present ()
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
index bf99322..39d93e2 100755
--- a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
@@ -1,8 +1,33 @@
 #!/bin/sh
 # Without --ignore-exit, the tap harness causes any FAILs within a
 # test plan to raise ERRORs; this is just noise.
+
+#Detecting whether current system has lttng kernel modules
+LTTNG_KMOD_PATH=/lib/modules/$(uname -r)/kernel/lttng-modules/lttng-tracer.ko
+function validate_lttng_modules_present()
+{
+	# Check for loadable modules.
+	if [ -f "$LTTNG_KMOD_PATH" ]; then
+		return 0
+	fi
+
+	# Check for builtin modules.
+	ls /proc/lttng > /dev/null 2>&1
+	if [ $? -eq 0 ]; then
+		return 0
+	fi
+
+	return 1
+}
+
 export LD_LIBRARY_PATH=FIXMEPTESTPATH/tests/utils/testapp/userspace-probe-elf-binary/.libs
 makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=FIXMEPTESTPATH top_builddir=FIXMEPTESTPATH"
+
+#If current system doesn't have lttng kernel modules, disable lttng kernel related tests.
+validate_lttng_modules_present || {
+	makeargs="$makeargs LTTNG_TOOLS_DISABLE_KERNEL_TESTS=1"
+}
+
 make -k -t all >error.log 2>&1
 # Can specify a test e.g.:
 # -C tests/regression/ check TESTS='kernel/test_callstack'
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
index 44415fb..f6abd9e 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.13.11.bb
@@ -37,6 +37,8 @@
            file://lttng-sessiond.service \
            file://disable-tests.patch \
            file://0001-compat-Define-off64_t-as-off_t-on-linux.patch \
+           file://0001-tests-add-check_skip_kernel_test-to-check-root-user-.patch \
+           file://0001-Fix-rotation-destroy-flush-fix-session-daemon-abort-.patch \
            "
 
 SRC_URI[sha256sum] = "ac5baeef9fa690936b1ca01ecd1742da762c2c08511ff1b4e923938d94d0f979"
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index 4f26813..6c4ee4a 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -230,14 +230,18 @@
     if [ -e "${S}/tools/perf/Makefile.perf" ]; then
         sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
             ${S}/tools/perf/Makefile.perf
+        # Variant with linux-yocto-specific patch
         sed -i -e "s,prefix='\$(DESTDIR_SQ)/usr'$,prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(PYTHON_SITEPACKAGES_DIR)' --root='\$(DESTDIR)',g" \
             ${S}/tools/perf/Makefile.perf
+        # Variant for mainline Linux
+        sed -i -e "s,root='/\$(DESTDIR_SQ)',prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(PYTHON_SITEPACKAGES_DIR)' --root='/\$(DESTDIR_SQ)',g" \
+            ${S}/tools/perf/Makefile.perf
         # backport https://github.com/torvalds/linux/commit/e4ffd066ff440a57097e9140fa9e16ceef905de8
         sed -i -e 's,\($(Q)$(SHELL) .$(arch_errno_tbl).\) $(CC) $(arch_errno_hdr_dir),\1 $(firstword $(CC)) $(arch_errno_hdr_dir),g' \
             ${S}/tools/perf/Makefile.perf
     fi
     sed -i -e "s,--root='/\$(DESTDIR_SQ)',--prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \
-        ${S}/tools/perf/Makefile*
+        ${S}/tools/perf/Makefile
 
     if [ -e "${S}/tools/build/Makefile.build" ]; then
         sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
@@ -382,7 +386,7 @@
 RDEPENDS:${PN}-archive =+ "bash"
 RDEPENDS:${PN}-python =+ "bash python3 python3-modules ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'audit-python', '', d)}"
 RDEPENDS:${PN}-perl =+ "bash perl perl-modules"
-RDEPENDS:${PN}-tests =+ "python3 bash"
+RDEPENDS:${PN}-tests =+ "python3 bash perl"
 
 RSUGGESTS:${PN} += "${PN}-archive ${PN}-tests \
                     ${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl', '', d)} \