aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/copro_fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/mm/copro_fault.c')
-rw-r--r--arch/powerpc/mm/copro_fault.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c
index c8da352e8686..f137286740cb 100644
--- a/arch/powerpc/mm/copro_fault.c
+++ b/arch/powerpc/mm/copro_fault.c
@@ -105,7 +105,7 @@ int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb)
105 u64 vsid, vsidkey; 105 u64 vsid, vsidkey;
106 int psize, ssize; 106 int psize, ssize;
107 107
108 switch (REGION_ID(ea)) { 108 switch (get_region_id(ea)) {
109 case USER_REGION_ID: 109 case USER_REGION_ID:
110 pr_devel("%s: 0x%llx -- USER_REGION_ID\n", __func__, ea); 110 pr_devel("%s: 0x%llx -- USER_REGION_ID\n", __func__, ea);
111 if (mm == NULL) 111 if (mm == NULL)
@@ -117,16 +117,20 @@ int copro_calculate_slb(struct mm_struct *mm, u64 ea, struct copro_slb *slb)
117 break; 117 break;
118 case VMALLOC_REGION_ID: 118 case VMALLOC_REGION_ID:
119 pr_devel("%s: 0x%llx -- VMALLOC_REGION_ID\n", __func__, ea); 119 pr_devel("%s: 0x%llx -- VMALLOC_REGION_ID\n", __func__, ea);
120 if (ea < VMALLOC_END) 120 psize = mmu_vmalloc_psize;
121 psize = mmu_vmalloc_psize;
122 else
123 psize = mmu_io_psize;
124 ssize = mmu_kernel_ssize; 121 ssize = mmu_kernel_ssize;
125 vsid = get_kernel_vsid(ea, mmu_kernel_ssize); 122 vsid = get_kernel_vsid(ea, mmu_kernel_ssize);
126 vsidkey = SLB_VSID_KERNEL; 123 vsidkey = SLB_VSID_KERNEL;
127 break; 124 break;
128 case KERNEL_REGION_ID: 125 case IO_REGION_ID:
129 pr_devel("%s: 0x%llx -- KERNEL_REGION_ID\n", __func__, ea); 126 pr_devel("%s: 0x%llx -- IO_REGION_ID\n", __func__, ea);
127 psize = mmu_io_psize;
128 ssize = mmu_kernel_ssize;
129 vsid = get_kernel_vsid(ea, mmu_kernel_ssize);
130 vsidkey = SLB_VSID_KERNEL;
131 break;
132 case LINEAR_MAP_REGION_ID:
133 pr_devel("%s: 0x%llx -- LINEAR_MAP_REGION_ID\n", __func__, ea);
130 psize = mmu_linear_psize; 134 psize = mmu_linear_psize;
131 ssize = mmu_kernel_ssize; 135 ssize = mmu_kernel_ssize;
132 vsid = get_kernel_vsid(ea, mmu_kernel_ssize); 136 vsid = get_kernel_vsid(ea, mmu_kernel_ssize);