ISA v3.1 does not support the SAO storage control attribute required to implement PROT_SAO. PROT_SAO was used by specialised system software (Lx86) that has been discontinued for about 7 years, and is not thought to be used elsewhere, so removal should not cause problems. We rather remove it than keep support for older processors, because live migrating guest partitions to newer processors may not be possible if SAO is in use (or worse allowed with silent races). - PROT_SAO stays in the uapi header so code using it would still build. - arch_validate_prot() is removed, the generic version rejects PROT_SAO so applications would get a failure at mmap() time. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> [mpe: Drop KVM change for the time being] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200703011958.1166620-3-npiggin@gmail.com
36 lines
1.3 KiB
C
36 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
|
/*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*/
|
|
#ifndef _UAPI_ASM_POWERPC_MMAN_H
|
|
#define _UAPI_ASM_POWERPC_MMAN_H
|
|
|
|
#include <asm-generic/mman-common.h>
|
|
|
|
|
|
#define PROT_SAO 0x10 /* Unsupported since v5.9 */
|
|
|
|
#define MAP_RENAME MAP_ANONYMOUS /* In SunOS terminology */
|
|
#define MAP_NORESERVE 0x40 /* don't reserve swap pages */
|
|
#define MAP_LOCKED 0x80
|
|
|
|
#define MAP_GROWSDOWN 0x0100 /* stack-like segment */
|
|
#define MAP_DENYWRITE 0x0800 /* ETXTBSY */
|
|
#define MAP_EXECUTABLE 0x1000 /* mark it as an executable */
|
|
|
|
|
|
#define MCL_CURRENT 0x2000 /* lock all currently mapped pages */
|
|
#define MCL_FUTURE 0x4000 /* lock all additions to address space */
|
|
#define MCL_ONFAULT 0x8000 /* lock all pages that are faulted in */
|
|
|
|
/* Override any generic PKEY permission defines */
|
|
#define PKEY_DISABLE_EXECUTE 0x4
|
|
#undef PKEY_ACCESS_MASK
|
|
#define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\
|
|
PKEY_DISABLE_WRITE |\
|
|
PKEY_DISABLE_EXECUTE)
|
|
#endif /* _UAPI_ASM_POWERPC_MMAN_H */
|