arm64: make _TIF_WORK_MASK bits contiguous

Linux Kernel / Linux Kernel - Mark Rutland [arm.com] - 16 December 2020 22:08 UTC

We need the bits of _TIF_WORK_MASK to be contiguous in order to to use this as an immediate argument to an AND instruction in entry.S.

We happened to change these bits in commits:

b5a5a01d8e9a ("arm64: uaccess: remove addr_limit_user_check()") 192caabd4dd9 ("arm64: add support for TIF_NOTIFY_SIGNAL")

which each worked in isolation, but the merge resolution in commit:

005b2a9dc819 ("Merge tag 'tif-task_work.arch-2020-12-14' of git://git.kernel.dk/linux-block")

happened to make the bits non-contiguous.

Fix this by moving TIF_NOTIFY_SIGNAL to be bit 6, which is contiguous with the rest of _TIF_WORK_MASK.

Otherwise, we'll get a build-time failure as below:

arch/arm64/kernel/entry.S: Assembler messages: arch/arm64/kernel/entry.S:733: Error: immediate out of range at operand 3 -- `and x2,x19,#((1<<1)|(1<<0)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<7))' scripts/Makefile.build:360: recipe for target 'arch/arm64/kernel/entry.o' failed

Fixes: 005b2a9dc819a126 ("Merge tag 'tif-task_work.arch-2020-12-14' of git://git.kernel.dk/linux-block")

870d16757ba8 arm64: make _TIF_WORK_MASK bits contiguous
arch/arm64/include/asm/thread_info.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Upstream: git.kernel.org


  • Share