|
@@ -62,44 +62,8 @@ static inline unsigned long pte_bitop(unsigned long value, unsigned int rightshi
|
|
return ((value >> rightshift) & mask) << leftshift;
|
|
return ((value >> rightshift) & mask) << leftshift;
|
|
}
|
|
}
|
|
|
|
|
|
-/*
|
|
|
|
- * Bits _PAGE_BIT_PRESENT, _PAGE_BIT_FILE and _PAGE_BIT_PROTNONE are taken,
|
|
|
|
- * split up the 29 bits of offset into this range.
|
|
|
|
- */
|
|
|
|
-#define PTE_FILE_MAX_BITS 29
|
|
|
|
-#define PTE_FILE_SHIFT1 (_PAGE_BIT_PRESENT + 1)
|
|
|
|
-#define PTE_FILE_SHIFT2 (_PAGE_BIT_FILE + 1)
|
|
|
|
-#define PTE_FILE_SHIFT3 (_PAGE_BIT_PROTNONE + 1)
|
|
|
|
-#define PTE_FILE_BITS1 (PTE_FILE_SHIFT2 - PTE_FILE_SHIFT1 - 1)
|
|
|
|
-#define PTE_FILE_BITS2 (PTE_FILE_SHIFT3 - PTE_FILE_SHIFT2 - 1)
|
|
|
|
-
|
|
|
|
-#define PTE_FILE_MASK1 ((1U << PTE_FILE_BITS1) - 1)
|
|
|
|
-#define PTE_FILE_MASK2 ((1U << PTE_FILE_BITS2) - 1)
|
|
|
|
-
|
|
|
|
-#define PTE_FILE_LSHIFT2 (PTE_FILE_BITS1)
|
|
|
|
-#define PTE_FILE_LSHIFT3 (PTE_FILE_BITS1 + PTE_FILE_BITS2)
|
|
|
|
-
|
|
|
|
-static __always_inline pgoff_t pte_to_pgoff(pte_t pte)
|
|
|
|
-{
|
|
|
|
- return (pgoff_t)
|
|
|
|
- (pte_bitop(pte.pte_low, PTE_FILE_SHIFT1, PTE_FILE_MASK1, 0) +
|
|
|
|
- pte_bitop(pte.pte_low, PTE_FILE_SHIFT2, PTE_FILE_MASK2, PTE_FILE_LSHIFT2) +
|
|
|
|
- pte_bitop(pte.pte_low, PTE_FILE_SHIFT3, -1UL, PTE_FILE_LSHIFT3));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static __always_inline pte_t pgoff_to_pte(pgoff_t off)
|
|
|
|
-{
|
|
|
|
- return (pte_t){
|
|
|
|
- .pte_low =
|
|
|
|
- pte_bitop(off, 0, PTE_FILE_MASK1, PTE_FILE_SHIFT1) +
|
|
|
|
- pte_bitop(off, PTE_FILE_LSHIFT2, PTE_FILE_MASK2, PTE_FILE_SHIFT2) +
|
|
|
|
- pte_bitop(off, PTE_FILE_LSHIFT3, -1UL, PTE_FILE_SHIFT3) +
|
|
|
|
- _PAGE_FILE,
|
|
|
|
- };
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/* Encode and de-code a swap entry */
|
|
/* Encode and de-code a swap entry */
|
|
-#define SWP_TYPE_BITS (_PAGE_BIT_FILE - _PAGE_BIT_PRESENT - 1)
|
|
|
|
|
|
+#define SWP_TYPE_BITS 5
|
|
#define SWP_OFFSET_SHIFT (_PAGE_BIT_PROTNONE + 1)
|
|
#define SWP_OFFSET_SHIFT (_PAGE_BIT_PROTNONE + 1)
|
|
|
|
|
|
#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)
|