openwrt/target
Mieczyslaw Nalewaj f7005097ae
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
mt7620: workaround jal imm26 and redundant PAGE_ALIGN
On MT7620-class platforms (CONFIG_NET_RALINK_MT7620) we observe sporadic
wrong-jump-targets, kernel oopses, hanging, corrupted backtraces or even
"half-written" instructions when the compiler emits a direct 'jal imm26'
call.
This is triggered in:
  - the small random helpers inside get_random_u32_below(), and
  - the blkcg_maybe_throttle_current() call in resume_user_mode_work().

This patch forces those two call sites to use an indirect call via
a volatile function pointer (load into register + jalr) when building
for MT7620, avoiding embedding a 26-bit immediate jump target.

Additionally, on MT7620 builds the exec path in fs/exec.c is modified:
  - skip arch_align_stack() + PAGE_ALIGN() in setup_arg_pages()
    because the micro-randomization (< PAGE_SIZE) implemented by many
    ports (including MT7620) is negated immediately by PAGE_ALIGN().
    Skipping the redundant PAGE_ALIGN() reduces exposure to the
    problematic code pattern.

These changes are targeted workarounds for MT7620; behavioral logic is unchanged.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/20553
(cherry picked from commit 22ccb445e6)
Link: https://github.com/openwrt/openwrt/pull/22216
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-03-01 11:21:05 +01:00
..
imagebuilder imagebuilder: move handling of DEFAULT_PACKAGES into shareable place 2025-01-03 11:14:12 +01:00
linux mt7620: workaround jal imm26 and redundant PAGE_ALIGN 2026-03-01 11:21:05 +01:00
llvm-bpf build: use zstd for IB, toolchain, SDK and LLVM compression 2024-04-13 08:05:04 +02:00
sdk sdk: invert logic for GIT_BRANCH and GIT_TAGNAME 2025-12-04 19:25:13 +01:00
toolchain build: use zstd for IB, toolchain, SDK and LLVM compression 2024-04-13 08:05:04 +02:00
Config.in loongarch64: new target 2024-05-04 14:14:16 +08:00
Makefile build: add $(STAGING_DIR) and $(BIN_DIR) preparation to target and package subdir compile dependencies 2024-03-03 23:13:59 +01:00