arm: drop L_PTE_FILE and pte_file()-related helpers
We've replaced remap_file_pages(2) implementation with emulation. Nobody creates non-linear mapping anymore. This patch also adjust __SWP_TYPE_SHIFT, effectively increase size of possible swap file to 128G. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9b3e661e58
commit
b007ea798f
|
@ -118,7 +118,6 @@
|
||||||
#define L_PTE_VALID (_AT(pteval_t, 1) << 0) /* Valid */
|
#define L_PTE_VALID (_AT(pteval_t, 1) << 0) /* Valid */
|
||||||
#define L_PTE_PRESENT (_AT(pteval_t, 1) << 0)
|
#define L_PTE_PRESENT (_AT(pteval_t, 1) << 0)
|
||||||
#define L_PTE_YOUNG (_AT(pteval_t, 1) << 1)
|
#define L_PTE_YOUNG (_AT(pteval_t, 1) << 1)
|
||||||
#define L_PTE_FILE (_AT(pteval_t, 1) << 2) /* only when !PRESENT */
|
|
||||||
#define L_PTE_DIRTY (_AT(pteval_t, 1) << 6)
|
#define L_PTE_DIRTY (_AT(pteval_t, 1) << 6)
|
||||||
#define L_PTE_RDONLY (_AT(pteval_t, 1) << 7)
|
#define L_PTE_RDONLY (_AT(pteval_t, 1) << 7)
|
||||||
#define L_PTE_USER (_AT(pteval_t, 1) << 8)
|
#define L_PTE_USER (_AT(pteval_t, 1) << 8)
|
||||||
|
|
|
@ -77,7 +77,6 @@
|
||||||
*/
|
*/
|
||||||
#define L_PTE_VALID (_AT(pteval_t, 1) << 0) /* Valid */
|
#define L_PTE_VALID (_AT(pteval_t, 1) << 0) /* Valid */
|
||||||
#define L_PTE_PRESENT (_AT(pteval_t, 3) << 0) /* Present */
|
#define L_PTE_PRESENT (_AT(pteval_t, 3) << 0) /* Present */
|
||||||
#define L_PTE_FILE (_AT(pteval_t, 1) << 2) /* only when !PRESENT */
|
|
||||||
#define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */
|
#define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */
|
||||||
#define L_PTE_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
|
#define L_PTE_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
|
||||||
#define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */
|
#define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */
|
||||||
|
|
|
@ -54,8 +54,6 @@
|
||||||
|
|
||||||
typedef pte_t *pte_addr_t;
|
typedef pte_t *pte_addr_t;
|
||||||
|
|
||||||
static inline int pte_file(pte_t pte) { return 0; }
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ZERO_PAGE is a global shared page that is always zero: used
|
* ZERO_PAGE is a global shared page that is always zero: used
|
||||||
* for zero-mapped memory areas etc..
|
* for zero-mapped memory areas etc..
|
||||||
|
|
|
@ -318,12 +318,12 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
||||||
*
|
*
|
||||||
* 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
* 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
||||||
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
||||||
* <--------------- offset ----------------------> < type -> 0 0 0
|
* <--------------- offset ------------------------> < type -> 0 0
|
||||||
*
|
*
|
||||||
* This gives us up to 31 swap files and 64GB per swap file. Note that
|
* This gives us up to 31 swap files and 128GB per swap file. Note that
|
||||||
* the offset field is always non-zero.
|
* the offset field is always non-zero.
|
||||||
*/
|
*/
|
||||||
#define __SWP_TYPE_SHIFT 3
|
#define __SWP_TYPE_SHIFT 2
|
||||||
#define __SWP_TYPE_BITS 5
|
#define __SWP_TYPE_BITS 5
|
||||||
#define __SWP_TYPE_MASK ((1 << __SWP_TYPE_BITS) - 1)
|
#define __SWP_TYPE_MASK ((1 << __SWP_TYPE_BITS) - 1)
|
||||||
#define __SWP_OFFSET_SHIFT (__SWP_TYPE_BITS + __SWP_TYPE_SHIFT)
|
#define __SWP_OFFSET_SHIFT (__SWP_TYPE_BITS + __SWP_TYPE_SHIFT)
|
||||||
|
@ -342,20 +342,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
|
||||||
*/
|
*/
|
||||||
#define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
|
#define MAX_SWAPFILES_CHECK() BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
|
||||||
|
|
||||||
/*
|
|
||||||
* Encode and decode a file entry. File entries are stored in the Linux
|
|
||||||
* page tables as follows:
|
|
||||||
*
|
|
||||||
* 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
|
|
||||||
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
|
|
||||||
* <----------------------- offset ------------------------> 1 0 0
|
|
||||||
*/
|
|
||||||
#define pte_file(pte) (pte_val(pte) & L_PTE_FILE)
|
|
||||||
#define pte_to_pgoff(x) (pte_val(x) >> 3)
|
|
||||||
#define pgoff_to_pte(x) __pte(((x) << 3) | L_PTE_FILE)
|
|
||||||
|
|
||||||
#define PTE_FILE_MAX_BITS 29
|
|
||||||
|
|
||||||
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
|
/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */
|
||||||
/* FIXME: this is not correct */
|
/* FIXME: this is not correct */
|
||||||
#define kern_addr_valid(addr) (1)
|
#define kern_addr_valid(addr) (1)
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
#endif
|
#endif
|
||||||
#if !defined (CONFIG_ARM_LPAE) && \
|
#if !defined (CONFIG_ARM_LPAE) && \
|
||||||
(L_PTE_XN+L_PTE_USER+L_PTE_RDONLY+L_PTE_DIRTY+L_PTE_YOUNG+\
|
(L_PTE_XN+L_PTE_USER+L_PTE_RDONLY+L_PTE_DIRTY+L_PTE_YOUNG+\
|
||||||
L_PTE_FILE+L_PTE_PRESENT) > L_PTE_SHARED
|
L_PTE_PRESENT) > L_PTE_SHARED
|
||||||
#error Invalid Linux PTE bit settings
|
#error Invalid Linux PTE bit settings
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_MMU */
|
#endif /* CONFIG_MMU */
|
||||||
|
|
Loading…
Reference in New Issue