aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/powerpc/include/asm/page_64.h
diff options
context:
space:
mode:
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>2017-03-22 09:06:47 +0530
committerMichael Ellerman <mpe@ellerman.id.au>2017-03-31 23:09:53 +1100
commitf3207c124e7aa8d4d9cf32cc45b10ceb4defedb9 (patch)
treed6ec28c09acb59d823e5ff804a5319819d9c6fcc /arch/powerpc/include/asm/page_64.h
parentpowerpc/mm: Move hash specific pte bits to be top bits of RPN (diff)
downloadwireguard-linux-f3207c124e7aa8d4d9cf32cc45b10ceb4defedb9.tar.xz
wireguard-linux-f3207c124e7aa8d4d9cf32cc45b10ceb4defedb9.zip
powerpc/mm/slice: Convert slice_mask high slice to a bitmap
In followup patch we want to increase the va range which will result in us requiring high_slices to have more than 64 bits. To enable this convert high_slices to bitmap. We keep the number bits same in this patch and later change that to higher value Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> [mpe: Fold in fix to use bitmap_empty()] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/include/asm/page_64.h')
-rw-r--r--arch/powerpc/include/asm/page_64.h15
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
index 3e83d2a20b6f..bd55ff751938 100644
--- a/arch/powerpc/include/asm/page_64.h
+++ b/arch/powerpc/include/asm/page_64.h
@@ -98,19 +98,16 @@ extern u64 ppc64_pft_size;
#define GET_LOW_SLICE_INDEX(addr) ((addr) >> SLICE_LOW_SHIFT)
#define GET_HIGH_SLICE_INDEX(addr) ((addr) >> SLICE_HIGH_SHIFT)
+#ifndef __ASSEMBLY__
/*
- * 1 bit per slice and we have one slice per 1TB
- * Right now we support only 64TB.
- * IF we change this we will have to change the type
- * of high_slices
+ * One bit per slice. We have lower slices which cover 256MB segments
+ * upto 4G range. That gets us 16 low slices. For the rest we track slices
+ * in 1TB size.
+ * 64 below is actually SLICE_NUM_HIGH to fixup complie errros
*/
-#define SLICE_MASK_SIZE 8
-
-#ifndef __ASSEMBLY__
-
struct slice_mask {
u16 low_slices;
- u64 high_slices;
+ DECLARE_BITMAP(high_slices, 64);
};
struct mm_struct;