]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blobdiff - arch/powerpc/kernel/paca.c
powerpc/mm: Add helpers for accessing hash translation related variables
[mirror_ubuntu-focal-kernel.git] / arch / powerpc / kernel / paca.c
index 8c890c6557edea1c1335d3df1fab94685e06ec42..9cc91d03ab62170a344812b3f557c2e16f7f1171 100644 (file)
@@ -196,7 +196,11 @@ void __init allocate_paca_ptrs(void)
        paca_nr_cpu_ids = nr_cpu_ids;
 
        paca_ptrs_size = sizeof(struct paca_struct *) * nr_cpu_ids;
-       paca_ptrs = __va(memblock_phys_alloc(paca_ptrs_size, SMP_CACHE_BYTES));
+       paca_ptrs = memblock_alloc_raw(paca_ptrs_size, SMP_CACHE_BYTES);
+       if (!paca_ptrs)
+               panic("Failed to allocate %d bytes for paca pointers\n",
+                     paca_ptrs_size);
+
        memset(paca_ptrs, 0x88, paca_ptrs_size);
 }
 
@@ -263,12 +267,12 @@ void copy_mm_to_paca(struct mm_struct *mm)
 
        get_paca()->mm_ctx_id = context->id;
 #ifdef CONFIG_PPC_MM_SLICES
-       VM_BUG_ON(!mm->context.slb_addr_limit);
-       get_paca()->mm_ctx_slb_addr_limit = mm->context.slb_addr_limit;
-       memcpy(&get_paca()->mm_ctx_low_slices_psize,
-              &context->low_slices_psize, sizeof(context->low_slices_psize));
-       memcpy(&get_paca()->mm_ctx_high_slices_psize,
-              &context->high_slices_psize, TASK_SLICE_ARRAY_SZ(mm));
+       VM_BUG_ON(!mm_ctx_slb_addr_limit(context));
+       get_paca()->mm_ctx_slb_addr_limit = mm_ctx_slb_addr_limit(context);
+       memcpy(&get_paca()->mm_ctx_low_slices_psize, mm_ctx_low_slices(context),
+              LOW_SLICE_ARRAY_SZ);
+       memcpy(&get_paca()->mm_ctx_high_slices_psize, mm_ctx_high_slices(context),
+              TASK_SLICE_ARRAY_SZ(context));
 #else /* CONFIG_PPC_MM_SLICES */
        get_paca()->mm_ctx_user_psize = context->user_psize;
        get_paca()->mm_ctx_sllp = context->sllp;