diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb
similarity index 100%
rename from poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb
rename to poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb
similarity index 68%
rename from poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb
rename to poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb
index 6474599..b3b554c 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb
@@ -7,10 +7,8 @@
 # Header file provided by a separate package
 DEPENDS += "cryptodev-linux"
 
-SRC_URI += " \
-file://0001-Disable-installing-header-file-provided-by-another-p.patch \
-file://0001-Fix-build-for-Linux-5.8-rc1.patch \
-"
+SRC_URI += "file://0001-Disable-installing-header-file-provided-by-another-p.patch \
+           "
 
 EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
 
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb
similarity index 100%
rename from poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb
rename to poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev.inc b/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
index f99f8bc..c050eda 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -5,7 +5,7 @@
 
 SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux \
            "
-SRCREV = "a87053bee5680878c295b7d23cf0d7065576ac2b"
+SRCREV = "fabe5989a3dc9fba0cd0a40b612247cdde351c01"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch b/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch
deleted file mode 100644
index 02c721a..0000000
--- a/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 9e765068582aae3696520346a7500322ca6cc2de Mon Sep 17 00:00:00 2001
-From: Joan Bruguera <joanbrugueram@gmail.com>
-Date: Sat, 13 Jun 2020 19:46:44 +0200
-Subject: [PATCH] Fix build for Linux 5.8-rc1
-
-See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9740ca4e95b43b91a4a848694a20d01ba6818f7b
-          https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=da1c55f1b272f4bd54671d459b39ea7b54944ef9
-          https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d8ed45c5dcd455fc5848d47f86883a1b872ac0d0
-
-Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
-
-Upstream-Status: Backport [9e765068582aae3696520346a7500322ca6cc2de]
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- zc.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/zc.c b/zc.c
-index ae464ff..2c286bb 100644
---- a/zc.c
-+++ b/zc.c
-@@ -58,7 +58,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
- 		return 0;
- 	}
- 
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
- 	down_read(&mm->mmap_sem);
-+#else
-+	mmap_read_lock(mm);
-+#endif
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0))
- 	ret = get_user_pages(task, mm,
- 			(unsigned long)addr, pgcount, write, 0, pg, NULL);
-@@ -74,7 +78,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
- 			(unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
- 			pg, NULL, NULL);
- #endif
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
- 	up_read(&mm->mmap_sem);
-+#else
-+	mmap_read_unlock(mm);
-+#endif
- 	if (ret != pgcount)
- 		return -EINVAL;
- 
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
index a3ba091..31f4d00 100644
--- a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
+++ b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
@@ -66,3 +66,13 @@
  
  int bzImage64_probe(const char *buf, off_t len)
  {
+--- a/kexec/arch/ppc/kexec-elf-ppc.c
++++ b/kexec/arch/ppc/kexec-elf-ppc.c
+@@ -33,7 +33,6 @@
+ static const int probe_debug = 0;
+ 
+ unsigned char reuse_initrd;
+-const char *ramdisk;
+ int create_flatten_tree(struct kexec_info *, unsigned char **, unsigned long *,
+ 			char *);
+ 
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb
similarity index 98%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb
index bf25ff8..ffeb8e6 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb
@@ -126,7 +126,7 @@
                     file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
                     file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
                     file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
-                    file://WHENCE;md5=d373d30188c38dabffec0d3cc87abbfd \
+                    file://WHENCE;md5=4d229f79f8770b5b2c4aac655b9fabef \
                     "
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -198,7 +198,7 @@
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "962d3ae197d226c8259f9cc7746f7ef12a9d23787cd56bd27302021ba6339722"
+SRC_URI[sha256sum] = "76d05d5f1eff268d3b80675245fa596f557bd55ee2e16ddd54d18ffeae943887"
 
 inherit allarch
 
@@ -291,7 +291,7 @@
              ${PN}-netronome-license ${PN}-netronome \
              ${PN}-qat ${PN}-qat-license \
              ${PN}-qcom-license \
-             ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \
+             ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 ${PN}-qcom-venus-5.2 ${PN}-qcom-venus-5.4 \
              ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 ${PN}-qcom-adreno-a630 \
              ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
              ${PN}-whence-license \
@@ -860,6 +860,8 @@
 FILES_${PN}-qcom-license   = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt"
 FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*"
 FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*"
+FILES_${PN}-qcom-venus-5.2 = "${nonarch_base_libdir}/firmware/qcom/venus-5.2/*"
+FILES_${PN}-qcom-venus-5.4 = "${nonarch_base_libdir}/firmware/qcom/venus-5.4/*"
 FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw"
 FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*"
 FILES_${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
@@ -868,6 +870,8 @@
 FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn"
 RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-venus-5.2 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-venus-5.4 = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-adreno-a630 = "${PN}-qcom-license"
diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
index b1cb553..3bceac4 100644
--- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
+++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
@@ -16,7 +16,7 @@
 # and have a machine specific libc.
 #
 # But you have some kernel headers you need for some driver? That is fine
-# but get them from STAGING_KERNEL_DIR where the kernel installs itself.
+# but get them from STAGING_KERNEL_BUILDDIR where the kernel installs itself.
 # This will make the package using them machine specific but this is much
 # better than having a machine specific C library. This does mean your
 # recipe needs a
diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index a9c7be0..aa8e162 100644
--- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -261,6 +261,8 @@
     if [ -e "$kerneldir/build/include/config/auto.conf.cmd" ]; then
         sed -i 's/ifneq "$(CC)" ".*-linux-.*gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(LD)" ".*-linux-.*ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd"
+        sed -i 's/ifneq "$(HOSTCXX)" ".*$/ifneq "$(HOSTCXX)" "g++"/' "$kerneldir/build/include/config/auto.conf.cmd"
+        sed -i 's/ifneq "$(HOSTCC)" ".*$/ifneq "$(HOSTCC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(srctree)" ".*"/ifneq "$(srctree)" "."/' "$kerneldir/build/include/config/auto.conf.cmd"
         # we don't build against the defconfig, so make sure it isn't the trigger for syncconfig
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 175836e..c937173 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -30,7 +30,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 ?= "5.8-rc+"
+LINUX_VERSION ?= "5.9-rc+"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
index cfe3277..73876bb 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "22664d170488313b5c2713b6d9c8df6563387728"
-SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a"
+SRCREV_machine ?= "1d9e25c4f35155580cef313ff2a76de545124a1d"
+SRCREV_meta ?= "0d860e075788a92601dff3eb9b615ee41e465040"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.4.58"
+LINUX_VERSION ?= "5.4.65"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb
index e23e7dc..d29c598 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c"
+SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.8.1"
+LINUX_VERSION ?= "5.8.9"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
index b90b125..853fc93 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
@@ -6,7 +6,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.4.58"
+LINUX_VERSION ?= "5.4.65"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine_qemuarm ?= "d192ae0b9995a7be2a33b12005a95348ec6aae94"
-SRCREV_machine ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a"
+SRCREV_machine_qemuarm ?= "bb77791bc00cfa70211dd238d312b4db950c0808"
+SRCREV_machine ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_meta ?= "0d860e075788a92601dff3eb9b615ee41e465040"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb
index 36a8ae4..d32e5d3 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb
@@ -6,7 +6,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.8.1"
+LINUX_VERSION ?= "5.8.9"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine_qemuarm ?= "566e869df9400258b6f162bf34933f5b6dcd0115"
-SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c"
+SRCREV_machine_qemuarm ?= "830cb9af40e856615b7a435a4fac57b748ba56d6"
+SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
index f85e37d..fe93691 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
@@ -12,16 +12,16 @@
 KBRANCH_qemux86-64 ?= "v5.4/standard/base"
 KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
 
-SRCREV_machine_qemuarm ?= "7bbd138602fda3d69d74674460e73bffdec73cd2"
-SRCREV_machine_qemuarm64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemumips ?= "e43ed1586cd85a007b0fae3c63d6980d4f5cb336"
-SRCREV_machine_qemuppc ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemuriscv64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemux86 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemux86-64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemumips64 ?= "d1ff96887c64f70de00add62eb91d4c36f1b181a"
-SRCREV_machine ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a"
+SRCREV_machine_qemuarm ?= "894e63d3256613faa39931a6ae505cfd196df067"
+SRCREV_machine_qemuarm64 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemumips ?= "aa13fdb2c5f8c4e4e432bfee6df9c8f76ec8ac70"
+SRCREV_machine_qemuppc ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemuriscv64 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemux86 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemux86-64 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemumips64 ?= "4fb21d604fc54db63221ea28ab90622c29d74202"
+SRCREV_machine ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_meta ?= "0d860e075788a92601dff3eb9b615ee41e465040"
 
 # remap qemuarm to qemuarma15 for the 5.4 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.4.58"
+LINUX_VERSION ?= "5.4.65"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb
index aad6895..9ff1d5d 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb
@@ -12,16 +12,16 @@
 KBRANCH_qemux86-64 ?= "v5.8/standard/base"
 KBRANCH_qemumips64 ?= "v5.8/standard/mti-malta64"
 
-SRCREV_machine_qemuarm ?= "097417e785af04be0cbe757bc6e24456a3f701fd"
-SRCREV_machine_qemuarm64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemumips ?= "1fc5490bef8322680d73f6ab2c7b666eccc3bce1"
-SRCREV_machine_qemuppc ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemuriscv64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemux86 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemux86-64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemumips64 ?= "e61fc06792254eed92c6908a9b35790ed54b0ace"
-SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c"
+SRCREV_machine_qemuarm ?= "d351bf87c9c0e96a1f27f87f16d298bc4470e0b5"
+SRCREV_machine_qemuarm64 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemumips ?= "93d29a70890b19fb5482ebcab5f3a49301851daf"
+SRCREV_machine_qemuppc ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemuriscv64 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemux86 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemux86-64 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemumips64 ?= "4faa049b6b7b51c5d12d20c5e9fcf8e0a3ba8d42"
+SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff"
 
 # remap qemuarm to qemuarma15 for the 5.8 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.8.1"
+LINUX_VERSION ?= "5.8.9"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch
new file mode 100644
index 0000000..ae8bec4
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch
@@ -0,0 +1,54 @@
+From ff4d1d7e85be94ef43709cd698f0ec9a12f247d1 Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Thu, 13 Aug 2020 16:24:39 +0300
+Subject: [PATCH 01/10] Kconfig: fix dependency issue when building in-tree
+ without CONFIG_FTRACE
+
+When building in-tree, one could disable CONFIG_FTRACE from kernel
+config which will leave CONFIG_TRACEPOINTS selected by LTTNG modules,
+but generate a lot of linker errors like below because it leaves out
+other stuff, e.g.:
+
+trace.c:(.text+0xd86b): undefined reference to `trace_event_buffer_reserve'
+ld: trace.c:(.text+0xd8de): undefined reference to `trace_event_buffer_commit'
+ld: trace.c:(.text+0xd926): undefined reference to `event_triggers_call'
+ld: trace.c:(.text+0xd942): undefined reference to `trace_event_ignore_this_pid'
+ld: net/mac80211/trace.o: in function `trace_event_raw_event_drv_tdls_cancel_channel_switch':
+
+It appears to be caused by the fact that TRACE_EVENT macros in the Linux
+kernel depend on the Ftrace ring buffer as soon as CONFIG_TRACEPOINTS is
+enabled.
+
+Steps to reproduce:
+
+- Get a clone of an upstream stable kernel and use scripts/built-in.sh on it
+
+- Configure a standard x86-64 build, enable built-in LTTNG but disable
+  CONFIG_FTRACE from Kernel Hacking-->Tracers using menuconfig
+
+- Build will fail at linking stage
+
+Upstream-Status: Backport
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Kconfig b/Kconfig
+index acdab73..10eccff 100644
+--- a/Kconfig
++++ b/Kconfig
+@@ -2,7 +2,7 @@
+ 
+ config LTTNG
+ 	tristate "LTTng support"
+-	select TRACEPOINTS
++	select TRACING
+ 	help
+ 	  LTTng is an open source tracing framework for Linux.
+ 
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch
new file mode 100644
index 0000000..fab673b
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch
@@ -0,0 +1,41 @@
+From e10ab43dd0e425df5bc0ac763447664ed075ba05 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 10 Aug 2020 11:22:05 -0400
+Subject: [PATCH 02/10] fix: Move mmutrace.h into the mmu/ sub-directory (v5.9)
+
+  commit 33e3042dac6bcc33b80835f7d7b502b1d74c457c
+  Author: Sean Christopherson <sean.j.christopherson@intel.com>
+  Date:   Mon Jun 22 13:20:29 2020 -0700
+
+    KVM: x86/mmu: Move mmu_audit.c and mmutrace.h into the mmu/ sub-directory
+
+    Move mmu_audit.c and mmutrace.h under mmu/ where they belong.
+
+Upstream-Status: Backport
+
+Change-Id: I582525ccca34e1e3bd62870364108a7d3e9df2e4
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ probes/lttng-probe-kvm-x86-mmu.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/probes/lttng-probe-kvm-x86-mmu.c b/probes/lttng-probe-kvm-x86-mmu.c
+index 37384a2..5a7ef1e 100644
+--- a/probes/lttng-probe-kvm-x86-mmu.c
++++ b/probes/lttng-probe-kvm-x86-mmu.c
+@@ -24,7 +24,11 @@
+  */
+ #include <wrapper/tracepoint.h>
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#include <../../arch/x86/kvm/mmu/mmutrace.h>
++#else
+ #include <../../arch/x86/kvm/mmutrace.h>
++#endif
+ 
+ #undef TRACE_INCLUDE_PATH
+ #undef TRACE_INCLUDE_FILE
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch
new file mode 100644
index 0000000..524631c
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch
@@ -0,0 +1,39 @@
+From f16315cc45c4c6b880de541bb092ca18a13952b7 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 10 Aug 2020 11:36:03 -0400
+Subject: [PATCH 03/10] fix: KVM: x86/mmu: Make kvm_mmu_page definition and
+ accessor internal-only (v5.9)
+
+  commit 985ab2780164698ec6e7d73fad523d50449261dd
+  Author: Sean Christopherson <sean.j.christopherson@intel.com>
+  Date:   Mon Jun 22 13:20:32 2020 -0700
+
+    KVM: x86/mmu: Make kvm_mmu_page definition and accessor internal-only
+
+    Make 'struct kvm_mmu_page' MMU-only, nothing outside of the MMU should
+    be poking into the gory details of shadow pages.
+
+Upstream-Status: Backport
+
+Change-Id: Ia5c1b9c49c2b00dad1d5b17c50c3dc730dafda20
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ probes/lttng-probe-kvm-x86-mmu.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/probes/lttng-probe-kvm-x86-mmu.c b/probes/lttng-probe-kvm-x86-mmu.c
+index 5a7ef1e..8f98186 100644
+--- a/probes/lttng-probe-kvm-x86-mmu.c
++++ b/probes/lttng-probe-kvm-x86-mmu.c
+@@ -25,6 +25,7 @@
+ #include <wrapper/tracepoint.h>
+ 
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#include <../../arch/x86/kvm/mmu/mmu_internal.h>
+ #include <../../arch/x86/kvm/mmu/mmutrace.h>
+ #else
+ #include <../../arch/x86/kvm/mmutrace.h>
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch
new file mode 100644
index 0000000..e29c072
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch
@@ -0,0 +1,84 @@
+From 8fe742807e65af29dac3fea568ff93cbc5dd9a56 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 24 Aug 2020 15:26:04 -0400
+Subject: [PATCH 04/10] fix: ext4: limit the length of per-inode prealloc list
+ (v5.9)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+See upstream commit:
+
+  commit 27bc446e2def38db3244a6eb4bb1d6312936610a
+  Author: brookxu <brookxu.cn@gmail.com>
+  Date:   Mon Aug 17 15:36:15 2020 +0800
+
+    ext4: limit the length of per-inode prealloc list
+
+    In the scenario of writing sparse files, the per-inode prealloc list may
+    be very long, resulting in high overhead for ext4_mb_use_preallocated().
+    To circumvent this problem, we limit the maximum length of per-inode
+    prealloc list to 512 and allow users to modify it.
+
+    After patching, we observed that the sys ratio of cpu has dropped, and
+    the system throughput has increased significantly. We created a process
+    to write the sparse file, and the running time of the process on the
+    fixed kernel was significantly reduced, as follows:
+
+    Running time on unfixed kernel：
+    [root@TENCENT64 ~]# time taskset 0x01 ./sparse /data1/sparce.dat
+    real    0m2.051s
+    user    0m0.008s
+    sys     0m2.026s
+
+    Running time on fixed kernel：
+    [root@TENCENT64 ~]# time taskset 0x01 ./sparse /data1/sparce.dat
+    real    0m0.471s
+    user    0m0.004s
+    sys     0m0.395s
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I5169cb24853d4da32e2862a6626f1f058689b053
+---
+ instrumentation/events/lttng-module/ext4.h | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
+index 5f7ab28..72ad4c9 100644
+--- a/instrumentation/events/lttng-module/ext4.h
++++ b/instrumentation/events/lttng-module/ext4.h
+@@ -460,6 +460,20 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
+ )
+ #endif
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
++	TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
++
++	TP_ARGS(inode, len, needed),
++
++	TP_FIELDS(
++		ctf_integer(dev_t, dev, inode->i_sb->s_dev)
++		ctf_integer(ino_t, ino, inode->i_ino)
++		ctf_integer(unsigned int, len, len)
++		ctf_integer(unsigned int, needed, needed)
++	)
++)
++#else
+ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
+ 	TP_PROTO(struct inode *inode),
+ 
+@@ -470,6 +484,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
+ 		ctf_integer(ino_t, ino, inode->i_ino)
+ 	)
+ )
++#endif
+ 
+ LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
+ 	TP_PROTO(struct super_block *sb, int needed),
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch
new file mode 100644
index 0000000..f76e969
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch
@@ -0,0 +1,63 @@
+From 52563d02a9234215b62c5f519aa1b5d8589ccd0a Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 24 Aug 2020 15:37:50 -0400
+Subject: [PATCH 05/10] =?UTF-8?q?fix:=20ext4:=20indicate=20via=20a=20block?=
+ =?UTF-8?q?=20bitmap=20read=20is=20prefetched=E2=80=A6=20(v5.9)?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+See upstream commit:
+
+  commit ab74c7b23f3770935016e3eb3ecdf1e42b73efaa
+  Author: Theodore Ts'o <tytso@mit.edu>
+  Date:   Wed Jul 15 11:48:55 2020 -0400
+
+    ext4: indicate via a block bitmap read is prefetched via a tracepoint
+
+    Modify the ext4_read_block_bitmap_load tracepoint so that it tells us
+    whether a block bitmap is being prefetched.
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I0e5e2c5b8004223d0928235c092449ee16a940e1
+---
+ instrumentation/events/lttng-module/ext4.h | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
+index 72ad4c9..4476abb 100644
+--- a/instrumentation/events/lttng-module/ext4.h
++++ b/instrumentation/events/lttng-module/ext4.h
+@@ -893,12 +893,26 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
+ 	TP_ARGS(sb, group)
+ )
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++LTTNG_TRACEPOINT_EVENT(ext4_read_block_bitmap_load,
++	TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch),
++
++	TP_ARGS(sb, group, prefetch),
++
++	TP_FIELDS(
++		ctf_integer(dev_t, dev, sb->s_dev)
++		ctf_integer(__u32, group, group)
++		ctf_integer(bool, prefetch, prefetch)
++	)
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load,
+ 
+ 	TP_PROTO(struct super_block *sb, unsigned long group),
+ 
+ 	TP_ARGS(sb, group)
+ )
++#endif
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap,
+ 
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch
new file mode 100644
index 0000000..0970dd3
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch
@@ -0,0 +1,391 @@
+From 57ccbfa6a8a79c7b84394c2097efaf7935607aa5 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Tue, 25 Aug 2020 10:56:29 -0400
+Subject: [PATCH 06/10] fix: removal of [smp_]read_barrier_depends (v5.9)
+
+See upstream commits:
+
+  commit 76ebbe78f7390aee075a7f3768af197ded1bdfbb
+  Author: Will Deacon <will@kernel.org>
+  Date:   Tue Oct 24 11:22:47 2017 +0100
+
+    locking/barriers: Add implicit smp_read_barrier_depends() to READ_ONCE()
+
+    In preparation for the removal of lockless_dereference(), which is the
+    same as READ_ONCE() on all architectures other than Alpha, add an
+    implicit smp_read_barrier_depends() to READ_ONCE() so that it can be
+    used to head dependency chains on all architectures.
+
+  commit 76ebbe78f7390aee075a7f3768af197ded1bdfbb
+  Author: Will Deacon <will.deacon@arm.com>
+  Date:   Tue Oct 24 11:22:47 2017 +0100
+
+    locking/barriers: Add implicit smp_read_barrier_depends() to READ_ONCE()
+
+    In preparation for the removal of lockless_dereference(), which is the
+    same as READ_ONCE() on all architectures other than Alpha, add an
+    implicit smp_read_barrier_depends() to READ_ONCE() so that it can be
+    used to head dependency chains on all architectures.
+
+Upstream-Status: Backport
+
+Change-Id: Ife8880bd9378dca2972da8838f40fc35ccdfaaac
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ instrumentation/events/lttng-module/i2c.h |  4 ++--
+ lib/ringbuffer/backend.h                  |  2 +-
+ lib/ringbuffer/backend_internal.h         |  2 +-
+ lib/ringbuffer/frontend.h                 |  4 ++--
+ lib/ringbuffer/ring_buffer_frontend.c     |  4 ++--
+ lib/ringbuffer/ring_buffer_iterator.c     |  2 +-
+ lttng-events.c                            |  8 ++++----
+ probes/lttng-kprobes.c                    |  6 +++---
+ probes/lttng-kretprobes.c                 |  6 +++---
+ probes/lttng-tracepoint-event-impl.h      | 12 ++++++------
+ probes/lttng-uprobes.c                    |  6 +++---
+ wrapper/compiler.h                        | 18 ++++++++++++++++++
+ wrapper/trace-clock.h                     | 15 +++++----------
+ 13 files changed, 51 insertions(+), 38 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/i2c.h b/instrumentation/events/lttng-module/i2c.h
+index dcbabf6..131d134 100644
+--- a/instrumentation/events/lttng-module/i2c.h
++++ b/instrumentation/events/lttng-module/i2c.h
+@@ -23,7 +23,7 @@ LTTNG_TRACEPOINT_EVENT_CODE(i2c_write,
+ 
+ 	TP_code_pre(
+ 		tp_locvar->extract_sensitive_payload =
+-			READ_ONCE(extract_sensitive_payload);
++			LTTNG_READ_ONCE(extract_sensitive_payload);
+ 	),
+ 
+ 	TP_FIELDS(
+@@ -78,7 +78,7 @@ LTTNG_TRACEPOINT_EVENT_CODE(i2c_reply,
+ 
+ 	TP_code_pre(
+ 		tp_locvar->extract_sensitive_payload =
+-			READ_ONCE(extract_sensitive_payload);
++			LTTNG_READ_ONCE(extract_sensitive_payload);
+ 	),
+ 
+ 	TP_FIELDS(
+diff --git a/lib/ringbuffer/backend.h b/lib/ringbuffer/backend.h
+index da937f2..43e1d47 100644
+--- a/lib/ringbuffer/backend.h
++++ b/lib/ringbuffer/backend.h
+@@ -156,7 +156,7 @@ size_t lib_ring_buffer_do_strcpy(const struct lib_ring_buffer_config *config,
+ 		 * Only read source character once, in case it is
+ 		 * modified concurrently.
+ 		 */
+-		c = READ_ONCE(src[count]);
++		c = LTTNG_READ_ONCE(src[count]);
+ 		if (!c)
+ 			break;
+ 		lib_ring_buffer_do_copy(config, &dest[count], &c, 1);
+diff --git a/lib/ringbuffer/backend_internal.h b/lib/ringbuffer/backend_internal.h
+index 2d6a345..1226fd8 100644
+--- a/lib/ringbuffer/backend_internal.h
++++ b/lib/ringbuffer/backend_internal.h
+@@ -367,7 +367,7 @@ void lib_ring_buffer_clear_noref(const struct lib_ring_buffer_config *config,
+ 	 * Performing a volatile access to read the sb_pages, because we want to
+ 	 * read a coherent version of the pointer and the associated noref flag.
+ 	 */
+-	id = READ_ONCE(bufb->buf_wsb[idx].id);
++	id = LTTNG_READ_ONCE(bufb->buf_wsb[idx].id);
+ 	for (;;) {
+ 		/* This check is called on the fast path for each record. */
+ 		if (likely(!subbuffer_id_is_noref(config, id))) {
+diff --git a/lib/ringbuffer/frontend.h b/lib/ringbuffer/frontend.h
+index 6f516d9..41382fe 100644
+--- a/lib/ringbuffer/frontend.h
++++ b/lib/ringbuffer/frontend.h
+@@ -79,7 +79,7 @@ void *channel_destroy(struct channel *chan);
+ #define for_each_channel_cpu(cpu, chan)					\
+ 	for ((cpu) = -1;						\
+ 		({ (cpu) = cpumask_next(cpu, (chan)->backend.cpumask);	\
+-		   smp_read_barrier_depends(); (cpu) < nr_cpu_ids; });)
++		   smp_rmb(); (cpu) < nr_cpu_ids; });)
+ 
+ extern struct lib_ring_buffer *channel_get_ring_buffer(
+ 				const struct lib_ring_buffer_config *config,
+@@ -155,7 +155,7 @@ static inline
+ int lib_ring_buffer_is_finalized(const struct lib_ring_buffer_config *config,
+ 				 struct lib_ring_buffer *buf)
+ {
+-	int finalized = READ_ONCE(buf->finalized);
++	int finalized = LTTNG_READ_ONCE(buf->finalized);
+ 	/*
+ 	 * Read finalized before counters.
+ 	 */
+diff --git a/lib/ringbuffer/ring_buffer_frontend.c b/lib/ringbuffer/ring_buffer_frontend.c
+index 3cab365..4980d20 100644
+--- a/lib/ringbuffer/ring_buffer_frontend.c
++++ b/lib/ringbuffer/ring_buffer_frontend.c
+@@ -1074,7 +1074,7 @@ int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf,
+ 	int finalized;
+ 
+ retry:
+-	finalized = READ_ONCE(buf->finalized);
++	finalized = LTTNG_READ_ONCE(buf->finalized);
+ 	/*
+ 	 * Read finalized before counters.
+ 	 */
+@@ -1245,7 +1245,7 @@ int lib_ring_buffer_get_subbuf(struct lib_ring_buffer *buf,
+ 		return -EBUSY;
+ 	}
+ retry:
+-	finalized = READ_ONCE(buf->finalized);
++	finalized = LTTNG_READ_ONCE(buf->finalized);
+ 	/*
+ 	 * Read finalized before counters.
+ 	 */
+diff --git a/lib/ringbuffer/ring_buffer_iterator.c b/lib/ringbuffer/ring_buffer_iterator.c
+index d25db72..7b4f20a 100644
+--- a/lib/ringbuffer/ring_buffer_iterator.c
++++ b/lib/ringbuffer/ring_buffer_iterator.c
+@@ -46,7 +46,7 @@ restart:
+ 	switch (iter->state) {
+ 	case ITER_GET_SUBBUF:
+ 		ret = lib_ring_buffer_get_next_subbuf(buf);
+-		if (ret && !READ_ONCE(buf->finalized)
++		if (ret && !LTTNG_READ_ONCE(buf->finalized)
+ 		    && config->alloc == RING_BUFFER_ALLOC_GLOBAL) {
+ 			/*
+ 			 * Use "pull" scheme for global buffers. The reader
+diff --git a/lttng-events.c b/lttng-events.c
+index be7e389..d719294 100644
+--- a/lttng-events.c
++++ b/lttng-events.c
+@@ -1719,7 +1719,7 @@ int lttng_metadata_printf(struct lttng_session *session,
+ 	size_t len;
+ 	va_list ap;
+ 
+-	WARN_ON_ONCE(!READ_ONCE(session->active));
++	WARN_ON_ONCE(!LTTNG_READ_ONCE(session->active));
+ 
+ 	va_start(ap, fmt);
+ 	str = kvasprintf(GFP_KERNEL, fmt, ap);
+@@ -2305,7 +2305,7 @@ int _lttng_event_metadata_statedump(struct lttng_session *session,
+ {
+ 	int ret = 0;
+ 
+-	if (event->metadata_dumped || !READ_ONCE(session->active))
++	if (event->metadata_dumped || !LTTNG_READ_ONCE(session->active))
+ 		return 0;
+ 	if (chan->channel_type == METADATA_CHANNEL)
+ 		return 0;
+@@ -2377,7 +2377,7 @@ int _lttng_channel_metadata_statedump(struct lttng_session *session,
+ {
+ 	int ret = 0;
+ 
+-	if (chan->metadata_dumped || !READ_ONCE(session->active))
++	if (chan->metadata_dumped || !LTTNG_READ_ONCE(session->active))
+ 		return 0;
+ 
+ 	if (chan->channel_type == METADATA_CHANNEL)
+@@ -2604,7 +2604,7 @@ int _lttng_session_metadata_statedump(struct lttng_session *session)
+ 	struct lttng_event *event;
+ 	int ret = 0;
+ 
+-	if (!READ_ONCE(session->active))
++	if (!LTTNG_READ_ONCE(session->active))
+ 		return 0;
+ 
+ 	lttng_metadata_begin(session);
+diff --git a/probes/lttng-kprobes.c b/probes/lttng-kprobes.c
+index a44eaa1..38fb72e 100644
+--- a/probes/lttng-kprobes.c
++++ b/probes/lttng-kprobes.c
+@@ -31,11 +31,11 @@ int lttng_kprobes_handler_pre(struct kprobe *p, struct pt_regs *regs)
+ 	int ret;
+ 	unsigned long data = (unsigned long) p->addr;
+ 
+-	if (unlikely(!READ_ONCE(chan->session->active)))
++	if (unlikely(!LTTNG_READ_ONCE(chan->session->active)))
+ 		return 0;
+-	if (unlikely(!READ_ONCE(chan->enabled)))
++	if (unlikely(!LTTNG_READ_ONCE(chan->enabled)))
+ 		return 0;
+-	if (unlikely(!READ_ONCE(event->enabled)))
++	if (unlikely(!LTTNG_READ_ONCE(event->enabled)))
+ 		return 0;
+ 
+ 	lib_ring_buffer_ctx_init(&ctx, chan->chan, &lttng_probe_ctx, sizeof(data),
+diff --git a/probes/lttng-kretprobes.c b/probes/lttng-kretprobes.c
+index ab98ff2..a6bcd21 100644
+--- a/probes/lttng-kretprobes.c
++++ b/probes/lttng-kretprobes.c
+@@ -51,11 +51,11 @@ int _lttng_kretprobes_handler(struct kretprobe_instance *krpi,
+ 		unsigned long parent_ip;
+ 	} payload;
+ 
+-	if (unlikely(!READ_ONCE(chan->session->active)))
++	if (unlikely(!LTTNG_READ_ONCE(chan->session->active)))
+ 		return 0;
+-	if (unlikely(!READ_ONCE(chan->enabled)))
++	if (unlikely(!LTTNG_READ_ONCE(chan->enabled)))
+ 		return 0;
+-	if (unlikely(!READ_ONCE(event->enabled)))
++	if (unlikely(!LTTNG_READ_ONCE(event->enabled)))
+ 		return 0;
+ 
+ 	payload.ip = (unsigned long) krpi->rp->kp.addr;
+diff --git a/probes/lttng-tracepoint-event-impl.h b/probes/lttng-tracepoint-event-impl.h
+index 77b8638..72a669e 100644
+--- a/probes/lttng-tracepoint-event-impl.h
++++ b/probes/lttng-tracepoint-event-impl.h
+@@ -1132,11 +1132,11 @@ static void __event_probe__##_name(void *__data, _proto)		      \
+ 									      \
+ 	if (!_TP_SESSION_CHECK(session, __session))			      \
+ 		return;							      \
+-	if (unlikely(!READ_ONCE(__session->active)))			      \
++	if (unlikely(!LTTNG_READ_ONCE(__session->active)))		      \
+ 		return;							      \
+-	if (unlikely(!READ_ONCE(__chan->enabled)))			      \
++	if (unlikely(!LTTNG_READ_ONCE(__chan->enabled)))		      \
+ 		return;							      \
+-	if (unlikely(!READ_ONCE(__event->enabled)))			      \
++	if (unlikely(!LTTNG_READ_ONCE(__event->enabled)))		      \
+ 		return;							      \
+ 	__lf = lttng_rcu_dereference(__session->pid_tracker.p);		      \
+ 	if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid)))    \
+@@ -1225,11 +1225,11 @@ static void __event_probe__##_name(void *__data)			      \
+ 									      \
+ 	if (!_TP_SESSION_CHECK(session, __session))			      \
+ 		return;							      \
+-	if (unlikely(!READ_ONCE(__session->active)))			      \
++	if (unlikely(!LTTNG_READ_ONCE(__session->active)))		      \
+ 		return;							      \
+-	if (unlikely(!READ_ONCE(__chan->enabled)))			      \
++	if (unlikely(!LTTNG_READ_ONCE(__chan->enabled)))		      \
+ 		return;							      \
+-	if (unlikely(!READ_ONCE(__event->enabled)))			      \
++	if (unlikely(!LTTNG_READ_ONCE(__event->enabled)))		      \
+ 		return;							      \
+ 	__lf = lttng_rcu_dereference(__session->pid_tracker.p);		      \
+ 	if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid)))    \
+diff --git a/probes/lttng-uprobes.c b/probes/lttng-uprobes.c
+index bc10128..bda1d9b 100644
+--- a/probes/lttng-uprobes.c
++++ b/probes/lttng-uprobes.c
+@@ -40,11 +40,11 @@ int lttng_uprobes_handler_pre(struct uprobe_consumer *uc, struct pt_regs *regs)
+ 		unsigned long ip;
+ 	} payload;
+ 
+-	if (unlikely(!READ_ONCE(chan->session->active)))
++	if (unlikely(!LTTNG_READ_ONCE(chan->session->active)))
+ 		return 0;
+-	if (unlikely(!READ_ONCE(chan->enabled)))
++	if (unlikely(!LTTNG_READ_ONCE(chan->enabled)))
+ 		return 0;
+-	if (unlikely(!READ_ONCE(event->enabled)))
++	if (unlikely(!LTTNG_READ_ONCE(event->enabled)))
+ 		return 0;
+ 
+ 	lib_ring_buffer_ctx_init(&ctx, chan->chan, &lttng_probe_ctx,
+diff --git a/wrapper/compiler.h b/wrapper/compiler.h
+index 1496f33..b9f8c51 100644
+--- a/wrapper/compiler.h
++++ b/wrapper/compiler.h
+@@ -9,6 +9,7 @@
+ #define _LTTNG_WRAPPER_COMPILER_H
+ 
+ #include <linux/compiler.h>
++#include <linux/version.h>
+ 
+ /*
+  * Don't allow compiling with buggy compiler.
+@@ -39,4 +40,21 @@
+ # define WRITE_ONCE(x, val)	({ ACCESS_ONCE(x) = val; })
+ #endif
+ 
++/*
++ * In v4.15 a smp read barrier was added to READ_ONCE to replace
++ * lockless_dereference(), replicate this behavior on prior kernels
++ * and remove calls to smp_read_barrier_depends which was dropped
++ * in v5.9.
++ */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
++#define LTTNG_READ_ONCE(x)	READ_ONCE(x)
++#else
++#define LTTNG_READ_ONCE(x)			\
++({						\
++	typeof(x) __val = READ_ONCE(x);		\
++	smp_read_barrier_depends();		\
++	__val;					\
++})
++#endif
++
+ #endif /* _LTTNG_WRAPPER_COMPILER_H */
+diff --git a/wrapper/trace-clock.h b/wrapper/trace-clock.h
+index 9f4e366..187fc82 100644
+--- a/wrapper/trace-clock.h
++++ b/wrapper/trace-clock.h
+@@ -160,33 +160,30 @@ static inline void put_trace_clock(void)
+ 
+ static inline u64 trace_clock_read64(void)
+ {
+-	struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++	struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+ 
+ 	if (likely(!ltc)) {
+ 		return trace_clock_read64_monotonic();
+ 	} else {
+-		read_barrier_depends();	/* load ltc before content */
+ 		return ltc->read64();
+ 	}
+ }
+ 
+ static inline u64 trace_clock_freq(void)
+ {
+-	struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++	struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+ 
+ 	if (!ltc) {
+ 		return trace_clock_freq_monotonic();
+ 	} else {
+-		read_barrier_depends();	/* load ltc before content */
+ 		return ltc->freq();
+ 	}
+ }
+ 
+ static inline int trace_clock_uuid(char *uuid)
+ {
+-	struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++	struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+ 
+-	read_barrier_depends();	/* load ltc before content */
+ 	/* Use default UUID cb when NULL */
+ 	if (!ltc || !ltc->uuid) {
+ 		return trace_clock_uuid_monotonic(uuid);
+@@ -197,24 +194,22 @@ static inline int trace_clock_uuid(char *uuid)
+ 
+ static inline const char *trace_clock_name(void)
+ {
+-	struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++	struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+ 
+ 	if (!ltc) {
+ 		return trace_clock_name_monotonic();
+ 	} else {
+-		read_barrier_depends();	/* load ltc before content */
+ 		return ltc->name();
+ 	}
+ }
+ 
+ static inline const char *trace_clock_description(void)
+ {
+-	struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock);
++	struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock);
+ 
+ 	if (!ltc) {
+ 		return trace_clock_description_monotonic();
+ 	} else {
+-		read_barrier_depends();	/* load ltc before content */
+ 		return ltc->description();
+ 	}
+ }
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch
new file mode 100644
index 0000000..2843c9c
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch
@@ -0,0 +1,59 @@
+From eae02feb58064eee5ce15a9f6bdffd107c47da05 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 31 Aug 2020 11:41:38 -0400
+Subject: [PATCH 07/10] fix: writeback: Drop I_DIRTY_TIME_EXPIRE (v5.9)
+
+See upstream commit:
+
+  commit 5fcd57505c002efc5823a7355e21f48dd02d5a51
+  Author: Jan Kara <jack@suse.cz>
+  Date:   Fri May 29 16:24:43 2020 +0200
+
+    writeback: Drop I_DIRTY_TIME_EXPIRE
+
+    The only use of I_DIRTY_TIME_EXPIRE is to detect in
+    __writeback_single_inode() that inode got there because flush worker
+    decided it's time to writeback the dirty inode time stamps (either
+    because we are syncing or because of age). However we can detect this
+    directly in __writeback_single_inode() and there's no need for the
+    strange propagation with I_DIRTY_TIME_EXPIRE flag.
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I92e37c2ff3ec36d431e8f9de5c8e37c5a2da55ea
+---
+ instrumentation/events/lttng-module/writeback.h | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h
+index affb4eb..ece67ad 100644
+--- a/instrumentation/events/lttng-module/writeback.h
++++ b/instrumentation/events/lttng-module/writeback.h
+@@ -46,7 +46,21 @@ static inline struct backing_dev_info *lttng_inode_to_bdi(struct inode *inode)
+ 
+ #endif
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#define show_inode_state(state)					\
++	__print_flags(state, "|",				\
++		{I_DIRTY_SYNC,		"I_DIRTY_SYNC"},	\
++		{I_DIRTY_DATASYNC,	"I_DIRTY_DATASYNC"},	\
++		{I_DIRTY_PAGES,		"I_DIRTY_PAGES"},	\
++		{I_NEW,			"I_NEW"},		\
++		{I_WILL_FREE,		"I_WILL_FREE"},		\
++		{I_FREEING,		"I_FREEING"},		\
++		{I_CLEAR,		"I_CLEAR"},		\
++		{I_SYNC,		"I_SYNC"},		\
++		{I_DIRTY_TIME,		"I_DIRTY_TIME"},	\
++		{I_REFERENCED,		"I_REFERENCED"}		\
++	)
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0))
+ #define show_inode_state(state)					\
+ 	__print_flags(state, "|",				\
+ 		{I_DIRTY_SYNC,		"I_DIRTY_SYNC"},	\
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
new file mode 100644
index 0000000..7a0d9a3
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
@@ -0,0 +1,117 @@
+From 87b2affc3eb06f3fb2d0923f18af37713eb6814b Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 31 Aug 2020 14:16:01 -0400
+Subject: [PATCH 08/10] fix: writeback: Fix sync livelock due to b_dirty_time
+ processing (v5.9)
+
+See upstream commit:
+
+  commit f9cae926f35e8230330f28c7b743ad088611a8de
+  Author: Jan Kara <jack@suse.cz>
+  Date:   Fri May 29 16:08:58 2020 +0200
+
+    writeback: Fix sync livelock due to b_dirty_time processing
+
+    When we are processing writeback for sync(2), move_expired_inodes()
+    didn't set any inode expiry value (older_than_this). This can result in
+    writeback never completing if there's steady stream of inodes added to
+    b_dirty_time list as writeback rechecks dirty lists after each writeback
+    round whether there's more work to be done. Fix the problem by using
+    sync(2) start time is inode expiry value when processing b_dirty_time
+    list similarly as for ordinarily dirtied inodes. This requires some
+    refactoring of older_than_this handling which simplifies the code
+    noticeably as a bonus.
+
+Upstream-Status: Backport
+
+Change-Id: I8b894b13ccc14d9b8983ee4c2810a927c319560b
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ .../events/lttng-module/writeback.h           | 39 ++++++++++++-------
+ 1 file changed, 26 insertions(+), 13 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h
+index ece67ad..e9018dd 100644
+--- a/instrumentation/events/lttng-module/writeback.h
++++ b/instrumentation/events/lttng-module/writeback.h
+@@ -384,34 +384,48 @@ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balanc
+ #endif
+ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage)
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
++	TP_PROTO(struct bdi_writeback *wb,
++		 struct wb_writeback_work *work,
++		 unsigned long dirtied_before,
++		 int moved),
++	TP_ARGS(wb, work, dirtied_before, moved),
++	TP_FIELDS(
++		ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
++		ctf_integer(unsigned long, older, dirtied_before)
++		ctf_integer(int, moved, moved)
++	)
++)
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+ LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
+ 	TP_PROTO(struct bdi_writeback *wb,
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+ 		 struct wb_writeback_work *work,
+-#else
+-		 unsigned long *older_than_this,
+-#endif
+ 		 int moved),
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+ 	TP_ARGS(wb, work, moved),
+-#else
++	TP_FIELDS(
++		ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
++		ctf_integer(int, moved, moved)
++	)
++)
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
++LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
++	TP_PROTO(struct bdi_writeback *wb,
++		 unsigned long *older_than_this,
++		 int moved),
+ 	TP_ARGS(wb, older_than_this, moved),
+-#endif
+ 	TP_FIELDS(
+ 		ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+-#else
+ 		ctf_integer(unsigned long, older,
+ 			older_than_this ? *older_than_this : 0)
+ 		ctf_integer(long, age,
+ 			older_than_this ?
+ 				(jiffies - *older_than_this) * 1000 / HZ
+ 				: -1)
+-#endif
+ 		ctf_integer(int, moved, moved)
+ 	)
+ )
++#endif
+ 
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
+ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+@@ -460,7 +474,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+ 		ctf_integer(unsigned long, dirty_limit, global_dirty_limit)
+ 	)
+ )
+-#else
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
+ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+ 
+ 	writeback_global_dirty_state,
+@@ -485,7 +499,6 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
+ 	)
+ )
+ #endif
+-#endif
+ 
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
+ 
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch
new file mode 100644
index 0000000..346e1d6
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch
@@ -0,0 +1,52 @@
+From b74b25f349e92d7b5bdc8684e406d6a889f13773 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Fri, 4 Sep 2020 11:52:51 -0400
+Subject: [PATCH 09/10] fix: version ranges for ext4_discard_preallocations and
+ writeback_queue_io
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: Id4fa53cb2e713cbda651e1a75deed91013115592
+---
+ instrumentation/events/lttng-module/ext4.h      | 3 ++-
+ instrumentation/events/lttng-module/writeback.h | 8 +++++++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
+index 4476abb..b172c8d 100644
+--- a/instrumentation/events/lttng-module/ext4.h
++++ b/instrumentation/events/lttng-module/ext4.h
+@@ -460,7 +460,8 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
+ )
+ #endif
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
++	LTTNG_KERNEL_RANGE(5,8,6, 5,9,0))
+ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
+ 	TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed),
+ 
+diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h
+index e9018dd..09637d7 100644
+--- a/instrumentation/events/lttng-module/writeback.h
++++ b/instrumentation/events/lttng-module/writeback.h
+@@ -384,7 +384,13 @@ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balanc
+ #endif
+ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage)
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \
++	LTTNG_KERNEL_RANGE(5,8,6, 5,9,0) || \
++	LTTNG_KERNEL_RANGE(5,4,62, 5,5,0) || \
++	LTTNG_KERNEL_RANGE(4,19,143, 4,20,0) || \
++	LTTNG_KERNEL_RANGE(4,14,196, 4,15,0) || \
++	LTTNG_KERNEL_RANGE(4,9,235, 4,10,0) || \
++	LTTNG_KERNEL_RANGE(4,4,235, 4,5,0))
+ LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
+ 	TP_PROTO(struct bdi_writeback *wb,
+ 		 struct wb_writeback_work *work,
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch
new file mode 100644
index 0000000..a16750d
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch
@@ -0,0 +1,918 @@
+From ad594e3a953db1b0c3c059fde45b5a5494f6be78 Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Tue, 28 Jan 2020 16:02:44 -0500
+Subject: [PATCH 10/10] Fix: system call filter table
+
+The system call filter table has effectively been unused for a long
+time due to system call name prefix mismatch. This means the overhead of
+selective system call tracing was larger than it should have been because
+the event payload preparation would be done for all system calls as soon
+as a single system call is traced.
+
+However, fixing this underlying issue unearths several issues that crept
+unnoticed when the "enabler" concept was introduced (after the original
+implementation of the system call filter table).
+
+Here is a list of the issues which are resolved here:
+
+- Split lttng_syscalls_unregister into an unregister and destroy
+  function, thus awaiting for a grace period (and therefore quiescence
+  of the users) after unregistering the system call tracepoints before
+  freeing the system call filter data structures. This effectively fixes
+  a use-after-free.
+
+- The state for enabling "all" system calls vs enabling specific system
+  calls (and sequences of enable-disable) was incorrect with respect to
+  the "enablers" semantic. This is solved by always tracking the
+  bitmap of enabled system calls, and keeping this bitmap even when
+  enabling all system calls. The sc_filter is now always allocated
+  before system call tracing is registered to tracepoints, which means
+  it does not need to be RCU dereferenced anymore.
+
+Padding fields in the ABI are reserved to select whether to:
+
+- Trace either native or compat system call (or both, which is the
+  behavior currently implemented),
+- Trace either system call entry or exit (or both, which is the
+  behavior currently implemented),
+- Select the system call to trace by name (behavior currently
+  implemented) or by system call number,
+
+Upstream-Status: Backport
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ lttng-abi.c      |  43 ++++++
+ lttng-abi.h      |  26 ++++
+ lttng-events.c   | 112 +++++++++++++--
+ lttng-events.h   |  31 ++++-
+ lttng-syscalls.c | 348 +++++++++++++++++++++++++----------------------
+ 5 files changed, 380 insertions(+), 180 deletions(-)
+
+diff --git a/lttng-abi.c b/lttng-abi.c
+index 64ea99d..b33879d 100644
+--- a/lttng-abi.c
++++ b/lttng-abi.c
+@@ -1264,6 +1264,46 @@ nomem:
+ 	return ret;
+ }
+ 
++static
++int lttng_abi_validate_event_param(struct lttng_kernel_event *event_param)
++{
++	/* Limit ABI to implemented features. */
++	switch (event_param->instrumentation) {
++	case LTTNG_KERNEL_SYSCALL:
++		switch (event_param->u.syscall.entryexit) {
++		case LTTNG_KERNEL_SYSCALL_ENTRYEXIT:
++			break;
++		default:
++			return -EINVAL;
++		}
++		switch (event_param->u.syscall.abi) {
++		case LTTNG_KERNEL_SYSCALL_ABI_ALL:
++			break;
++		default:
++			return -EINVAL;
++		}
++		switch (event_param->u.syscall.match) {
++		case LTTNG_SYSCALL_MATCH_NAME:
++			break;
++		default:
++			return -EINVAL;
++		}
++		break;
++
++	case LTTNG_KERNEL_TRACEPOINT:	/* Fallthrough */
++	case LTTNG_KERNEL_KPROBE:	/* Fallthrough */
++	case LTTNG_KERNEL_KRETPROBE:	/* Fallthrough */
++	case LTTNG_KERNEL_NOOP:		/* Fallthrough */
++	case LTTNG_KERNEL_UPROBE:
++		break;
++
++	case LTTNG_KERNEL_FUNCTION:	/* Fallthrough */
++	default:
++		return -EINVAL;
++	}
++	return 0;
++}
++
+ static
+ int lttng_abi_create_event(struct file *channel_file,
+ 			   struct lttng_kernel_event *event_param)
+@@ -1305,6 +1345,9 @@ int lttng_abi_create_event(struct file *channel_file,
+ 		ret = -EOVERFLOW;
+ 		goto refcount_error;
+ 	}
++	ret = lttng_abi_validate_event_param(event_param);
++	if (ret)
++		goto event_error;
+ 	if (event_param->instrumentation == LTTNG_KERNEL_TRACEPOINT
+ 			|| event_param->instrumentation == LTTNG_KERNEL_SYSCALL) {
+ 		struct lttng_enabler *enabler;
+diff --git a/lttng-abi.h b/lttng-abi.h
+index 1d356ab..51d60e5 100644
+--- a/lttng-abi.h
++++ b/lttng-abi.h
+@@ -90,6 +90,31 @@ struct lttng_kernel_event_callsite {
+ 	} u;
+ } __attribute__((packed));
+ 
++enum lttng_kernel_syscall_entryexit {
++	LTTNG_KERNEL_SYSCALL_ENTRYEXIT = 0,
++	LTTNG_KERNEL_SYSCALL_ENTRY = 1,		/* Not implemented. */
++	LTTNG_KERNEL_SYSCALL_EXIT = 2,		/* Not implemented. */
++};
++
++enum lttng_kernel_syscall_abi {
++	LTTNG_KERNEL_SYSCALL_ABI_ALL = 0,
++	LTTNG_KERNEL_SYSCALL_ABI_NATIVE = 1,	/* Not implemented. */
++	LTTNG_KERNEL_SYSCALL_ABI_COMPAT = 2,	/* Not implemented. */
++};
++
++enum lttng_kernel_syscall_match {
++	LTTNG_SYSCALL_MATCH_NAME = 0,
++	LTTNG_SYSCALL_MATCH_NR = 1,		/* Not implemented. */
++};
++
++struct lttng_kernel_syscall {
++	uint8_t entryexit;	/* enum lttng_kernel_syscall_entryexit */
++	uint8_t abi;		/* enum lttng_kernel_syscall_abi */
++	uint8_t match;		/* enum lttng_kernel_syscall_match */
++	uint8_t padding;
++	uint32_t nr;		/* For LTTNG_SYSCALL_MATCH_NR */
++} __attribute__((packed));
++
+ /*
+  * For syscall tracing, name = "*" means "enable all".
+  */
+@@ -106,6 +131,7 @@ struct lttng_kernel_event {
+ 		struct lttng_kernel_kprobe kprobe;
+ 		struct lttng_kernel_function_tracer ftrace;
+ 		struct lttng_kernel_uprobe uprobe;
++		struct lttng_kernel_syscall syscall;
+ 		char padding[LTTNG_KERNEL_EVENT_PADDING2];
+ 	} u;
+ } __attribute__((packed));
+diff --git a/lttng-events.c b/lttng-events.c
+index d719294..4c0b04a 100644
+--- a/lttng-events.c
++++ b/lttng-events.c
+@@ -201,6 +201,10 @@ void lttng_session_destroy(struct lttng_session *session)
+ 		WARN_ON(ret);
+ 	}
+ 	synchronize_trace();	/* Wait for in-flight events to complete */
++	list_for_each_entry(chan, &session->chan, list) {
++		ret = lttng_syscalls_destroy(chan);
++		WARN_ON(ret);
++	}
+ 	list_for_each_entry_safe(enabler, tmpenabler,
+ 			&session->enablers_head, node)
+ 		lttng_enabler_destroy(enabler);
+@@ -740,6 +744,28 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan,
+ 		event->enabled = 0;
+ 		event->registered = 0;
+ 		event->desc = event_desc;
++		switch (event_param->u.syscall.entryexit) {
++		case LTTNG_KERNEL_SYSCALL_ENTRYEXIT:
++			ret = -EINVAL;
++			goto register_error;
++		case LTTNG_KERNEL_SYSCALL_ENTRY:
++			event->u.syscall.entryexit = LTTNG_SYSCALL_ENTRY;
++			break;
++		case LTTNG_KERNEL_SYSCALL_EXIT:
++			event->u.syscall.entryexit = LTTNG_SYSCALL_EXIT;
++			break;
++		}
++		switch (event_param->u.syscall.abi) {
++		case LTTNG_KERNEL_SYSCALL_ABI_ALL:
++			ret = -EINVAL;
++			goto register_error;
++		case LTTNG_KERNEL_SYSCALL_ABI_NATIVE:
++			event->u.syscall.abi = LTTNG_SYSCALL_ABI_NATIVE;
++			break;
++		case LTTNG_KERNEL_SYSCALL_ABI_COMPAT:
++			event->u.syscall.abi = LTTNG_SYSCALL_ABI_COMPAT;
++			break;
++		}
+ 		if (!event->desc) {
+ 			ret = -EINVAL;
+ 			goto register_error;
+@@ -826,8 +852,7 @@ void register_event(struct lttng_event *event)
+ 						  event);
+ 		break;
+ 	case LTTNG_KERNEL_SYSCALL:
+-		ret = lttng_syscall_filter_enable(event->chan,
+-			desc->name);
++		ret = lttng_syscall_filter_enable(event->chan, event);
+ 		break;
+ 	case LTTNG_KERNEL_KPROBE:
+ 	case LTTNG_KERNEL_UPROBE:
+@@ -870,8 +895,7 @@ int _lttng_event_unregister(struct lttng_event *event)
+ 		ret = 0;
+ 		break;
+ 	case LTTNG_KERNEL_SYSCALL:
+-		ret = lttng_syscall_filter_disable(event->chan,
+-			desc->name);
++		ret = lttng_syscall_filter_disable(event->chan, event);
+ 		break;
+ 	case LTTNG_KERNEL_NOOP:
+ 		ret = 0;
+@@ -1203,39 +1227,87 @@ int lttng_desc_match_enabler(const struct lttng_event_desc *desc,
+ 		struct lttng_enabler *enabler)
+ {
+ 	const char *desc_name, *enabler_name;
++	bool compat = false, entry = false;
+ 
+ 	enabler_name = enabler->event_param.name;
+ 	switch (enabler->event_param.instrumentation) {
+ 	case LTTNG_KERNEL_TRACEPOINT:
+ 		desc_name = desc->name;
++		switch (enabler->type) {
++		case LTTNG_ENABLER_STAR_GLOB:
++			return lttng_match_enabler_star_glob(desc_name, enabler_name);
++		case LTTNG_ENABLER_NAME:
++			return lttng_match_enabler_name(desc_name, enabler_name);
++		default:
++			return -EINVAL;
++		}
+ 		break;
+ 	case LTTNG_KERNEL_SYSCALL:
+ 		desc_name = desc->name;
+-		if (!strncmp(desc_name, "compat_", strlen("compat_")))
++		if (!strncmp(desc_name, "compat_", strlen("compat_"))) {
+ 			desc_name += strlen("compat_");
++			compat = true;
++		}
+ 		if (!strncmp(desc_name, "syscall_exit_",
+ 				strlen("syscall_exit_"))) {
+ 			desc_name += strlen("syscall_exit_");
+ 		} else if (!strncmp(desc_name, "syscall_entry_",
+ 				strlen("syscall_entry_"))) {
+ 			desc_name += strlen("syscall_entry_");
++			entry = true;
+ 		} else {
+ 			WARN_ON_ONCE(1);
+ 			return -EINVAL;
+ 		}
++		switch (enabler->event_param.u.syscall.entryexit) {
++		case LTTNG_KERNEL_SYSCALL_ENTRYEXIT:
++			break;
++		case LTTNG_KERNEL_SYSCALL_ENTRY:
++			if (!entry)
++				return 0;
++			break;
++		case LTTNG_KERNEL_SYSCALL_EXIT:
++			if (entry)
++				return 0;
++			break;
++		default:
++			return -EINVAL;
++		}
++		switch (enabler->event_param.u.syscall.abi) {
++		case LTTNG_KERNEL_SYSCALL_ABI_ALL:
++			break;
++		case LTTNG_KERNEL_SYSCALL_ABI_NATIVE:
++			if (compat)
++				return 0;
++			break;
++		case LTTNG_KERNEL_SYSCALL_ABI_COMPAT:
++			if (!compat)
++				return 0;
++			break;
++		default:
++			return -EINVAL;
++		}
++		switch (enabler->event_param.u.syscall.match) {
++		case LTTNG_SYSCALL_MATCH_NAME:
++			switch (enabler->type) {
++			case LTTNG_ENABLER_STAR_GLOB:
++				return lttng_match_enabler_star_glob(desc_name, enabler_name);
++			case LTTNG_ENABLER_NAME:
++				return lttng_match_enabler_name(desc_name, enabler_name);
++			default:
++				return -EINVAL;
++			}
++			break;
++		case LTTNG_SYSCALL_MATCH_NR:
++			return -EINVAL;	/* Not implemented. */
++		default:
++			return -EINVAL;
++		}
+ 		break;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 		return -EINVAL;
+ 	}
+-	switch (enabler->type) {
+-	case LTTNG_ENABLER_STAR_GLOB:
+-		return lttng_match_enabler_star_glob(desc_name, enabler_name);
+-	case LTTNG_ENABLER_NAME:
+-		return lttng_match_enabler_name(desc_name, enabler_name);
+-	default:
+-		return -EINVAL;
+-	}
+ }
+ 
+ static
+@@ -1361,9 +1433,21 @@ void lttng_create_event_if_missing(struct lttng_enabler *enabler)
+ static
+ int lttng_enabler_ref_events(struct lttng_enabler *enabler)
+ {
+-	struct lttng_session *session = enabler->chan->session;
++	struct lttng_channel *chan = enabler->chan;
++	struct lttng_session *session = chan->session;
+ 	struct lttng_event *event;
+ 
++	if (enabler->event_param.instrumentation == LTTNG_KERNEL_SYSCALL &&
++			enabler->event_param.u.syscall.entryexit == LTTNG_KERNEL_SYSCALL_ENTRYEXIT &&
++			enabler->event_param.u.syscall.abi == LTTNG_KERNEL_SYSCALL_ABI_ALL &&
++			enabler->event_param.u.syscall.match == LTTNG_SYSCALL_MATCH_NAME &&
++			!strcmp(enabler->event_param.name, "*")) {
++		if (enabler->enabled)
++			WRITE_ONCE(chan->syscall_all, 1);
++		else
++			WRITE_ONCE(chan->syscall_all, 0);
++	}
++
+ 	/* First ensure that probe events are created for this enabler. */
+ 	lttng_create_event_if_missing(enabler);
+ 
+diff --git a/lttng-events.h b/lttng-events.h
+index a36a312..d4d9976 100644
+--- a/lttng-events.h
++++ b/lttng-events.h
+@@ -292,6 +292,16 @@ struct lttng_uprobe_handler {
+ 	struct list_head node;
+ };
+ 
++enum lttng_syscall_entryexit {
++	LTTNG_SYSCALL_ENTRY,
++	LTTNG_SYSCALL_EXIT,
++};
++
++enum lttng_syscall_abi {
++	LTTNG_SYSCALL_ABI_NATIVE,
++	LTTNG_SYSCALL_ABI_COMPAT,
++};
++
+ /*
+  * lttng_event structure is referred to by the tracing fast path. It must be
+  * kept small.
+@@ -318,6 +328,11 @@ struct lttng_event {
+ 			struct inode *inode;
+ 			struct list_head head;
+ 		} uprobe;
++		struct {
++			char *syscall_name;
++			enum lttng_syscall_entryexit entryexit;
++			enum lttng_syscall_abi abi;
++		} syscall;
+ 	} u;
+ 	struct list_head list;		/* Event list in session */
+ 	unsigned int metadata_dumped:1;
+@@ -457,10 +472,10 @@ struct lttng_channel {
+ 	struct lttng_syscall_filter *sc_filter;
+ 	int header_type;		/* 0: unset, 1: compact, 2: large */
+ 	enum channel_type channel_type;
++	int syscall_all;
+ 	unsigned int metadata_dumped:1,
+ 		sys_enter_registered:1,
+ 		sys_exit_registered:1,
+-		syscall_all:1,
+ 		tstate:1;		/* Transient enable state */
+ };
+ 
+@@ -653,10 +668,11 @@ void lttng_clock_unref(void);
+ #if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS)
+ int lttng_syscalls_register(struct lttng_channel *chan, void *filter);
+ int lttng_syscalls_unregister(struct lttng_channel *chan);
++int lttng_syscalls_destroy(struct lttng_channel *chan);
+ int lttng_syscall_filter_enable(struct lttng_channel *chan,
+-		const char *name);
++		struct lttng_event *event);
+ int lttng_syscall_filter_disable(struct lttng_channel *chan,
+-		const char *name);
++		struct lttng_event *event);
+ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ 		struct lttng_kernel_syscall_mask __user *usyscall_mask);
+ #else
+@@ -670,14 +686,19 @@ static inline int lttng_syscalls_unregister(struct lttng_channel *chan)
+ 	return 0;
+ }
+ 
++static inline int lttng_syscalls_destroy(struct lttng_channel *chan)
++{
++	return 0;
++}
++
+ static inline int lttng_syscall_filter_enable(struct lttng_channel *chan,
+-		const char *name)
++		struct lttng_event *event);
+ {
+ 	return -ENOSYS;
+ }
+ 
+ static inline int lttng_syscall_filter_disable(struct lttng_channel *chan,
+-		const char *name)
++		struct lttng_event *event);
+ {
+ 	return -ENOSYS;
+ }
+diff --git a/lttng-syscalls.c b/lttng-syscalls.c
+index 97f1ba9..26cead6 100644
+--- a/lttng-syscalls.c
++++ b/lttng-syscalls.c
+@@ -367,8 +367,10 @@ const struct trace_syscall_entry compat_sc_exit_table[] = {
+ #undef CREATE_SYSCALL_TABLE
+ 
+ struct lttng_syscall_filter {
+-	DECLARE_BITMAP(sc, NR_syscalls);
+-	DECLARE_BITMAP(sc_compat, NR_compat_syscalls);
++	DECLARE_BITMAP(sc_entry, NR_syscalls);
++	DECLARE_BITMAP(sc_exit, NR_syscalls);
++	DECLARE_BITMAP(sc_compat_entry, NR_compat_syscalls);
++	DECLARE_BITMAP(sc_compat_exit, NR_compat_syscalls);
+ };
+ 
+ static void syscall_entry_unknown(struct lttng_event *event,
+@@ -391,29 +393,23 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id)
+ 	size_t table_len;
+ 
+ 	if (unlikely(in_compat_syscall())) {
+-		struct lttng_syscall_filter *filter;
+-
+-		filter = lttng_rcu_dereference(chan->sc_filter);
+-		if (filter) {
+-			if (id < 0 || id >= NR_compat_syscalls
+-				|| !test_bit(id, filter->sc_compat)) {
+-				/* System call filtered out. */
+-				return;
+-			}
++		struct lttng_syscall_filter *filter = chan->sc_filter;
++
++		if (id < 0 || id >= NR_compat_syscalls
++			|| (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_compat_entry))) {
++			/* System call filtered out. */
++			return;
+ 		}
+ 		table = compat_sc_table;
+ 		table_len = ARRAY_SIZE(compat_sc_table);
+ 		unknown_event = chan->sc_compat_unknown;
+ 	} else {
+-		struct lttng_syscall_filter *filter;
+-
+-		filter = lttng_rcu_dereference(chan->sc_filter);
+-		if (filter) {
+-			if (id < 0 || id >= NR_syscalls
+-				|| !test_bit(id, filter->sc)) {
+-				/* System call filtered out. */
+-				return;
+-			}
++		struct lttng_syscall_filter *filter = chan->sc_filter;
++
++		if (id < 0 || id >= NR_syscalls
++			|| (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_entry))) {
++			/* System call filtered out. */
++			return;
+ 		}
+ 		table = sc_table;
+ 		table_len = ARRAY_SIZE(sc_table);
+@@ -545,29 +541,23 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret)
+ 
+ 	id = syscall_get_nr(current, regs);
+ 	if (unlikely(in_compat_syscall())) {
+-		struct lttng_syscall_filter *filter;
+-
+-		filter = lttng_rcu_dereference(chan->sc_filter);
+-		if (filter) {
+-			if (id < 0 || id >= NR_compat_syscalls
+-				|| !test_bit(id, filter->sc_compat)) {
+-				/* System call filtered out. */
+-				return;
+-			}
++		struct lttng_syscall_filter *filter = chan->sc_filter;
++
++		if (id < 0 || id >= NR_compat_syscalls
++			|| (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_compat_exit))) {
++			/* System call filtered out. */
++			return;
+ 		}
+ 		table = compat_sc_exit_table;
+ 		table_len = ARRAY_SIZE(compat_sc_exit_table);
+ 		unknown_event = chan->compat_sc_exit_unknown;
+ 	} else {
+-		struct lttng_syscall_filter *filter;
+-
+-		filter = lttng_rcu_dereference(chan->sc_filter);
+-		if (filter) {
+-			if (id < 0 || id >= NR_syscalls
+-				|| !test_bit(id, filter->sc)) {
+-				/* System call filtered out. */
+-				return;
+-			}
++		struct lttng_syscall_filter *filter = chan->sc_filter;
++
++		if (id < 0 || id >= NR_syscalls
++			|| (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_exit))) {
++			/* System call filtered out. */
++			return;
+ 		}
+ 		table = sc_exit_table;
+ 		table_len = ARRAY_SIZE(sc_exit_table);
+@@ -713,27 +703,23 @@ int fill_table(const struct trace_syscall_entry *table, size_t table_len,
+ 		memset(&ev, 0, sizeof(ev));
+ 		switch (type) {
+ 		case SC_TYPE_ENTRY:
+-			strncpy(ev.name, SYSCALL_ENTRY_STR,
+-				LTTNG_KERNEL_SYM_NAME_LEN);
++			ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++			ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ 			break;
+ 		case SC_TYPE_EXIT:
+-			strncpy(ev.name, SYSCALL_EXIT_STR,
+-				LTTNG_KERNEL_SYM_NAME_LEN);
++			ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++			ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ 			break;
+ 		case SC_TYPE_COMPAT_ENTRY:
+-			strncpy(ev.name, COMPAT_SYSCALL_ENTRY_STR,
+-				LTTNG_KERNEL_SYM_NAME_LEN);
++			ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++			ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ 			break;
+ 		case SC_TYPE_COMPAT_EXIT:
+-			strncpy(ev.name, COMPAT_SYSCALL_EXIT_STR,
+-				LTTNG_KERNEL_SYM_NAME_LEN);
+-			break;
+-		default:
+-			BUG_ON(1);
++			ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++			ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ 			break;
+ 		}
+-		strncat(ev.name, desc->name,
+-			LTTNG_KERNEL_SYM_NAME_LEN - strlen(ev.name) - 1);
++		strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ 		ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ 		ev.instrumentation = LTTNG_KERNEL_SYSCALL;
+ 		chan_table[i] = _lttng_event_create(chan, &ev, filter,
+@@ -803,6 +789,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ 		strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ 		ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ 		ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++		ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++		ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ 		chan->sc_unknown = _lttng_event_create(chan, &ev, filter,
+ 						desc,
+ 						ev.instrumentation);
+@@ -820,6 +808,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ 		strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ 		ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ 		ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++		ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
++		ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ 		chan->sc_compat_unknown = _lttng_event_create(chan, &ev, filter,
+ 						desc,
+ 						ev.instrumentation);
+@@ -837,6 +827,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ 		strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ 		ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ 		ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++		ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++		ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT;
+ 		chan->compat_sc_exit_unknown = _lttng_event_create(chan, &ev,
+ 						filter, desc,
+ 						ev.instrumentation);
+@@ -854,6 +846,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ 		strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN);
+ 		ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+ 		ev.instrumentation = LTTNG_KERNEL_SYSCALL;
++		ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
++		ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE;
+ 		chan->sc_exit_unknown = _lttng_event_create(chan, &ev, filter,
+ 						desc, ev.instrumentation);
+ 		WARN_ON_ONCE(!chan->sc_exit_unknown);
+@@ -883,6 +877,14 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ 	if (ret)
+ 		return ret;
+ #endif
++
++	if (!chan->sc_filter) {
++		chan->sc_filter = kzalloc(sizeof(struct lttng_syscall_filter),
++				GFP_KERNEL);
++		if (!chan->sc_filter)
++			return -ENOMEM;
++	}
++
+ 	if (!chan->sys_enter_registered) {
+ 		ret = lttng_wrapper_tracepoint_probe_register("sys_enter",
+ 				(void *) syscall_entry_probe, chan);
+@@ -930,7 +932,11 @@ int lttng_syscalls_unregister(struct lttng_channel *chan)
+ 			return ret;
+ 		chan->sys_exit_registered = 0;
+ 	}
+-	/* lttng_event destroy will be performed by lttng_session_destroy() */
++	return 0;
++}
++
++int lttng_syscalls_destroy(struct lttng_channel *chan)
++{
+ 	kfree(chan->sc_table);
+ 	kfree(chan->sc_exit_table);
+ #ifdef CONFIG_COMPAT
+@@ -993,136 +999,150 @@ uint32_t get_sc_tables_len(void)
+ 	return ARRAY_SIZE(sc_table) + ARRAY_SIZE(compat_sc_table);
+ }
+ 
+-int lttng_syscall_filter_enable(struct lttng_channel *chan,
+-		const char *name)
++static
++const char *get_syscall_name(struct lttng_event *event)
+ {
+-	int syscall_nr, compat_syscall_nr, ret;
+-	struct lttng_syscall_filter *filter;
++	size_t prefix_len = 0;
+ 
+-	WARN_ON_ONCE(!chan->sc_table);
++	WARN_ON_ONCE(event->instrumentation != LTTNG_KERNEL_SYSCALL);
+ 
+-	if (!name) {
+-		/* Enable all system calls by removing filter */
+-		if (chan->sc_filter) {
+-			filter = chan->sc_filter;
+-			rcu_assign_pointer(chan->sc_filter, NULL);
+-			synchronize_trace();
+-			kfree(filter);
++	switch (event->u.syscall.entryexit) {
++	case LTTNG_SYSCALL_ENTRY:
++		switch (event->u.syscall.abi) {
++		case LTTNG_SYSCALL_ABI_NATIVE:
++			prefix_len = strlen(SYSCALL_ENTRY_STR);
++			break;
++		case LTTNG_SYSCALL_ABI_COMPAT:
++			prefix_len = strlen(COMPAT_SYSCALL_ENTRY_STR);
++			break;
+ 		}
+-		chan->syscall_all = 1;
+-		return 0;
+-	}
+-
+-	if (!chan->sc_filter) {
+-		if (chan->syscall_all) {
+-			/*
+-			 * All syscalls are already enabled.
+-			 */
+-			return -EEXIST;
++		break;
++	case LTTNG_SYSCALL_EXIT:
++		switch (event->u.syscall.abi) {
++		case LTTNG_SYSCALL_ABI_NATIVE:
++			prefix_len = strlen(SYSCALL_EXIT_STR);
++			break;
++		case LTTNG_SYSCALL_ABI_COMPAT:
++			prefix_len = strlen(COMPAT_SYSCALL_EXIT_STR);
++			break;
+ 		}
+-		filter = kzalloc(sizeof(struct lttng_syscall_filter),
+-				GFP_KERNEL);
+-		if (!filter)
+-			return -ENOMEM;
+-	} else {
+-		filter = chan->sc_filter;
++		break;
+ 	}
+-	syscall_nr = get_syscall_nr(name);
+-	compat_syscall_nr = get_compat_syscall_nr(name);
+-	if (syscall_nr < 0 && compat_syscall_nr < 0) {
+-		ret = -ENOENT;
+-		goto error;
++	WARN_ON_ONCE(prefix_len == 0);
++	return event->desc->name + prefix_len;
++}
++
++int lttng_syscall_filter_enable(struct lttng_channel *chan,
++		struct lttng_event *event)
++{
++	struct lttng_syscall_filter *filter = chan->sc_filter;
++	const char *syscall_name;
++	unsigned long *bitmap;
++	int syscall_nr;
++
++	WARN_ON_ONCE(!chan->sc_table);
++
++	syscall_name = get_syscall_name(event);
++
++	switch (event->u.syscall.abi) {
++	case LTTNG_SYSCALL_ABI_NATIVE:
++		syscall_nr = get_syscall_nr(syscall_name);
++		break;
++	case LTTNG_SYSCALL_ABI_COMPAT:
++		syscall_nr = get_compat_syscall_nr(syscall_name);
++		break;
++	default:
++		return -EINVAL;
+ 	}
+-	if (syscall_nr >= 0) {
+-		if (test_bit(syscall_nr, filter->sc)) {
+-			ret = -EEXIST;
+-			goto error;
++	if (syscall_nr < 0)
++		return -ENOENT;
++
++
++	switch (event->u.syscall.entryexit) {
++	case LTTNG_SYSCALL_ENTRY:
++		switch (event->u.syscall.abi) {
++		case LTTNG_SYSCALL_ABI_NATIVE:
++			bitmap = filter->sc_entry;
++			break;
++		case LTTNG_SYSCALL_ABI_COMPAT:
++			bitmap = filter->sc_compat_entry;
++			break;
+ 		}
+-		bitmap_set(filter->sc, syscall_nr, 1);
+-	}
+-	if (compat_syscall_nr >= 0) {
+-		if (test_bit(compat_syscall_nr, filter->sc_compat)) {
+-			ret = -EEXIST;
+-			goto error;
++		break;
++	case LTTNG_SYSCALL_EXIT:
++		switch (event->u.syscall.abi) {
++		case LTTNG_SYSCALL_ABI_NATIVE:
++			bitmap = filter->sc_exit;
++			break;
++		case LTTNG_SYSCALL_ABI_COMPAT:
++			bitmap = filter->sc_compat_exit;
++			break;
+ 		}
+-		bitmap_set(filter->sc_compat, compat_syscall_nr, 1);
++		break;
++	default:
++		return -EINVAL;
+ 	}
+-	if (!chan->sc_filter)
+-		rcu_assign_pointer(chan->sc_filter, filter);
++	if (test_bit(syscall_nr, bitmap))
++		return -EEXIST;
++	bitmap_set(bitmap, syscall_nr, 1);
+ 	return 0;
+-
+-error:
+-	if (!chan->sc_filter)
+-		kfree(filter);
+-	return ret;
+ }
+ 
+ int lttng_syscall_filter_disable(struct lttng_channel *chan,
+-		const char *name)
++		struct lttng_event *event)
+ {
+-	int syscall_nr, compat_syscall_nr, ret;
+-	struct lttng_syscall_filter *filter;
++	struct lttng_syscall_filter *filter = chan->sc_filter;
++	const char *syscall_name;
++	unsigned long *bitmap;
++	int syscall_nr;
+ 
+ 	WARN_ON_ONCE(!chan->sc_table);
+ 
+-	if (!chan->sc_filter) {
+-		if (!chan->syscall_all)
+-			return -EEXIST;
+-		filter = kzalloc(sizeof(struct lttng_syscall_filter),
+-				GFP_KERNEL);
+-		if (!filter)
+-			return -ENOMEM;
+-		/* Trace all system calls, then apply disable. */
+-		bitmap_set(filter->sc, 0, NR_syscalls);
+-		bitmap_set(filter->sc_compat, 0, NR_compat_syscalls);
+-	} else {
+-		filter = chan->sc_filter;
++	syscall_name = get_syscall_name(event);
++
++	switch (event->u.syscall.abi) {
++	case LTTNG_SYSCALL_ABI_NATIVE:
++		syscall_nr = get_syscall_nr(syscall_name);
++		break;
++	case LTTNG_SYSCALL_ABI_COMPAT:
++		syscall_nr = get_compat_syscall_nr(syscall_name);
++		break;
++	default:
++		return -EINVAL;
+ 	}
++	if (syscall_nr < 0)
++		return -ENOENT;
+ 
+-	if (!name) {
+-		/* Fail if all syscalls are already disabled. */
+-		if (bitmap_empty(filter->sc, NR_syscalls)
+-			&& bitmap_empty(filter->sc_compat,
+-				NR_compat_syscalls)) {
+-			ret = -EEXIST;
+-			goto error;
+-		}
+ 
+-		/* Disable all system calls */
+-		bitmap_clear(filter->sc, 0, NR_syscalls);
+-		bitmap_clear(filter->sc_compat, 0, NR_compat_syscalls);
+-		goto apply_filter;
+-	}
+-	syscall_nr = get_syscall_nr(name);
+-	compat_syscall_nr = get_compat_syscall_nr(name);
+-	if (syscall_nr < 0 && compat_syscall_nr < 0) {
+-		ret = -ENOENT;
+-		goto error;
+-	}
+-	if (syscall_nr >= 0) {
+-		if (!test_bit(syscall_nr, filter->sc)) {
+-			ret = -EEXIST;
+-			goto error;
++	switch (event->u.syscall.entryexit) {
++	case LTTNG_SYSCALL_ENTRY:
++		switch (event->u.syscall.abi) {
++		case LTTNG_SYSCALL_ABI_NATIVE:
++			bitmap = filter->sc_entry;
++			break;
++		case LTTNG_SYSCALL_ABI_COMPAT:
++			bitmap = filter->sc_compat_entry;
++			break;
+ 		}
+-		bitmap_clear(filter->sc, syscall_nr, 1);
+-	}
+-	if (compat_syscall_nr >= 0) {
+-		if (!test_bit(compat_syscall_nr, filter->sc_compat)) {
+-			ret = -EEXIST;
+-			goto error;
++		break;
++	case LTTNG_SYSCALL_EXIT:
++		switch (event->u.syscall.abi) {
++		case LTTNG_SYSCALL_ABI_NATIVE:
++			bitmap = filter->sc_exit;
++			break;
++		case LTTNG_SYSCALL_ABI_COMPAT:
++			bitmap = filter->sc_compat_exit;
++			break;
+ 		}
+-		bitmap_clear(filter->sc_compat, compat_syscall_nr, 1);
++		break;
++	default:
++		return -EINVAL;
+ 	}
+-apply_filter:
+-	if (!chan->sc_filter)
+-		rcu_assign_pointer(chan->sc_filter, filter);
+-	chan->syscall_all = 0;
+-	return 0;
++	if (!test_bit(syscall_nr, bitmap))
++		return -EEXIST;
++	bitmap_clear(bitmap, syscall_nr, 1);
+ 
+-error:
+-	if (!chan->sc_filter)
+-		kfree(filter);
+-	return ret;
++	return 0;
+ }
+ 
+ static
+@@ -1236,6 +1256,9 @@ const struct file_operations lttng_syscall_list_fops = {
+ 	.release = seq_release,
+ };
+ 
++/*
++ * A syscall is enabled if it is traced for either entry or exit.
++ */
+ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ 		struct lttng_kernel_syscall_mask __user *usyscall_mask)
+ {
+@@ -1262,8 +1285,9 @@ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ 		char state;
+ 
+ 		if (channel->sc_table) {
+-			if (filter)
+-				state = test_bit(bit, filter->sc);
++			if (!READ_ONCE(channel->syscall_all) && filter)
++				state = test_bit(bit, filter->sc_entry)
++					|| test_bit(bit, filter->sc_exit);
+ 			else
+ 				state = 1;
+ 		} else {
+@@ -1275,9 +1299,11 @@ long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ 		char state;
+ 
+ 		if (channel->compat_sc_table) {
+-			if (filter)
++			if (!READ_ONCE(channel->syscall_all) && filter)
+ 				state = test_bit(bit - ARRAY_SIZE(sc_table),
+-						filter->sc_compat);
++						filter->sc_compat_entry)
++					|| test_bit(bit - ARRAY_SIZE(sc_table),
++						filter->sc_compat_exit);
+ 			else
+ 				state = 1;
+ 		} else {
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
index 49b7a11..e36b327 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
@@ -6,11 +6,21 @@
 
 inherit module
 
-COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux'
+include lttng-platforms.inc
 
 SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
            file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
+           file://0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch \
+           file://0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch \
+           file://0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch \
+           file://0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch \
+           file://0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch \
+           file://0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch \
+           file://0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch \
+           file://0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch \
+           file://0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch \
+           file://0010-Fix-system-call-filter-table.patch \
            "
 
 SRC_URI[sha256sum] = "df50bc3bd58679705714f17721acf619a8b0cedc694f8a97052aa5099626feca"
@@ -36,7 +46,7 @@
            file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
            file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
            "
-SRCREV_class-devupstream = "11441f8f17f7825f529e2f6c54d3605771709260"
-PV_class-devupstream = "2.12.1+git${SRCPV}"
+SRCREV_class-devupstream = "ad594e3a953db1b0c3c059fde45b5a5494f6be78"
+PV_class-devupstream = "2.12.2+git${SRCPV}"
 S_class-devupstream = "${WORKDIR}/git"
 SRCREV_FORMAT ?= "lttng_git"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-platforms.inc b/poky/meta/recipes-kernel/lttng/lttng-platforms.inc
new file mode 100644
index 0000000..aa8220b
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-platforms.inc
@@ -0,0 +1,17 @@
+#
+# Whether the platform supports kernel tracing
+#
+LTTNGMODULES = "lttng-modules"
+LTTNGMODULES_arc = ""
+LTTNGMODULES_riscv64 = ""
+
+COMPATIBLE_HOST_riscv64_pn-lttng-modules = "null"
+COMPATIBLE_HOST_arc_pn-lttng-modules = "null"
+
+# Whether the platform supports userspace tracing
+# lttng-ust uses sched_getcpu() which is not there on for some platforms.
+LTTNGUST = "lttng-ust"
+LTTNGUST_arc = ""
+
+COMPATIBLE_HOST_arc_pn-lttng-ust = "null"
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
index e9c8e18..0787e04 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
@@ -9,9 +9,12 @@
                     file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \
                     file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95"
 
+include lttng-platforms.inc
+
 DEPENDS = "liburcu popt libxml2 util-linux"
 RDEPENDS_${PN} = "libgcc"
-RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed python3-core"
+RRECOMMENDS_${PN} += "${LTTNGMODULES}"
+RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core"
 RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
 RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils"
 # babelstats.pl wants getopt-long
@@ -21,12 +24,11 @@
                  am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
                  PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
 "
-PACKAGECONFIG ??= "lttng-ust"
+PACKAGECONFIG ??= "${LTTNGUST}"
 PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native"
 PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust"
 PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod"
 PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
-PACKAGECONFIG_remove_arc = "lttng-ust"
 
 SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
            file://0001-tests-do-not-strip-a-helper-library.patch \
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
index ad544d1..67a4307 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
@@ -15,6 +15,8 @@
 
 inherit autotools lib_package manpages python3native
 
+include lttng-platforms.inc
+
 EXTRA_OECONF = "--disable-numa"
 
 DEPENDS = "liburcu util-linux"
