lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 16 Dec 2020 22:04:22 +0000
From:   Mark Rutland <mark.rutland@....com>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     Jens Axboe <axboe@...nel.dk>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        pr-tracker-bot@...nel.org, catalin.marinas@....com, will@...nel.org
Subject: [PATCH] arm64: make _TIF_WORK_MASK bits contiguous (was: Re: [GIT
 PULL] TIF_NOTIFY_SIGNAL for all archs)

Hi Linus,

On Wed, Dec 16, 2020 at 09:17:39PM +0000, pr-tracker-bot@...nel.org wrote:
> > git://git.kernel.dk/linux-block.git tags/tif-task_work.arch-2020-12-14
> 
> has been merged into torvalds/linux.git:
> https://git.kernel.org/torvalds/c/005b2a9dc819a1265a8c765595f8f6d88d6173d9

Unfortunately the merge resolution broke the build for arm64 -- could
you please apply the fixup below? IIUC that matches what we did in
linux-next, and builds fine locally.

Thanks,
Mark.

---->8----
>From da1826cc5132bb9d46aebdb47fa033f94825a697 Mon Sep 17 00:00:00 2001
From: Mark Rutland <mark.rutland@....com>
Date: Wed, 16 Dec 2020 21:32:48 +0000
Subject: [PATCH] arm64: make _TIF_WORK_MASK bits contiguous

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:

  b5a5a01d8e9a44ec ("arm64: uaccess: remove addr_limit_user_check()")
  192caabd4dd92c98 ("arm64: add support for TIF_NOTIFY_SIGNAL")

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

  005b2a9dc819a126 ("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
| make[2]: *** [arch/arm64/kernel/entry.o] Error 1
| scripts/Makefile.build:496: recipe for target 'arch/arm64/kernel' failed
| make[1]: *** [arch/arm64/kernel] Error 2
| Makefile:1805: recipe for target 'arch/arm64' failed
| make: *** [arch/arm64] Error 2

Fixes: 005b2a9dc819a126 ("Merge tag 'tif-task_work.arch-2020-12-14' of git://git.kernel.dk/linux-block")
Signed-off-by: Mark Rutland <mark.rutland@....com>
Cc: Catalin Marinas <catalin.marinas@....com>
Cc: Will Deacon <will@...nel.org>
---
 arch/arm64/include/asm/thread_info.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
index b24056a0b02b..9f4e3b266f21 100644
--- a/arch/arm64/include/asm/thread_info.h
+++ b/arch/arm64/include/asm/thread_info.h
@@ -64,7 +64,7 @@ void arch_release_task_struct(struct task_struct *tsk);
 #define TIF_FOREIGN_FPSTATE	3	/* CPU's FP state is not current's */
 #define TIF_UPROBE		4	/* uprobe breakpoint or singlestep */
 #define TIF_MTE_ASYNC_FAULT	5	/* MTE Asynchronous Tag Check Fault */
-#define TIF_NOTIFY_SIGNAL	7	/* signal notifications exist */
+#define TIF_NOTIFY_SIGNAL	6	/* signal notifications exist */
 #define TIF_SYSCALL_TRACE	8	/* syscall trace active */
 #define TIF_SYSCALL_AUDIT	9	/* syscall auditing */
 #define TIF_SYSCALL_TRACEPOINT	10	/* syscall tracepoint for ftrace */
-- 
2.11.0

Powered by blists - more mailing lists