Merge branch '2023-02-23-assorted-fixes'

- btrfs bugfix, silence a bunch of gcc-12.2 linker warnings finally,
  relax one of the trace test time requirements (so CI doesn't fail due
  to test being slightly slow, but still correct), and correct env on
  MMC and checking for where GPT can be
This commit is contained in:
Tom Rini 2023-02-23 17:30:49 -05:00
commit 0b58258a33
5 changed files with 16 additions and 7 deletions

View File

@ -806,6 +806,7 @@ KBUILD_CPPFLAGS += $(KCPPFLAGS)
KBUILD_AFLAGS += $(KAFLAGS) KBUILD_AFLAGS += $(KAFLAGS)
KBUILD_CFLAGS += $(KCFLAGS) KBUILD_CFLAGS += $(KCFLAGS)
KBUILD_LDFLAGS += -z noexecstack
KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments) KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments)
KBUILD_HOSTCFLAGS += $(if $(CONFIG_TOOLS_DEBUG),-g) KBUILD_HOSTCFLAGS += $(if $(CONFIG_TOOLS_DEBUG),-g)

View File

@ -37,7 +37,8 @@ KBUILD_LDFLAGS += -m $(if $(IS_32BIT),elf_i386,elf_x86_64)
# This is used in the top-level Makefile which does not include # This is used in the top-level Makefile which does not include
# KBUILD_LDFLAGS # 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 \ OBJCOPYFLAGS_EFI := -j .text -j .sdata -j .data -j .dynamic -j .dynsym \
-j .rel -j .rela -j .reloc --strip-all -j .rel -j .rela -j .reloc --strip-all

12
env/mmc.c vendored
View File

@ -94,7 +94,7 @@ static inline int mmc_offset_try_partition(const char *str, int copy, s64 *val)
return 0; return 0;
} }
static inline s64 mmc_offset(int copy) static inline s64 mmc_offset(struct mmc *mmc, int copy)
{ {
const struct { const struct {
const char *offset_redund; const char *offset_redund;
@ -108,8 +108,12 @@ static inline s64 mmc_offset(int copy)
s64 val = 0, defvalue; s64 val = 0, defvalue;
const char *propname; const char *propname;
const char *str; const char *str;
int hwpart = 0;
int err; 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 */ /* look for the partition in mmc CONFIG_SYS_MMC_ENV_DEV */
str = ofnode_conf_read_str(dt_prop.partition); str = ofnode_conf_read_str(dt_prop.partition);
if (str) { if (str) {
@ -121,7 +125,7 @@ static inline s64 mmc_offset(int copy)
} }
/* try the GPT partition with "U-Boot ENV" TYPE GUID */ /* 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); err = mmc_offset_try_partition(NULL, copy, &val);
if (!err) if (!err)
return val; return val;
@ -138,7 +142,7 @@ static inline s64 mmc_offset(int copy)
return ofnode_conf_read_int(propname, defvalue); return ofnode_conf_read_int(propname, defvalue);
} }
#else #else
static inline s64 mmc_offset(int copy) static inline s64 mmc_offset(struct mmc *mmc, int copy)
{ {
s64 offset = ENV_MMC_OFFSET; s64 offset = ENV_MMC_OFFSET;
@ -151,7 +155,7 @@ static inline s64 mmc_offset(int copy)
__weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr) __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) { if (offset == ENV_MMC_INVALID_OFFSET) {
printf("Invalid ENV offset in MMC, copy=%d\n", copy); printf("Invalid ENV offset in MMC, copy=%d\n", copy);

View File

@ -956,6 +956,7 @@ int __btrfs_map_block(struct btrfs_fs_info *fs_info, int rw,
struct btrfs_mapping_tree *map_tree = &fs_info->mapping_tree; struct btrfs_mapping_tree *map_tree = &fs_info->mapping_tree;
struct cache_extent *ce; struct cache_extent *ce;
struct map_lookup *map; struct map_lookup *map;
u64 orig_len = *length;
u64 offset; u64 offset;
u64 stripe_offset; u64 stripe_offset;
u64 *raid_map = NULL; u64 *raid_map = NULL;
@ -1047,6 +1048,7 @@ again:
} else { } else {
*length = ce->size - offset; *length = ce->size - offset;
} }
*length = min_t(u64, *length, orig_len);
if (!multi_ret) if (!multi_ret)
goto out; goto out;

View File

@ -299,6 +299,7 @@ def test_trace(u_boot_console):
fg_time = check_flamegraph(cons, fname, proftool, map_fname, trace_fg) 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) diff = abs(fg_time - dm_f_time)
assert diff / dm_f_time < 0.1 assert diff / dm_f_time < 0.3