Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] arm: redundant TIF_FD_SLOTS check due to bit-shift overlap --
commit bdf52635177f575c1b58cdb7e902386551a36647 Author: Christian Brauner <[email protected]> ARM: commit fds on syscall exit Add TIF_FD_SLOTS and test it where the syscall return path decides between the syscall work and the plain work pending slow path. A task that reserved descriptors goes through __sys_trace_return_nosave where syscall_trace_exit() commits them before audit and the ptrace exit stop. > diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S > index 88336a1292bb7..59a70d90b0b61 100644 > --- a/arch/arm/kernel/entry-common.S > +++ b/arch/arm/kernel/entry-common.S [ ... ] > @@ -83,6 +83,8 @@ ENDPROC(ret_fast_syscall) > > tst r1, #_TIF_SYSCALL_WORK > bne __sys_trace_return_nosave > + tst r1, #(_TIF_FD_SLOTS << 16) @ r1 holds TI_FLAGS << 16 > + bne __sys_trace_return_nosave [Severity: Low] Is this newly added check reachable? The preceding tst r1, #_TIF_SYSCALL_WORK instruction appears to intercept the branch because it inadvertently catches this condition. In ret_fast_syscall, r1 is loaded with TI_FLAGS << 16. TIF_FD_SLOTS is bit 5, so shifting it by 16 places it at bit 21 in r1. _TIF_SYSCALL_WORK naturally includes bit 21 (_TIF_SYSCALL_AUDIT). Because of this bit-shift overlap, the first test against _TIF_SYSCALL_WORK will evaluate to non-zero whenever TIF_FD_SLOTS is set. This means the branch to __sys_trace_return_nosave is taken early, making the new tst instruction unreachable dead code. -- Sashiko AI review ยท https://sashiko.dev/#/patchset/20260915-work-fd-reserve-unify-folded-v1-0-4d5217d6b...@kernel.org?part=5
