9cca6cc73b
commit c5f756d8c6265ebb1736a7787231f010a3b782e5 upstream. 32-bit PAGE_MASK can not be used as a mask for physical addresses when PAE is enabled. PAGE_MASK_PHYS must be used for physical addresses instead of PAGE_MASK. Without this, init gets SIGSEGV if pte_modify was called: | potentially unexpected fatal signal 11. | Path: /bin/busybox | CPU: 0 PID: 1 Comm: init Not tainted 5.12.0-rc5-00003-g1e43c377a79f-dirty | Insn could not be fetched | @No matching VMA found | ECR: 0x00040000 EFA: 0x00000000 ERET: 0x00000000 | STAT: 0x80080082 [IE U ] BTA: 0x00000000 | SP: 0x5f9ffe44 FP: 0x00000000 BLK: 0xaf3d4 | LPS: 0x000d093e LPE: 0x000d0950 LPC: 0x00000000 | r00: 0x00000002 r01: 0x5f9fff14 r02: 0x5f9fff20 | ... | Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b Signed-off-by: Vladimir Isaev <isaev@synopsys.com> Reported-by: kernel test robot <lkp@intel.com> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: stable@vger.kernel.org Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
/*
|
|
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef _UAPI__ASM_ARC_PAGE_H
|
|
#define _UAPI__ASM_ARC_PAGE_H
|
|
|
|
#include <linux/const.h>
|
|
|
|
/* PAGE_SHIFT determines the page size */
|
|
#if defined(CONFIG_ARC_PAGE_SIZE_16K)
|
|
#define PAGE_SHIFT 14
|
|
#elif defined(CONFIG_ARC_PAGE_SIZE_4K)
|
|
#define PAGE_SHIFT 12
|
|
#else
|
|
/*
|
|
* Default 8k
|
|
* done this way (instead of under CONFIG_ARC_PAGE_SIZE_8K) because adhoc
|
|
* user code (busybox appletlib.h) expects PAGE_SHIFT to be defined w/o
|
|
* using the correct uClibc header and in their build our autoconf.h is
|
|
* not available
|
|
*/
|
|
#define PAGE_SHIFT 13
|
|
#endif
|
|
|
|
#define PAGE_SIZE _BITUL(PAGE_SHIFT) /* Default 8K */
|
|
#define PAGE_OFFSET _AC(0x80000000, UL) /* Kernel starts at 2G onwrds */
|
|
|
|
#define PAGE_MASK (~(PAGE_SIZE-1))
|
|
|
|
#endif /* _UAPI__ASM_ARC_PAGE_H */
|