process_64.c (1136fa0c07de570dc17858745af8be169d1440ba) process_64.c (83a44a4f47ad20997aebb311fc678a13cde391d7)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 1995 Linus Torvalds
4 *
5 * Pentium III FXSR, SSE support
6 * Gareth Hughes <gareth@valinux.com>, May 2000
7 *
8 * X86-64 port

--- 667 unchanged lines hidden (view full) ---

676 But 64bit processes have always behaved this way,
677 so it's not too bad. The main problem is just that
678 32bit children are affected again. */
679 current->personality &= ~READ_IMPLIES_EXEC;
680}
681
682static void __set_personality_x32(void)
683{
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 1995 Linus Torvalds
4 *
5 * Pentium III FXSR, SSE support
6 * Gareth Hughes <gareth@valinux.com>, May 2000
7 *
8 * X86-64 port

--- 667 unchanged lines hidden (view full) ---

676 But 64bit processes have always behaved this way,
677 so it's not too bad. The main problem is just that
678 32bit children are affected again. */
679 current->personality &= ~READ_IMPLIES_EXEC;
680}
681
682static void __set_personality_x32(void)
683{
684#ifdef CONFIG_X86_X32
684#ifdef CONFIG_X86_X32_ABI
685 if (current->mm)
686 current->mm->context.flags = 0;
687
688 current->personality &= ~READ_IMPLIES_EXEC;
689 /*
690 * in_32bit_syscall() uses the presence of the x32 syscall bit
691 * flag to determine compat status. The x86 mmap() code relies on
692 * the syscall bitness so set x32 syscall bit right here to make

--- 170 unchanged lines hidden ---
685 if (current->mm)
686 current->mm->context.flags = 0;
687
688 current->personality &= ~READ_IMPLIES_EXEC;
689 /*
690 * in_32bit_syscall() uses the presence of the x32 syscall bit
691 * flag to determine compat status. The x86 mmap() code relies on
692 * the syscall bitness so set x32 syscall bit right here to make

--- 170 unchanged lines hidden ---