save_area
} save_area[SLB_NUM_BOLTED];
OFFSET(SLBSHADOW_STACKVSID, slb_shadow, save_area[SLB_NUM_BOLTED - 1].vsid);
OFFSET(SLBSHADOW_STACKESID, slb_shadow, save_area[SLB_NUM_BOLTED - 1].esid);
OFFSET(SLBSHADOW_SAVEAREA, slb_shadow, save_area);
if ((void *) &slb->save_area[n] > vcpu->arch.slb_shadow.pinned_end)
unsigned long rb = be64_to_cpu(slb->save_area[i].esid);
unsigned long rs = be64_to_cpu(slb->save_area[i].vsid);
: "r" (be64_to_cpu(p->save_area[index].vsid)),
"r" (be64_to_cpu(p->save_area[index].esid)));
ksp_esid_data = be64_to_cpu(p->save_area[KSTACK_INDEX].esid);
ksp_vsid_data = be64_to_cpu(p->save_area[KSTACK_INDEX].vsid);
WRITE_ONCE(p->save_area[index].esid, 0);
WRITE_ONCE(p->save_area[index].vsid, cpu_to_be64(mk_vsid_data(ea, ssize, flags)));
WRITE_ONCE(p->save_area[index].esid, cpu_to_be64(mk_esid_data(ea, ssize, index)));
WRITE_ONCE(get_slb_shadow()->save_area[index].esid, cpu_to_be64(index));
esid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].esid);
vsid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid);
struct save_area;
struct save_area * __init save_area_alloc(bool is_boot_cpu);
struct save_area * __init save_area_boot_cpu(void);
void __init save_area_add_regs(struct save_area *, void *regs);
void __init save_area_add_vxrs(struct save_area *, __vector128 *vxrs);
__u64 save_area[8]; /* 0x0200 */
OFFSET(__LC_SAVE_AREA, lowcore, save_area);
void __init save_area_add_vxrs(struct save_area *sa, __vector128 *vxrs)
static void *fill_cpu_elf_notes(void *ptr, int cpu, struct save_area *sa)
struct save_area *sa = NULL;
struct save_area *sa;
struct save_area *sa;
struct save_area * __init save_area_alloc(bool is_boot_cpu)
struct save_area *sa;
struct save_area * __init save_area_boot_cpu(void)
return list_first_entry_or_null(&dump_save_areas, struct save_area, list);
void __init save_area_add_regs(struct save_area *sa, void *regs)
struct save_area *sa;
struct save_area *sa;
return &sd->save_area->host_sev_es_save;
if (!sd->save_area)
sd->save_area = NULL;
sd->save_area = page_address(save_area_page);
struct vmcb *save_area;
struct save_area *sa;
save_area,
struct vmcb_save_area *save_area; /* gva */
svm->save_area = (void *)vm_vaddr_alloc_page(vm);
svm->save_area_hva = addr_gva2hva(vm, (uintptr_t)svm->save_area);
svm->save_area_gpa = addr_gva2gpa(vm, (uintptr_t)svm->save_area);