Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-tegra
diff --git a/Makefile b/Makefile
index 54f894d..bc1ee94 100644
--- a/Makefile
+++ b/Makefile
@@ -806,6 +806,7 @@
 KBUILD_AFLAGS += $(KAFLAGS)
 KBUILD_CFLAGS += $(KCFLAGS)
 
+KBUILD_LDFLAGS  += -z noexecstack
 KBUILD_LDFLAGS  += $(call ld-option,--no-warn-rwx-segments)
 
 KBUILD_HOSTCFLAGS += $(if $(CONFIG_TOOLS_DEBUG),-g)
diff --git a/arch/x86/config.mk b/arch/x86/config.mk
index a4a694d..26ec1af 100644
--- a/arch/x86/config.mk
+++ b/arch/x86/config.mk
@@ -37,7 +37,8 @@
 
 # This is used in the top-level Makefile which does not include
 # KBUILD_LDFLAGS
-LDFLAGS_EFI_PAYLOAD := -Bsymbolic -Bsymbolic-functions -shared --no-undefined -s
+LDFLAGS_EFI_PAYLOAD := -Bsymbolic -Bsymbolic-functions -shared --no-undefined \
+		       -s -zexecstack
 
 OBJCOPYFLAGS_EFI := -j .text -j .sdata -j .data -j .dynamic -j .dynsym \
 	-j .rel -j .rela -j .reloc --strip-all
diff --git a/doc/usage/cmd/ebtupdate.rst b/doc/usage/cmd/ebtupdate.rst
index 040cef3..d90474c 100644
--- a/doc/usage/cmd/ebtupdate.rst
+++ b/doc/usage/cmd/ebtupdate.rst
@@ -1,7 +1,7 @@
 .. SPDX-License-Identifier: GPL-2.0+:
 
 ebtupdate command
-=============
+=================
 
 Synopsis
 --------
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index cde7dcb..840c20c 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -41,6 +41,7 @@
    cmd/conitrace
    cmd/cyclic
    cmd/dm
+   cmd/ebtupdate
    cmd/echo
    cmd/eficonfig
    cmd/env
diff --git a/env/mmc.c b/env/mmc.c
index 5b01f65..7a5836a 100644
--- a/env/mmc.c
+++ b/env/mmc.c
@@ -94,7 +94,7 @@
 	return 0;
 }
 
-static inline s64 mmc_offset(int copy)
+static inline s64 mmc_offset(struct mmc *mmc, int copy)
 {
 	const struct {
 		const char *offset_redund;
@@ -108,8 +108,12 @@
 	s64 val = 0, defvalue;
 	const char *propname;
 	const char *str;
+	int hwpart = 0;
 	int err;
 
+	if (IS_ENABLED(CONFIG_SYS_MMC_ENV_PART))
+		hwpart = mmc_get_env_part(mmc);
+
 	/* look for the partition in mmc CONFIG_SYS_MMC_ENV_DEV */
 	str = ofnode_conf_read_str(dt_prop.partition);
 	if (str) {
@@ -121,7 +125,7 @@
 	}
 
 	/* try the GPT partition with "U-Boot ENV" TYPE GUID */
-	if (IS_ENABLED(CONFIG_PARTITION_TYPE_GUID)) {
+	if (IS_ENABLED(CONFIG_PARTITION_TYPE_GUID) && hwpart == 0) {
 		err = mmc_offset_try_partition(NULL, copy, &val);
 		if (!err)
 			return val;
@@ -138,7 +142,7 @@
 	return ofnode_conf_read_int(propname, defvalue);
 }
 #else
-static inline s64 mmc_offset(int copy)
+static inline s64 mmc_offset(struct mmc *mmc, int copy)
 {
 	s64 offset = ENV_MMC_OFFSET;
 
@@ -151,7 +155,7 @@
 
 __weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr)
 {
-	s64 offset = mmc_offset(copy);
+	s64 offset = mmc_offset(mmc, copy);
 
 	if (offset == ENV_MMC_INVALID_OFFSET) {
 		printf("Invalid ENV offset in MMC, copy=%d\n", copy);
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 4aaaeab..7d4095d 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -956,6 +956,7 @@
 	struct btrfs_mapping_tree *map_tree = &fs_info->mapping_tree;
 	struct cache_extent *ce;
 	struct map_lookup *map;
+	u64 orig_len = *length;
 	u64 offset;
 	u64 stripe_offset;
 	u64 *raid_map = NULL;
@@ -1047,6 +1048,7 @@
 	} else {
 		*length = ce->size - offset;
 	}
+	*length = min_t(u64, *length, orig_len);
 
 	if (!multi_ret)
 		goto out;
diff --git a/test/py/tests/test_trace.py b/test/py/tests/test_trace.py
index 14584d1..ac3e959 100644
--- a/test/py/tests/test_trace.py
+++ b/test/py/tests/test_trace.py
@@ -299,6 +299,7 @@
 
     fg_time = check_flamegraph(cons, fname, proftool, map_fname, trace_fg)
 
-    # Check that bootstage and flamegraph agree to within 10%
+    # Check that bootstage and flamegraph agree to within 30%
+    # This allows for CI being slow to run
     diff = abs(fg_time - dm_f_time)
-    assert diff / dm_f_time < 0.1
+    assert diff / dm_f_time < 0.3