Key: ELF symbol (primary) ELF symbol source (with column ║) frame instruction +variable (range start) -variable (range end) inlining control-flow forwards branch ──> backwards branch ══>Compilation unit 000099e8 0000a6b8 arch/arm64/kvm/hyp/nvhe/setup.c
instructions
header
.debug_abbrev die abbreviation table
.debug_info die tree
.debug_line line number info
.debug_line evaluated line info
simple die tree
simple die tree globals
simple die tree locals
inlined subroutine info
inlined subroutine info by range
**000099e8 <__kvm_hyp_protect_finalise>:
000099e8 <$x>:
+ __kvm_hyp_protect_finalise params: none
__kvm_hyp_protect_finalise:175.0 (setup.c) Sbepe ║{
+host_data var pointer(struct kvm_host_data<6c1ec>/<6c7d7>) 0x99e8 0x9b28 (DW_OP_fbreg -0x8) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
+host_ctxt var pointer(struct kvm_cpu_context<6c1ec>/<6c7fa>) 0x99e8 0x9b28 (DW_OP_breg31 0x20) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:177
+nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x99e8 0x9b28 (DW_OP_breg31 0x18) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:178
+used_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x99e8 0x9b28 (DW_OP_breg31 0x10) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:178
+ret var int (base type, DW_ATE_signed size:4) 0x99e8 0x9b28 (DW_OP_breg31 0xc) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:179
~ 000099e8: d10183ff sub sp, sp, #0x60
~ 000099ec: a9057bfd stp x29, x30, [sp, #80]
000099e8 CFA:r31 r29:u r30:u
~ 000099f0: 910143fd add x29, sp, #0x50
__kvm_hyp_protect_finalise:176.36 (setup.c) SbePe struct kvm_host_data *host_data = ║this_cpu_ptr(&kvm_host_data);
~ ┌─000099f4: 14000001 b 99f8 <__kvm_hyp_protect_finalise+0x10>
│
~ └>000099f8: aa1f03e8 mov x8, xzr <- 000099f4(b)<__kvm_hyp_protect_finalise+0x10>
__kvm_hyp_protect_finalise:176.36 (setup.c) sbepe struct kvm_host_data *host_data = ║this_cpu_ptr(&kvm_host_data);
+__vpp_verify var pointer(const(no type)) 0x99fc 0x9a04 (DW_OP_fbreg -0x10) lexblock:__kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
~ 000099fc: f81f03a8 stur x8, [x29, #-16]
~ ┌─00009a00: 14000001 b 9a04 <__kvm_hyp_protect_finalise+0x1c>
-__vpp_verify var pointer(const(no type)) 0x99fc 0x9a04 (DW_OP_fbreg -0x10) lexblock:__kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
│
│ __kvm_hyp_protect_finalise:176.36 (setup.c) sbepe struct kvm_host_data *host_data = ║this_cpu_ptr(&kvm_host_data);
+__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9a04 0x9a2c (DW_OP_fbreg -0x20) lexblock:__kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
~ └>00009a04: 90000088 adrp x8, 19000 <kvm_host_data> <- 00009a00(b)<__kvm_hyp_protect_finalise+0x1c>
~ 00009a08: 91000108 add x8, x8, #0x0
~ 00009a0c: f81e03a8 stur x8, [x29, #-32]
~ 00009a10: f85e03a8 ldur x8, [x29, #-32]
~ 00009a14: f90003e8 str x8, [sp]
~ 00009a18: 94000044 bl 9b28 <__hyp_my_cpu_offset>
~ 00009a1c: f94003e8 ldr x8, [sp] <- 00009a18(bl-succ)<return>
~ 00009a20: 8b000108 add x8, x8, x0
~ 00009a24: f90017e8 str x8, [sp, #40]
~ 00009a28: f94017e8 ldr x8, [sp, #40]
-__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9a04 0x9a2c (DW_OP_fbreg -0x20) lexblock:__kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
__kvm_hyp_protect_finalise:176.36 (setup.c) sbepe struct kvm_host_data *host_data = ║this_cpu_ptr(&kvm_host_data);
+__vpp_verify var pointer(const(no type)) 0x9a2c 0x9a30 (DW_OP_fbreg -0x10) lexblock:__kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
~ 00009a2c: f81e83a8 stur x8, [x29, #-24]
-__vpp_verify var pointer(const(no type)) 0x9a2c 0x9a30 (DW_OP_fbreg -0x10) lexblock:__kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
__kvm_hyp_protect_finalise:176.36 (setup.c) sbepe struct kvm_host_data *host_data = ║this_cpu_ptr(&kvm_host_data);
~ 00009a30: f85e83a8 ldur x8, [x29, #-24]
__kvm_hyp_protect_finalise:176.24 (setup.c) sbepe struct kvm_host_data *║host_data = this_cpu_ptr(&kvm_host_data);
~ 00009a34: f81f83a8 stur x8, [x29, #-8]
__kvm_hyp_protect_finalise:177.39 (setup.c) Sbepe struct kvm_cpu_context *host_ctxt = &║host_data->host_ctxt;
~ 00009a38: f85f83a8 ldur x8, [x29, #-8]
__kvm_hyp_protect_finalise:177.26 (setup.c) sbepe struct kvm_cpu_context *║host_ctxt = &host_data->host_ctxt;
~ 00009a3c: f90013e8 str x8, [sp, #32]
__kvm_hyp_protect_finalise:182.13 (setup.c) Sbepe nr_pages = ║hyp_s1_pgtable_size() >> PAGE_SHIFT;
~ 00009a40: 94000042 bl 9b48 <hyp_s1_pgtable_size>
__kvm_hyp_protect_finalise:182.35 (setup.c) sbepe nr_pages = hyp_s1_pgtable_size() ║>> PAGE_SHIFT;
~ 00009a44: d34cfc08 lsr x8, x0, #12 <- 00009a40(bl-succ)<return>
__kvm_hyp_protect_finalise:182.11 (setup.c) sbepe nr_pages ║= hyp_s1_pgtable_size() >> PAGE_SHIFT;
~ 00009a48: f9000fe8 str x8, [sp, #24]
__kvm_hyp_protect_finalise:183.15 (setup.c) Sbepe used_pages = ║hyp_early_alloc_nr_pages();
~ 00009a4c: 97fffcb9 bl 8d30 <hyp_early_alloc_nr_pages>
__kvm_hyp_protect_finalise:183.13 (setup.c) sbepe used_pages ║= hyp_early_alloc_nr_pages();
~ 00009a50: f9000be0 str x0, [sp, #16] <- 00009a4c(bl-succ)<return>
__kvm_hyp_protect_finalise:184.30 (setup.c) Sbepe ret = hyp_pool_init(&hpool, ║__hyp_pa(hyp_pgt_base), nr_pages, used_pages);
~ 00009a54: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009a58: f945a508 ldr x8, [x8, #2888]
~ 00009a5c: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009a60: f9439d29 ldr x9, [x9, #1848]
~ 00009a64: 8b090101 add x1, x8, x9
__kvm_hyp_protect_finalise:184.54 (setup.c) sbepe ret = hyp_pool_init(&hpool, __hyp_pa(hyp_pgt_base), ║nr_pages, used_pages);
~ 00009a68: b9401be2 ldr w2, [sp, #24]
__kvm_hyp_protect_finalise:184.64 (setup.c) sbepe ret = hyp_pool_init(&hpool, __hyp_pa(hyp_pgt_base), nr_pages, ║used_pages);
~ 00009a6c: b94013e3 ldr w3, [sp, #16]
__kvm_hyp_protect_finalise:184.8 (setup.c) sbepe ret = ║hyp_pool_init(&hpool, __hyp_pa(hyp_pgt_base), nr_pages, used_pages);
~ 00009a70: b0000080 adrp x0, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009a74: 91288000 add x0, x0, #0xa20
~ 00009a78: 97fffe39 bl 935c <hyp_pool_init>
__kvm_hyp_protect_finalise:184.6 (setup.c) sbepe ret ║= hyp_pool_init(&hpool, __hyp_pa(hyp_pgt_base), nr_pages, used_pages);
~ 00009a7c: b9000fe0 str w0, [sp, #12] <- 00009a78(bl-succ)<return>
__kvm_hyp_protect_finalise:185.6 (setup.c) Sbepe if (║ret)
~ 00009a80: b9400fea ldr w10, [sp, #12]
__kvm_hyp_protect_finalise:185.6 (setup.c) sbepe if (║ret)
~ ┌──00009a84: 3400006a cbz w10, 9a90 <__kvm_hyp_protect_finalise+0xa8>
│
~ │┌─00009a88: 14000001 b 9a8c <__kvm_hyp_protect_finalise+0xa4> <- 00009a84(b.cc-succ)<fallthrough>
││
││ __kvm_hyp_protect_finalise:186.3 (setup.c) Sbepe ║goto out;
~ ┌──┼└>00009a8c: 1400001f b 9b08 <__kvm_hyp_protect_finalise+0x120> <- 00009a88(b)<__kvm_hyp_protect_finalise+0xa4>
│ │
│ │ __kvm_hyp_protect_finalise:189.32 (setup.c) Sbepe ret = kvm_host_prepare_stage2(║host_s2_mem_pgt_base, host_s2_dev_pgt_base);
~ │ └─>00009a90: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009a84(b.cc)<__kvm_hyp_protect_finalise+0xa8>
~ │ 00009a94: f945a900 ldr x0, [x8, #2896]
│ __kvm_hyp_protect_finalise:189.54 (setup.c) sbepe ret = kvm_host_prepare_stage2(host_s2_mem_pgt_base, ║host_s2_dev_pgt_base);
~ │ 00009a98: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ 00009a9c: f945ad01 ldr x1, [x8, #2904]
│ __kvm_hyp_protect_finalise:189.8 (setup.c) sbepe ret = ║kvm_host_prepare_stage2(host_s2_mem_pgt_base, host_s2_dev_pgt_base);
~ │ 00009aa0: 9400051f bl af1c <kvm_host_prepare_stage2>
│
│ __kvm_hyp_protect_finalise:189.6 (setup.c) sbepe ret ║= kvm_host_prepare_stage2(host_s2_mem_pgt_base, host_s2_dev_pgt_base);
~ │ 00009aa4: b9000fe0 str w0, [sp, #12] <- 00009aa0(bl-succ)<return>
│ __kvm_hyp_protect_finalise:190.6 (setup.c) Sbepe if (║ret)
~ │ 00009aa8: b9400fe9 ldr w9, [sp, #12]
│ __kvm_hyp_protect_finalise:190.6 (setup.c) sbepe if (║ret)
~ │ ┌──00009aac: 34000069 cbz w9, 9ab8 <__kvm_hyp_protect_finalise+0xd0>
│ │
~ │ │┌─00009ab0: 14000001 b 9ab4 <__kvm_hyp_protect_finalise+0xcc> <- 00009aac(b.cc-succ)<fallthrough>
│ ││
│ ││ __kvm_hyp_protect_finalise:191.3 (setup.c) Sbepe ║goto out;
~ │ ┌┼└>00009ab4: 14000015 b 9b08 <__kvm_hyp_protect_finalise+0x120> <- 00009ab0(b)<__kvm_hyp_protect_finalise+0xcc>
│ ││
│ ││ __kvm_hyp_protect_finalise:193.33 (setup.c) Sbepe hyp_pgtable_mm_ops.zalloc_page ║= hyp_zalloc_hyp_page;
~ │ │└─>00009ab8: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009aac(b.cc)<__kvm_hyp_protect_finalise+0xd0>
~ │ │ 00009abc: 912be108 add x8, x8, #0xaf8
~ │ │ 00009ac0: 90000009 adrp x9, 9000 <__hyp_attach_page+0x4>
~ │ │ 00009ac4: 912f0129 add x9, x9, #0xbc0
~ │ │ 00009ac8: f9000109 str x9, [x8]
│ │ __kvm_hyp_protect_finalise:194.34 (setup.c) Sbepe hyp_pgtable_mm_ops.phys_to_virt ║= hyp_phys_to_virt;
~ │ │ 00009acc: 90000009 adrp x9, 9000 <__hyp_attach_page+0x4>
~ │ │ 00009ad0: 912fc129 add x9, x9, #0xbf0
~ │ │ 00009ad4: f9001909 str x9, [x8, #48]
│ │ __kvm_hyp_protect_finalise:195.34 (setup.c) Sbepe hyp_pgtable_mm_ops.virt_to_phys ║= hyp_virt_to_phys;
~ │ │ 00009ad8: 90000009 adrp x9, 9000 <__hyp_attach_page+0x4>
~ │ │ 00009adc: 91304129 add x9, x9, #0xc10
~ │ │ 00009ae0: f9001d09 str x9, [x8, #56]
│ │ __kvm_hyp_protect_finalise:196.30 (setup.c) Sbepe hyp_pgtable_mm_ops.get_page ║= hyp_get_page;
~ │ │ 00009ae4: 90000009 adrp x9, 9000 <__hyp_attach_page+0x4>
~ │ │ 00009ae8: 91052129 add x9, x9, #0x148
~ │ │ 00009aec: f9000d09 str x9, [x8, #24]
│ │ __kvm_hyp_protect_finalise:197.30 (setup.c) Sbepe hyp_pgtable_mm_ops.put_page ║= hyp_put_page;
~ │ │ 00009af0: f0ffffe9 adrp x9, 8000 <psci_1_0_handler+0x7c>
~ │ │ 00009af4: 913c2129 add x9, x9, #0xf08
~ │ │ 00009af8: f9001109 str x9, [x8, #32]
│ │ __kvm_hyp_protect_finalise:198.21 (setup.c) Sbepe hyp_pgtable.mm_ops ║= &hyp_pgtable_mm_ops;
~ │ │ 00009afc: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ │ 00009b00: f905c528 str x8, [x9, #2952]
│ │ __kvm_hyp_protect_finalise:198.2 (setup.c) sbepe ║hyp_pgtable.mm_ops = &hyp_pgtable_mm_ops;
~ │ │ ┌─00009b04: 14000001 b 9b08 <__kvm_hyp_protect_finalise+0x120>
│ │ │
│ │ │ __kvm_hyp_protect_finalise:201.2 (setup.c) Sbepe ║host_ctxt->regs.regs[0] = SMCCC_RET_SUCCESS;
~ └>└>└>00009b08: f94013e8 ldr x8, [sp, #32] <- 00009a8c(b)<__kvm_hyp_protect_finalise+0x120>,00009ab4(b)<__kvm_hyp_protect_finalise+0x120>,00009b04(b)<__kvm_hyp_protect_finalise+0x120>
~ 00009b0c: aa1f03e9 mov x9, xzr
__kvm_hyp_protect_finalise:201.26 (setup.c) sbepe host_ctxt->regs.regs[0] ║= SMCCC_RET_SUCCESS;
~ 00009b10: f9000109 str x9, [x8]
__kvm_hyp_protect_finalise:202.28 (setup.c) Sbepe host_ctxt->regs.regs[1] = ║ret;
~ 00009b14: b9800fe8 ldrsw x8, [sp, #12]
__kvm_hyp_protect_finalise:202.2 (setup.c) sbepe ║host_ctxt->regs.regs[1] = ret;
~ 00009b18: f94013e9 ldr x9, [sp, #32]
__kvm_hyp_protect_finalise:202.26 (setup.c) sbepe host_ctxt->regs.regs[1] ║= ret;
~ 00009b1c: f9000528 str x8, [x9, #8]
__kvm_hyp_protect_finalise:204.15 (setup.c) Sbepe __host_enter(║host_ctxt);
~ 00009b20: f94013e0 ldr x0, [sp, #32]
__kvm_hyp_protect_finalise:204.2 (setup.c) sbepe ║__host_enter(host_ctxt);
000099f4 CFA:r29+16 r29:c-16 r30:c-8
~ 00009b24: 97fff162 bl 60ac <__host_enter>
-host_data var pointer(struct kvm_host_data<6c1ec>/<6c7d7>) 0x99e8 0x9b28 (DW_OP_fbreg -0x8) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:176
-host_ctxt var pointer(struct kvm_cpu_context<6c1ec>/<6c7fa>) 0x99e8 0x9b28 (DW_OP_breg31 0x20) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:177
-nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x99e8 0x9b28 (DW_OP_breg31 0x18) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:178
-used_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x99e8 0x9b28 (DW_OP_breg31 0x10) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:178
-ret var int (base type, DW_ATE_signed size:4) 0x99e8 0x9b28 (DW_OP_breg31 0xc) __kvm_hyp_protect_finalise:arch/arm64/kvm/hyp/nvhe/setup.c:179
**00009b28 <__hyp_my_cpu_offset>:
+ __hyp_my_cpu_offset params: none
__hyp_my_cpu_offset:23.0 (percpu.h) Sbepe ║{
00009b28 CFA:r31
~ 00009b28: d10043ff sub sp, sp, #0x10 <- 00009a18(bl)<__hyp_my_cpu_offset>,00009b24(bl-succ)<return>,00009d38(bl)<__hyp_my_cpu_offset>
__hyp_my_cpu_offset:28.9 (percpu.h) SbePe return ║read_sysreg(tpidr_el2);
+__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x9b2c 0x9b40 (DW_OP_fbreg 0x8) lexblock:__hyp_my_cpu_offset:arch/arm64/kvm/hyp/nvhe/setup.c:28
~ 00009b2c: d53cd048 mrs x8, tpidr_el2
~ 00009b30: f90007e8 str x8, [sp, #8]
~ 00009b34: f94007e8 ldr x8, [sp, #8]
~ 00009b38: f90003e8 str x8, [sp]
~ 00009b3c: f94003e0 ldr x0, [sp]
-__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x9b2c 0x9b40 (DW_OP_fbreg 0x8) lexblock:__hyp_my_cpu_offset:arch/arm64/kvm/hyp/nvhe/setup.c:28
__hyp_my_cpu_offset:28.2 (percpu.h) sbepe ║return read_sysreg(tpidr_el2);
~ 00009b40: 910043ff add sp, sp, #0x10
00009b2c CFA:r31+16
~ 00009b44: d65f03c0 ret
**00009b48 <hyp_s1_pgtable_size>:
+ hyp_s1_pgtable_size params: none
hyp_s1_pgtable_size:72.0 (mm.h) Sbepe ║{
+res var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9b48 0x9bc0 (DW_OP_breg31 0x10) hyp_s1_pgtable_size:arch/arm64/kvm/hyp/nvhe/setup.c:73
+nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9b48 0x9bc0 (DW_OP_breg31 0x8) hyp_s1_pgtable_size:arch/arm64/kvm/hyp/nvhe/setup.c:73
~ 00009b48: d100c3ff sub sp, sp, #0x30 <- 00009a40(bl)<hyp_s1_pgtable_size>,00009e68(bl)<hyp_s1_pgtable_size>,00009f54(bl)<hyp_s1_pgtable_size>
~ 00009b4c: a9027bfd stp x29, x30, [sp, #32]
00009b48 CFA:r31 r29:u r30:u
~ 00009b50: 910083fd add x29, sp, #0x20
hyp_s1_pgtable_size:75.6 (mm.h) SbePe if (║kvm_nvhe_sym(hyp_memblock_nr) <= 0)
~ 00009b54: d0000088 adrp x8, 1b000 <hyp_memory+0x460>
~ 00009b58: b943a109 ldr w9, [x8, #928]
hyp_s1_pgtable_size:75.6 (mm.h) sbepe if (║kvm_nvhe_sym(hyp_memblock_nr) <= 0)
~ 00009b5c: 71000129 subs w9, w9, #0x0
~ ┌──00009b60: 540000ac b.gt 9b74 <hyp_s1_pgtable_size+0x2c>
│
~ │┌─00009b64: 14000001 b 9b68 <hyp_s1_pgtable_size+0x20> <- 00009b60(b.cc-succ)<fallthrough>
││
~ │└>00009b68: aa1f03e8 mov x8, xzr <- 00009b64(b)<hyp_s1_pgtable_size+0x20>
│ hyp_s1_pgtable_size:76.3 (mm.h) Sbepe ║return 0;
~ │ 00009b6c: f81f83a8 stur x8, [x29, #-8]
~ ┌┼──00009b70: 14000010 b 9bb0 <hyp_s1_pgtable_size+0x68>
││
││ hyp_s1_pgtable_size:78.8 (mm.h) Sbepe res = ║__hyp_pgtable_total_size();
~ │└─>00009b74: 94000222 bl a3fc <__hyp_pgtable_total_size> <- 00009b60(b.cc)<hyp_s1_pgtable_size+0x2c>
│
│ hyp_s1_pgtable_size:78.6 (mm.h) sbepe res ║= __hyp_pgtable_total_size();
~ │ 00009b78: f9000be0 str x0, [sp, #16] <- 00009b74(bl-succ)<return>
~ │ 00009b7c: 52a00088 mov w8, #0x40000 // #262144
~ │ 00009b80: 2a0803e9 mov w9, w8
│ hyp_s1_pgtable_size:81.11 (mm.h) Sbepe nr_pages ║= (1 << 30) >> PAGE_SHIFT;
~ │ 00009b84: f90007e9 str x9, [sp, #8]
│ hyp_s1_pgtable_size:82.37 (mm.h) Sbepe nr_pages = __hyp_pgtable_max_pages(║nr_pages);
~ │ 00009b88: f94007e0 ldr x0, [sp, #8]
│ hyp_s1_pgtable_size:82.13 (mm.h) sbepe nr_pages = ║__hyp_pgtable_max_pages(nr_pages);
~ │ 00009b8c: 94000245 bl a4a0 <__hyp_pgtable_max_pages>
│
│ hyp_s1_pgtable_size:82.11 (mm.h) sbepe nr_pages ║= __hyp_pgtable_max_pages(nr_pages);
~ │ 00009b90: f90007e0 str x0, [sp, #8] <- 00009b8c(bl-succ)<return>
│ hyp_s1_pgtable_size:83.9 (mm.h) Sbepe res += ║nr_pages << PAGE_SHIFT;
~ │ 00009b94: f94007e9 ldr x9, [sp, #8]
│ hyp_s1_pgtable_size:83.6 (mm.h) sbepe res ║+= nr_pages << PAGE_SHIFT;
~ │ 00009b98: f9400bea ldr x10, [sp, #16]
~ │ 00009b9c: 8b093149 add x9, x10, x9, lsl #12
~ │ 00009ba0: f9000be9 str x9, [sp, #16]
│ hyp_s1_pgtable_size:85.9 (mm.h) Sbepe return ║res;
~ │ 00009ba4: f9400be9 ldr x9, [sp, #16]
│ hyp_s1_pgtable_size:85.2 (mm.h) sbepe ║return res;
~ │ 00009ba8: f81f83a9 stur x9, [x29, #-8]
~ │ ┌─00009bac: 14000001 b 9bb0 <hyp_s1_pgtable_size+0x68>
│ │
│ │ hyp_s1_pgtable_size:86.1 (mm.h) Sbepe ║}
~ └>└>00009bb0: f85f83a0 ldur x0, [x29, #-8] <- 00009b70(b)<hyp_s1_pgtable_size+0x68>,00009bac(b)<hyp_s1_pgtable_size+0x68>
~ 00009bb4: a9427bfd ldp x29, x30, [sp, #32]
~ 00009bb8: 9100c3ff add sp, sp, #0x30
00009b54 CFA:r29+16 r29:c-16 r30:c-8
~ 00009bbc: d65f03c0 ret
-res var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9b48 0x9bc0 (DW_OP_breg31 0x10) hyp_s1_pgtable_size:arch/arm64/kvm/hyp/nvhe/setup.c:73
-nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9b48 0x9bc0 (DW_OP_breg31 0x8) hyp_s1_pgtable_size:arch/arm64/kvm/hyp/nvhe/setup.c:73
**00009bc0 <hyp_zalloc_hyp_page>:
+ hyp_zalloc_hyp_page params:
+arg param pointer(no type) 0x9bc0 0x9bf0 (DW_OP_breg31 0x8)
hyp_zalloc_hyp_page:170.0 (setup.c) Sbepe ║{
+arg param pointer(no type) 0x9bc0 0x9bf0 (DW_OP_breg31 0x8) hyp_zalloc_hyp_page:arch/arm64/kvm/hyp/nvhe/setup.c:169
~ 00009bc0: d10083ff sub sp, sp, #0x20
~ 00009bc4: a9017bfd stp x29, x30, [sp, #16]
00009bc0 CFA:r31 r29:u r30:u
~ 00009bc8: 910043fd add x29, sp, #0x10
~ 00009bcc: f90007e0 str x0, [sp, #8]
hyp_zalloc_hyp_page:171.9 (setup.c) SbePe return ║hyp_alloc_pages(&hpool, HYP_GFP_ZERO, 0);
~ 00009bd0: b0000080 adrp x0, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009bd4: 91288000 add x0, x0, #0xa20
~ 00009bd8: 52800021 mov w1, #0x1 // #1
~ 00009bdc: 2a1f03e2 mov w2, wzr
~ 00009be0: 97fffd76 bl 91b8 <hyp_alloc_pages>
hyp_zalloc_hyp_page:171.2 (setup.c) sbepe ║return hyp_alloc_pages(&hpool, HYP_GFP_ZERO, 0);
~ 00009be4: a9417bfd ldp x29, x30, [sp, #16] <- 00009be0(bl-succ)<return>
~ 00009be8: 910083ff add sp, sp, #0x20
00009bcc CFA:r29+16 r29:c-16 r30:c-8
~ 00009bec: d65f03c0 ret
-arg param pointer(no type) 0x9bc0 0x9bf0 (DW_OP_breg31 0x8) hyp_zalloc_hyp_page:arch/arm64/kvm/hyp/nvhe/setup.c:169
**00009bf0 <hyp_phys_to_virt>:
+ hyp_phys_to_virt params:
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9bf0 0x9c10 (DW_OP_fbreg 0x8)
hyp_phys_to_virt:31.0 (memory.h) Sbepe ║{
00009bf0 CFA:r31
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9bf0 0x9c10 (DW_OP_fbreg 0x8) hyp_phys_to_virt:arch/arm64/kvm/hyp/nvhe/setup.c:30
~ 00009bf0: d10043ff sub sp, sp, #0x10 <- 00009c50(bl)<hyp_phys_to_virt>,00009f40(bl)<hyp_phys_to_virt>
~ 00009bf4: f90007e0 str x0, [sp, #8]
hyp_phys_to_virt:32.9 (memory.h) SbePe return ║__hyp_va(phys);
~ 00009bf8: f94007e8 ldr x8, [sp, #8]
~ 00009bfc: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009c00: f9439d29 ldr x9, [x9, #1848]
~ 00009c04: eb090100 subs x0, x8, x9
hyp_phys_to_virt:32.2 (memory.h) sbepe ║return __hyp_va(phys);
~ 00009c08: 910043ff add sp, sp, #0x10
00009bf4 CFA:r31+16
~ 00009c0c: d65f03c0 ret
-phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9bf0 0x9c10 (DW_OP_fbreg 0x8) hyp_phys_to_virt:arch/arm64/kvm/hyp/nvhe/setup.c:30
**00009c10 <hyp_virt_to_phys>:
+ hyp_virt_to_phys params:
+addr param pointer(no type) 0x9c10 0x9c30 (DW_OP_fbreg 0x8)
hyp_virt_to_phys:36.0 (memory.h) Sbepe ║{
00009c10 CFA:r31
+addr param pointer(no type) 0x9c10 0x9c30 (DW_OP_fbreg 0x8) hyp_virt_to_phys:arch/arm64/kvm/hyp/nvhe/setup.c:35
~ 00009c10: d10043ff sub sp, sp, #0x10 <- 0000a000(bl)<hyp_virt_to_phys>
~ 00009c14: f90007e0 str x0, [sp, #8]
hyp_virt_to_phys:37.9 (memory.h) SbePe return ║__hyp_pa(addr);
~ 00009c18: f94007e8 ldr x8, [sp, #8]
~ 00009c1c: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009c20: f9439d29 ldr x9, [x9, #1848]
~ 00009c24: 8b090100 add x0, x8, x9
hyp_virt_to_phys:37.2 (memory.h) sbepe ║return __hyp_pa(addr);
~ 00009c28: 910043ff add sp, sp, #0x10
00009c14 CFA:r31+16
~ 00009c2c: d65f03c0 ret
-addr param pointer(no type) 0x9c10 0x9c30 (DW_OP_fbreg 0x8) hyp_virt_to_phys:arch/arm64/kvm/hyp/nvhe/setup.c:35
**00009c30 <__kvm_hyp_protect>:
+ __kvm_hyp_protect params:
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9c30 0x9dc0 (DW_OP_fbreg -0x10)
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9c30 0x9dc0 (DW_OP_fbreg -0x18)
+nr_cpus param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9c30 0x9dc0 (DW_OP_fbreg -0x20)
+per_cpu_base param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0x9c30 0x9dc0 (DW_OP_fbreg -0x28)
__kvm_hyp_protect:209.0 (setup.c) Sbepe ║{
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9c30 0x9dc0 (DW_OP_fbreg -0x10) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:207
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9c30 0x9dc0 (DW_OP_fbreg -0x18) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:207
+nr_cpus param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9c30 0x9dc0 (DW_OP_fbreg -0x20) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:208
+per_cpu_base param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0x9c30 0x9dc0 (DW_OP_fbreg -0x28) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:208
+params var pointer(struct kvm_nvhe_init_params<6c1ec>/<7a8ef>) 0x9c30 0x9dc0 (DW_OP_fbreg -0x30) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:210
+virt var pointer(no type) 0x9c30 0x9dc0 (DW_OP_fbreg -0x38) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:211
+fn var pointer(subroutine(prototyped no type(typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))),pointer(no type))) 0x9c30 0x9dc0 (DW_OP_fbreg -0x40) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:212
+ret var int (base type, DW_ATE_signed size:4) 0x9c30 0x9dc0 (DW_OP_fbreg -0x44) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:213
~ 00009c30: d10283ff sub sp, sp, #0xa0 <- 000075ac(bl)<__kvm_hyp_protect>
~ 00009c34: a9097bfd stp x29, x30, [sp, #144]
00009c30 CFA:r31 r29:u r30:u
~ 00009c38: 910243fd add x29, sp, #0x90
~ 00009c3c: f81f03a0 stur x0, [x29, #-16]
~ 00009c40: f81e83a1 stur x1, [x29, #-24]
~ 00009c44: f81e03a2 stur x2, [x29, #-32]
~ 00009c48: f81d83a3 stur x3, [x29, #-40]
__kvm_hyp_protect:211.32 (setup.c) SbePe void *virt = hyp_phys_to_virt(║phys);
~ 00009c4c: f85f03a0 ldur x0, [x29, #-16]
__kvm_hyp_protect:211.15 (setup.c) sbepe void *virt = ║hyp_phys_to_virt(phys);
~ 00009c50: 97ffffe8 bl 9bf0 <hyp_phys_to_virt>
__kvm_hyp_protect:211.8 (setup.c) sbepe void *║virt = hyp_phys_to_virt(phys);
~ 00009c54: f81c83a0 stur x0, [x29, #-56] <- 00009c50(bl-succ)<return>
__kvm_hyp_protect:215.23 (setup.c) Sbepe if (phys % PAGE_SIZE ║|| size % PAGE_SIZE || (u64)virt % PAGE_SIZE)
~ 00009c58: 785f03a8 ldurh w8, [x29, #-16]
~ 00009c5c: 12002d08 and w8, w8, #0xfff
~ ┌──────00009c60: 35000148 cbnz w8, 9c88 <__kvm_hyp_protect+0x58>
│
~ │ ┌─00009c64: 14000001 b 9c68 <__kvm_hyp_protect+0x38> <- 00009c60(b.cc-succ)<fallthrough>
│ │
│ │ __kvm_hyp_protect:215.43 (setup.c) sbepe if (phys % PAGE_SIZE || size % PAGE_SIZE ║|| (u64)virt % PAGE_SIZE)
~ │ └>00009c68: 785e83a8 ldurh w8, [x29, #-24] <- 00009c64(b)<__kvm_hyp_protect+0x38>
~ │ 00009c6c: 12002d08 and w8, w8, #0xfff
~ │ ┌────00009c70: 350000c8 cbnz w8, 9c88 <__kvm_hyp_protect+0x58>
│ │
~ │ │ ┌─00009c74: 14000001 b 9c78 <__kvm_hyp_protect+0x48> <- 00009c70(b.cc-succ)<fallthrough>
│ │ │
│ │ │ __kvm_hyp_protect:215.6 (setup.c) sbepe if (║phys % PAGE_SIZE || size % PAGE_SIZE || (u64)virt % PAGE_SIZE)
~ │ │ └>00009c78: 785c83a8 ldurh w8, [x29, #-56] <- 00009c74(b)<__kvm_hyp_protect+0x48>
~ │ │ 00009c7c: 12002d08 and w8, w8, #0xfff
~ │ │┌───00009c80: 340000a8 cbz w8, 9c94 <__kvm_hyp_protect+0x64>
│ ││
~ │ ││ ┌─00009c84: 14000001 b 9c88 <__kvm_hyp_protect+0x58> <- 00009c80(b.cc-succ)<fallthrough>
│ ││ │
~ └>└┼>└>00009c88: 128002a8 mov w8, #0xffffffea // #-22 <- 00009c60(b.cc)<__kvm_hyp_protect+0x58>,00009c70(b.cc)<__kvm_hyp_protect+0x58>,00009c84(b)<__kvm_hyp_protect+0x58>
│ __kvm_hyp_protect:216.3 (setup.c) Sbepe ║return -EINVAL;
~ │ 00009c8c: b81fc3a8 stur w8, [x29, #-4]
~ ┌───┼───00009c90: 14000048 b 9db0 <__kvm_hyp_protect+0x180>
│ │
│ │ __kvm_hyp_protect:218.2 (setup.c) Sbepe ║hyp_spin_lock_init(&__hyp_pgd_lock);
~ │ └>┌─00009c94: 14000001 b 9c98 <__kvm_hyp_protect+0x68> <- 00009c80(b.cc)<__kvm_hyp_protect+0x64>
│ │
~ │ └>00009c98: 2a1f03e8 mov w8, wzr <- 00009c94(b)<__kvm_hyp_protect+0x68>
│ __kvm_hyp_protect:218.2 (setup.c) sbepe ║hyp_spin_lock_init(&__hyp_pgd_lock);
~ │ 00009c9c: b9004be8 str w8, [sp, #72]
~ │ 00009ca0: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ 00009ca4: b9404be8 ldr w8, [sp, #72]
~ │ 00009ca8: b90b7128 str w8, [x9, #2928]
~ │ ┌─00009cac: 14000001 b 9cb0 <__kvm_hyp_protect+0x80>
│ │
│ │ __kvm_hyp_protect:219.16 (setup.c) Sbepe hyp_nr_cpus = ║nr_cpus;
~ │ └>00009cb0: f85e03a8 ldur x8, [x29, #-32] <- 00009cac(b)<__kvm_hyp_protect+0x80>
│ __kvm_hyp_protect:219.14 (setup.c) sbepe hyp_nr_cpus ║= nr_cpus;
~ │ 00009cb4: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ 00009cb8: f9059d28 str x8, [x9, #2872]
│ __kvm_hyp_protect:221.27 (setup.c) Sbepe ret = divide_memory_pool(║virt, size);
~ │ 00009cbc: f85c83a0 ldur x0, [x29, #-56]
│ __kvm_hyp_protect:221.33 (setup.c) sbepe ret = divide_memory_pool(virt, ║size);
~ │ 00009cc0: f85e83a1 ldur x1, [x29, #-24]
│ __kvm_hyp_protect:221.8 (setup.c) sbepe ret = ║divide_memory_pool(virt, size);
~ │ 00009cc4: 9400003f bl 9dc0 <divide_memory_pool>
│
│ __kvm_hyp_protect:221.6 (setup.c) sbepe ret ║= divide_memory_pool(virt, size);
~ │ 00009cc8: b81bc3a0 stur w0, [x29, #-68] <- 00009cc4(bl-succ)<return>
│ __kvm_hyp_protect:222.6 (setup.c) Sbepe if (║ret)
~ │ 00009ccc: b85bc3aa ldur w10, [x29, #-68]
│ __kvm_hyp_protect:222.6 (setup.c) sbepe if (║ret)
~ │ ┌──00009cd0: 340000aa cbz w10, 9ce4 <__kvm_hyp_protect+0xb4>
│ │
~ │ │┌─00009cd4: 14000001 b 9cd8 <__kvm_hyp_protect+0xa8> <- 00009cd0(b.cc-succ)<fallthrough>
│ ││
│ ││ __kvm_hyp_protect:223.10 (setup.c) Sbepe return ║ret;
~ │ │└>00009cd8: b85bc3a8 ldur w8, [x29, #-68] <- 00009cd4(b)<__kvm_hyp_protect+0xa8>
│ │ __kvm_hyp_protect:223.3 (setup.c) sbepe ║return ret;
~ │ │ 00009cdc: b81fc3a8 stur w8, [x29, #-4]
~ │ ┌──┼──00009ce0: 14000034 b 9db0 <__kvm_hyp_protect+0x180>
│ │ │
│ │ │ __kvm_hyp_protect:225.30 (setup.c) Sbepe ret = recreate_hyp_mappings(║phys, size, per_cpu_base);
~ │ │ └─>00009ce4: f85f03a0 ldur x0, [x29, #-16] <- 00009cd0(b.cc)<__kvm_hyp_protect+0xb4>
│ │ __kvm_hyp_protect:225.36 (setup.c) sbepe ret = recreate_hyp_mappings(phys, ║size, per_cpu_base);
~ │ │ 00009ce8: f85e83a1 ldur x1, [x29, #-24]
│ │ __kvm_hyp_protect:225.42 (setup.c) sbepe ret = recreate_hyp_mappings(phys, size, ║per_cpu_base);
~ │ │ 00009cec: f85d83a2 ldur x2, [x29, #-40]
│ │ __kvm_hyp_protect:225.8 (setup.c) sbepe ret = ║recreate_hyp_mappings(phys, size, per_cpu_base);
~ │ │ 00009cf0: 9400008c bl 9f20 <recreate_hyp_mappings>
│ │
│ │ __kvm_hyp_protect:225.6 (setup.c) sbepe ret ║= recreate_hyp_mappings(phys, size, per_cpu_base);
~ │ │ 00009cf4: b81bc3a0 stur w0, [x29, #-68] <- 00009cf0(bl-succ)<return>
│ │ __kvm_hyp_protect:226.6 (setup.c) Sbepe if (║ret)
~ │ │ 00009cf8: b85bc3a8 ldur w8, [x29, #-68]
│ │ __kvm_hyp_protect:226.6 (setup.c) sbepe if (║ret)
~ │ │ ┌──00009cfc: 340000a8 cbz w8, 9d10 <__kvm_hyp_protect+0xe0>
│ │ │
~ │ │ │┌─00009d00: 14000001 b 9d04 <__kvm_hyp_protect+0xd4> <- 00009cfc(b.cc-succ)<fallthrough>
│ │ ││
│ │ ││ __kvm_hyp_protect:227.10 (setup.c) Sbepe return ║ret;
~ │ │ │└>00009d04: b85bc3a8 ldur w8, [x29, #-68] <- 00009d00(b)<__kvm_hyp_protect+0xd4>
│ │ │ __kvm_hyp_protect:227.3 (setup.c) sbepe ║return ret;
~ │ │ │ 00009d08: b81fc3a8 stur w8, [x29, #-4]
~ │ │ ┌┼──00009d0c: 14000029 b 9db0 <__kvm_hyp_protect+0x180>
│ │ ││
│ │ ││ __kvm_hyp_protect:229.2 (setup.c) Sbepe ║update_nvhe_init_params();
~ │ │ │└─>00009d10: 94000181 bl a314 <update_nvhe_init_params> <- 00009cfc(b.cc)<__kvm_hyp_protect+0xe0>
│ │ │
│ │ │ __kvm_hyp_protect:232.11 (setup.c) Sbepe params = ║this_cpu_ptr(&kvm_init_params);
~ │ │ │ ┌─00009d14: 14000001 b 9d18 <__kvm_hyp_protect+0xe8> <- 00009d10(bl-succ)<return>
│ │ │ │
~ │ │ │ └>00009d18: aa1f03e8 mov x8, xzr <- 00009d14(b)<__kvm_hyp_protect+0xe8>
│ │ │ __kvm_hyp_protect:232.11 (setup.c) sbepe params = ║this_cpu_ptr(&kvm_init_params);
+__vpp_verify var pointer(const(no type)) 0x9d1c 0x9d24 (DW_OP_breg31 0x40) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:232
~ │ │ │ 00009d1c: f90023e8 str x8, [sp, #64]
~ │ │ │ ┌─00009d20: 14000001 b 9d24 <__kvm_hyp_protect+0xf4>
-__vpp_verify var pointer(const(no type)) 0x9d1c 0x9d24 (DW_OP_breg31 0x40) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:232
│ │ │ │
│ │ │ │ __kvm_hyp_protect:232.11 (setup.c) sbepe params = ║this_cpu_ptr(&kvm_init_params);
+__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9d24 0x9d4c (DW_OP_breg31 0x30) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:232
~ │ │ │ └>00009d24: 90000088 adrp x8, 19000 <kvm_host_data> <- 00009d20(b)<__kvm_hyp_protect+0xf4>
~ │ │ │ 00009d28: 91386108 add x8, x8, #0xe18
~ │ │ │ 00009d2c: f9001be8 str x8, [sp, #48]
~ │ │ │ 00009d30: f9401be8 ldr x8, [sp, #48]
~ │ │ │ 00009d34: f90003e8 str x8, [sp]
~ │ │ │ 00009d38: 97ffff7c bl 9b28 <__hyp_my_cpu_offset>
│ │ │
~ │ │ │ 00009d3c: f94003e8 ldr x8, [sp] <- 00009d38(bl-succ)<return>
~ │ │ │ 00009d40: 8b000108 add x8, x8, x0
~ │ │ │ 00009d44: f90017e8 str x8, [sp, #40]
~ │ │ │ 00009d48: f94017e8 ldr x8, [sp, #40]
-__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9d24 0x9d4c (DW_OP_breg31 0x30) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:232
│ │ │ __kvm_hyp_protect:232.11 (setup.c) sbepe params = ║this_cpu_ptr(&kvm_init_params);
+__vpp_verify var pointer(const(no type)) 0x9d4c 0x9d50 (DW_OP_breg31 0x40) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:232
~ │ │ │ 00009d4c: f9001fe8 str x8, [sp, #56]
-__vpp_verify var pointer(const(no type)) 0x9d4c 0x9d50 (DW_OP_breg31 0x40) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:232
│ │ │ __kvm_hyp_protect:232.11 (setup.c) sbepe params = ║this_cpu_ptr(&kvm_init_params);
~ │ │ │ 00009d50: f9401fe8 ldr x8, [sp, #56]
│ │ │ __kvm_hyp_protect:232.9 (setup.c) sbepe params ║= this_cpu_ptr(&kvm_init_params);
~ │ │ │ 00009d54: f81d03a8 stur x8, [x29, #-48]
│ │ │ __kvm_hyp_protect:233.19 (setup.c) Sbepe fn = (typeof(fn))║__hyp_pa(hyp_symbol_addr(__kvm_init_switch_pgd));
+addr var pointer(subroutine(prototyped no type(typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))),long unsigned int (base type, DW_ATE_unsigned size:8),typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))),pointer(no type),pointer(no type))) 0x9d58 0x9d70 (DW_OP_breg31 0x20) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:233
~ │ │ │ 00009d58: d0000068 adrp x8, 17000 <___kvm_hyp_init+0x3c>
~ │ │ │ 00009d5c: 910a5108 add x8, x8, #0x294
~ │ │ │ 00009d60: f90013e8 str x8, [sp, #32]
~ │ │ │ 00009d64: f94013e8 ldr x8, [sp, #32]
~ │ │ │ 00009d68: f9000fe8 str x8, [sp, #24]
~ │ │ │ 00009d6c: f9400fe8 ldr x8, [sp, #24]
-addr var pointer(subroutine(prototyped no type(typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))),long unsigned int (base type, DW_ATE_unsigned size:8),typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))),pointer(no type),pointer(no type))) 0x9d58 0x9d70 (DW_OP_breg31 0x20) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:233
│ │ │ __kvm_hyp_protect:233.19 (setup.c) sbepe fn = (typeof(fn))║__hyp_pa(hyp_symbol_addr(__kvm_init_switch_pgd));
~ │ │ │ 00009d70: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ │ │ 00009d74: f9439d2a ldr x10, [x9, #1848]
~ │ │ │ 00009d78: 8b0a0108 add x8, x8, x10
│ │ │ __kvm_hyp_protect:233.5 (setup.c) sbepe fn ║= (typeof(fn))__hyp_pa(hyp_symbol_addr(__kvm_init_switch_pgd));
~ │ │ │ 00009d7c: f81c03a8 stur x8, [x29, #-64]
│ │ │ __kvm_hyp_protect:234.2 (setup.c) Sbepe ║fn(__hyp_pa(params), hyp_symbol_addr(__kvm_hyp_protect_finalise));
~ │ │ │ 00009d80: f85c03a8 ldur x8, [x29, #-64]
│ │ │ __kvm_hyp_protect:234.5 (setup.c) sbepe fn(║__hyp_pa(params), hyp_symbol_addr(__kvm_hyp_protect_finalise));
~ │ │ │ 00009d84: f85d03aa ldur x10, [x29, #-48]
~ │ │ │ 00009d88: f9439d29 ldr x9, [x9, #1848]
~ │ │ │ 00009d8c: 8b090140 add x0, x10, x9
│ │ │ __kvm_hyp_protect:234.23 (setup.c) sbepe fn(__hyp_pa(params), ║hyp_symbol_addr(__kvm_hyp_protect_finalise));
+addr var pointer(subroutine(prototyped no type()) 0x9d90 0x9da8 (DW_OP_breg31 0x10) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:234
~ │ │ │ 00009d90: 90000009 adrp x9, 9000 <__hyp_attach_page+0x4>
~ │ │ │ 00009d94: 9127a129 add x9, x9, #0x9e8
~ │ │ │ 00009d98: f9000be9 str x9, [sp, #16]
~ │ │ │ 00009d9c: f9400be9 ldr x9, [sp, #16]
~ │ │ │ 00009da0: f90007e9 str x9, [sp, #8]
~ │ │ │ 00009da4: f94007e1 ldr x1, [sp, #8]
-addr var pointer(subroutine(prototyped no type()) 0x9d90 0x9da8 (DW_OP_breg31 0x10) lexblock:__kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:234
│ │ │ __kvm_hyp_protect:234.2 (setup.c) sbepe ║fn(__hyp_pa(params), hyp_symbol_addr(__kvm_hyp_protect_finalise));
~ │ │ │ 00009da8: d63f0100 blr x8
│ │ │ __kvm_hyp_protect:236.2 (setup.c) Sbepe ║unreachable();
~ │ │ │ ┌─00009dac: 14000001 b 9db0 <__kvm_hyp_protect+0x180>
│ │ │ │
│ │ │ │ __kvm_hyp_protect:237.1 (setup.c) Sbepe ║}
~ └>└>└>└>00009db0: b85fc3a0 ldur w0, [x29, #-4] <- 00009c90(b)<__kvm_hyp_protect+0x180>,00009ce0(b)<__kvm_hyp_protect+0x180>,00009d0c(b)<__kvm_hyp_protect+0x180>,00009dac(b)<__kvm_hyp_protect+0x180>
~ 00009db4: a9497bfd ldp x29, x30, [sp, #144]
~ 00009db8: 910283ff add sp, sp, #0xa0
00009c3c CFA:r29+16 r29:c-16 r30:c-8
~ 00009dbc: d65f03c0 ret
-phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9c30 0x9dc0 (DW_OP_fbreg -0x10) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:207
-size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9c30 0x9dc0 (DW_OP_fbreg -0x18) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:207
-nr_cpus param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9c30 0x9dc0 (DW_OP_fbreg -0x20) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:208
-per_cpu_base param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0x9c30 0x9dc0 (DW_OP_fbreg -0x28) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:208
-params var pointer(struct kvm_nvhe_init_params<6c1ec>/<7a8ef>) 0x9c30 0x9dc0 (DW_OP_fbreg -0x30) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:210
-virt var pointer(no type) 0x9c30 0x9dc0 (DW_OP_fbreg -0x38) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:211
-fn var pointer(subroutine(prototyped no type(typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))),pointer(no type))) 0x9c30 0x9dc0 (DW_OP_fbreg -0x40) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:212
-ret var int (base type, DW_ATE_signed size:4) 0x9c30 0x9dc0 (DW_OP_fbreg -0x44) __kvm_hyp_protect:arch/arm64/kvm/hyp/nvhe/setup.c:213
**00009dc0 <divide_memory_pool>:
+ divide_memory_pool params:
+virt param pointer(no type) 0x9dc0 0x9f20 (DW_OP_fbreg -0x10)
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x18)
divide_memory_pool:51.0 (setup.c) Sbepe ║{
+virt param pointer(no type) 0x9dc0 0x9f20 (DW_OP_fbreg -0x10) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:50
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x18) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:50
+vstart var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x10) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:52
+vend var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x8) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:52
+nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x0) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:52
~ 00009dc0: d10103ff sub sp, sp, #0x40 <- 00009cc4(bl)<divide_memory_pool>
~ 00009dc4: a9037bfd stp x29, x30, [sp, #48]
00009dc0 CFA:r31 r29:u r30:u
~ 00009dc8: 9100c3fd add x29, sp, #0x30
~ 00009dcc: f81f03a0 stur x0, [x29, #-16]
~ 00009dd0: f9000fe1 str x1, [sp, #24]
divide_memory_pool:54.23 (setup.c) SbePe hyp_early_alloc_init(║virt, size);
~ 00009dd4: f85f03a0 ldur x0, [x29, #-16]
divide_memory_pool:54.29 (setup.c) sbepe hyp_early_alloc_init(virt, ║size);
~ 00009dd8: f9400fe1 ldr x1, [sp, #24]
divide_memory_pool:54.2 (setup.c) sbepe ║hyp_early_alloc_init(virt, size);
~ 00009ddc: 97fffc20 bl 8e5c <hyp_early_alloc_init>
divide_memory_pool:56.39 (setup.c) Sbepe stacks_base = hyp_early_alloc_contig(║hyp_nr_cpus);
~ 00009de0: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009ddc(bl-succ)<return>
~ 00009de4: b94b3900 ldr w0, [x8, #2872]
divide_memory_pool:56.16 (setup.c) sbepe stacks_base = ║hyp_early_alloc_contig(hyp_nr_cpus);
~ 00009de8: 97fffbd9 bl 8d4c <hyp_early_alloc_contig>
divide_memory_pool:56.14 (setup.c) sbepe stacks_base ║= hyp_early_alloc_contig(hyp_nr_cpus);
~ 00009dec: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009de8(bl-succ)<return>
~ 00009df0: f905b100 str x0, [x8, #2912]
divide_memory_pool:57.7 (setup.c) Sbepe if (!║stacks_base)
~ 00009df4: f945b108 ldr x8, [x8, #2912]
divide_memory_pool:57.6 (setup.c) sbepe if (║!stacks_base)
~ ┌──00009df8: b50000a8 cbnz x8, 9e0c <divide_memory_pool+0x4c>
│
~ │┌─00009dfc: 14000001 b 9e00 <divide_memory_pool+0x40> <- 00009df8(b.cc-succ)<fallthrough>
││
~ │└>00009e00: 12800168 mov w8, #0xfffffff4 // #-12 <- 00009dfc(b)<divide_memory_pool+0x40>
│ divide_memory_pool:58.3 (setup.c) Sbepe ║return -ENOMEM;
~ │ 00009e04: b81fc3a8 stur w8, [x29, #-4]
~ ┌────────┼──00009e08: 14000042 b 9f10 <divide_memory_pool+0x150>
│ │
│ │ divide_memory_pool:60.20 (setup.c) Sbepe hyp_vmemmap_range(║__hyp_pa(virt), size, &vstart, &vend);
~ │ └─>00009e0c: f85f03a8 ldur x8, [x29, #-16] <- 00009df8(b.cc)<divide_memory_pool+0x4c>
~ │ 00009e10: b0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ 00009e14: f9439d29 ldr x9, [x9, #1848]
~ │ 00009e18: 8b090100 add x0, x8, x9
│ divide_memory_pool:60.36 (setup.c) sbepe hyp_vmemmap_range(__hyp_pa(virt), ║size, &vstart, &vend);
~ │ 00009e1c: f9400fe1 ldr x1, [sp, #24]
~ │ 00009e20: 910043e2 add x2, sp, #0x10
~ │ 00009e24: 910023e3 add x3, sp, #0x8
│ divide_memory_pool:60.2 (setup.c) sbepe ║hyp_vmemmap_range(__hyp_pa(virt), size, &vstart, &vend);
~ │ 00009e28: 940001b8 bl a508 <hyp_vmemmap_range>
│
│ divide_memory_pool:61.14 (setup.c) Sbepe nr_pages = (║vend - vstart) >> PAGE_SHIFT;
~ │ 00009e2c: f94007e8 ldr x8, [sp, #8] <- 00009e28(bl-succ)<return>
│ divide_memory_pool:61.21 (setup.c) sbepe nr_pages = (vend - ║vstart) >> PAGE_SHIFT;
~ │ 00009e30: f9400be9 ldr x9, [sp, #16]
│ divide_memory_pool:61.19 (setup.c) sbepe nr_pages = (vend ║- vstart) >> PAGE_SHIFT;
~ │ 00009e34: eb090108 subs x8, x8, x9
│ divide_memory_pool:61.29 (setup.c) sbepe nr_pages = (vend - vstart) ║>> PAGE_SHIFT;
~ │ 00009e38: d34cfd08 lsr x8, x8, #12
│ divide_memory_pool:61.11 (setup.c) sbepe nr_pages ║= (vend - vstart) >> PAGE_SHIFT;
~ │ 00009e3c: f90003e8 str x8, [sp]
│ divide_memory_pool:62.40 (setup.c) Sbepe vmemmap_base = hyp_early_alloc_contig(║nr_pages);
~ │ 00009e40: b94003e0 ldr w0, [sp]
│ divide_memory_pool:62.17 (setup.c) sbepe vmemmap_base = ║hyp_early_alloc_contig(nr_pages);
~ │ 00009e44: 97fffbc2 bl 8d4c <hyp_early_alloc_contig>
│
│ divide_memory_pool:62.15 (setup.c) sbepe vmemmap_base ║= hyp_early_alloc_contig(nr_pages);
~ │ 00009e48: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009e44(bl-succ)<return>
~ │ 00009e4c: f905b500 str x0, [x8, #2920]
│ divide_memory_pool:63.7 (setup.c) Sbepe if (!║vmemmap_base)
~ │ 00009e50: f945b508 ldr x8, [x8, #2920]
│ divide_memory_pool:63.6 (setup.c) sbepe if (║!vmemmap_base)
~ │ ┌──00009e54: b50000a8 cbnz x8, 9e68 <divide_memory_pool+0xa8>
│ │
~ │ │┌─00009e58: 14000001 b 9e5c <divide_memory_pool+0x9c> <- 00009e54(b.cc-succ)<fallthrough>
│ ││
~ │ │└>00009e5c: 12800168 mov w8, #0xfffffff4 // #-12 <- 00009e58(b)<divide_memory_pool+0x9c>
│ │ divide_memory_pool:64.3 (setup.c) Sbepe ║return -ENOMEM;
~ │ │ 00009e60: b81fc3a8 stur w8, [x29, #-4]
~ │ ┌──────┼──00009e64: 1400002b b 9f10 <divide_memory_pool+0x150>
│ │ │
│ │ │ divide_memory_pool:66.13 (setup.c) Sbepe nr_pages = ║hyp_s1_pgtable_size() >> PAGE_SHIFT;
~ │ │ └─>00009e68: 97ffff38 bl 9b48 <hyp_s1_pgtable_size> <- 00009e54(b.cc)<divide_memory_pool+0xa8>
│ │
│ │ divide_memory_pool:66.35 (setup.c) sbepe nr_pages = hyp_s1_pgtable_size() ║>> PAGE_SHIFT;
~ │ │ 00009e6c: d34cfc08 lsr x8, x0, #12 <- 00009e68(bl-succ)<return>
│ │ divide_memory_pool:66.11 (setup.c) sbepe nr_pages ║= hyp_s1_pgtable_size() >> PAGE_SHIFT;
~ │ │ 00009e70: f90003e8 str x8, [sp]
│ │ divide_memory_pool:67.40 (setup.c) Sbepe hyp_pgt_base = hyp_early_alloc_contig(║nr_pages);
~ │ │ 00009e74: b94003e0 ldr w0, [sp]
│ │ divide_memory_pool:67.17 (setup.c) sbepe hyp_pgt_base = ║hyp_early_alloc_contig(nr_pages);
~ │ │ 00009e78: 97fffbb5 bl 8d4c <hyp_early_alloc_contig>
│ │
│ │ divide_memory_pool:67.15 (setup.c) sbepe hyp_pgt_base ║= hyp_early_alloc_contig(nr_pages);
~ │ │ 00009e7c: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009e78(bl-succ)<return>
~ │ │ 00009e80: f905a500 str x0, [x8, #2888]
│ │ divide_memory_pool:68.7 (setup.c) Sbepe if (!║hyp_pgt_base)
~ │ │ 00009e84: f945a508 ldr x8, [x8, #2888]
│ │ divide_memory_pool:68.6 (setup.c) sbepe if (║!hyp_pgt_base)
~ │ │ ┌──00009e88: b50000a8 cbnz x8, 9e9c <divide_memory_pool+0xdc>
│ │ │
~ │ │ │┌─00009e8c: 14000001 b 9e90 <divide_memory_pool+0xd0> <- 00009e88(b.cc-succ)<fallthrough>
│ │ ││
~ │ │ │└>00009e90: 12800168 mov w8, #0xfffffff4 // #-12 <- 00009e8c(b)<divide_memory_pool+0xd0>
│ │ │ divide_memory_pool:69.3 (setup.c) Sbepe ║return -ENOMEM;
~ │ │ │ 00009e94: b81fc3a8 stur w8, [x29, #-4]
~ │ │ ┌────┼──00009e98: 1400001e b 9f10 <divide_memory_pool+0x150>
│ │ │ │
│ │ │ │ divide_memory_pool:71.13 (setup.c) Sbepe nr_pages = ║host_s2_mem_pgtable_size() >> PAGE_SHIFT;
~ │ │ │ └─>00009e9c: 940001be bl a594 <host_s2_mem_pgtable_size> <- 00009e88(b.cc)<divide_memory_pool+0xdc>
│ │ │
│ │ │ divide_memory_pool:71.40 (setup.c) sbepe nr_pages = host_s2_mem_pgtable_size() ║>> PAGE_SHIFT;
~ │ │ │ 00009ea0: d34cfc08 lsr x8, x0, #12 <- 00009e9c(bl-succ)<return>
│ │ │ divide_memory_pool:71.11 (setup.c) sbepe nr_pages ║= host_s2_mem_pgtable_size() >> PAGE_SHIFT;
~ │ │ │ 00009ea4: f90003e8 str x8, [sp]
│ │ │ divide_memory_pool:72.48 (setup.c) Sbepe host_s2_mem_pgt_base = hyp_early_alloc_contig(║nr_pages);
~ │ │ │ 00009ea8: b94003e0 ldr w0, [sp]
│ │ │ divide_memory_pool:72.25 (setup.c) sbepe host_s2_mem_pgt_base = ║hyp_early_alloc_contig(nr_pages);
~ │ │ │ 00009eac: 97fffba8 bl 8d4c <hyp_early_alloc_contig>
│ │ │
│ │ │ divide_memory_pool:72.23 (setup.c) sbepe host_s2_mem_pgt_base ║= hyp_early_alloc_contig(nr_pages);
~ │ │ │ 00009eb0: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009eac(bl-succ)<return>
~ │ │ │ 00009eb4: f905a900 str x0, [x8, #2896]
│ │ │ divide_memory_pool:73.7 (setup.c) Sbepe if (!║host_s2_mem_pgt_base)
~ │ │ │ 00009eb8: f945a908 ldr x8, [x8, #2896]
│ │ │ divide_memory_pool:73.6 (setup.c) sbepe if (║!host_s2_mem_pgt_base)
~ │ │ │ ┌──00009ebc: b50000a8 cbnz x8, 9ed0 <divide_memory_pool+0x110>
│ │ │ │
~ │ │ │ │┌─00009ec0: 14000001 b 9ec4 <divide_memory_pool+0x104> <- 00009ebc(b.cc-succ)<fallthrough>
│ │ │ ││
~ │ │ │ │└>00009ec4: 12800168 mov w8, #0xfffffff4 // #-12 <- 00009ec0(b)<divide_memory_pool+0x104>
│ │ │ │ divide_memory_pool:74.3 (setup.c) Sbepe ║return -ENOMEM;
~ │ │ │ │ 00009ec8: b81fc3a8 stur w8, [x29, #-4]
~ │ │ │ ┌──┼──00009ecc: 14000011 b 9f10 <divide_memory_pool+0x150>
│ │ │ │ │
│ │ │ │ │ divide_memory_pool:76.13 (setup.c) Sbepe nr_pages = ║host_s2_dev_pgtable_size() >> PAGE_SHIFT;
~ │ │ │ │ └─>00009ed0: 940001c8 bl a5f0 <host_s2_dev_pgtable_size> <- 00009ebc(b.cc)<divide_memory_pool+0x110>
│ │ │ │
│ │ │ │ divide_memory_pool:76.40 (setup.c) sbepe nr_pages = host_s2_dev_pgtable_size() ║>> PAGE_SHIFT;
~ │ │ │ │ 00009ed4: d34cfc08 lsr x8, x0, #12 <- 00009ed0(bl-succ)<return>
│ │ │ │ divide_memory_pool:76.11 (setup.c) sbepe nr_pages ║= host_s2_dev_pgtable_size() >> PAGE_SHIFT;
~ │ │ │ │ 00009ed8: f90003e8 str x8, [sp]
│ │ │ │ divide_memory_pool:77.48 (setup.c) Sbepe host_s2_dev_pgt_base = hyp_early_alloc_contig(║nr_pages);
~ │ │ │ │ 00009edc: b94003e0 ldr w0, [sp]
│ │ │ │ divide_memory_pool:77.25 (setup.c) sbepe host_s2_dev_pgt_base = ║hyp_early_alloc_contig(nr_pages);
~ │ │ │ │ 00009ee0: 97fffb9b bl 8d4c <hyp_early_alloc_contig>
│ │ │ │
│ │ │ │ divide_memory_pool:77.23 (setup.c) sbepe host_s2_dev_pgt_base ║= hyp_early_alloc_contig(nr_pages);
~ │ │ │ │ 00009ee4: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00009ee0(bl-succ)<return>
~ │ │ │ │ 00009ee8: f905ad00 str x0, [x8, #2904]
│ │ │ │ divide_memory_pool:78.7 (setup.c) Sbepe if (!║host_s2_dev_pgt_base)
~ │ │ │ │ 00009eec: f945ad08 ldr x8, [x8, #2904]
│ │ │ │ divide_memory_pool:78.6 (setup.c) sbepe if (║!host_s2_dev_pgt_base)
~ │ │ │ │ ┌──00009ef0: b50000a8 cbnz x8, 9f04 <divide_memory_pool+0x144>
│ │ │ │ │
~ │ │ │ │ │┌─00009ef4: 14000001 b 9ef8 <divide_memory_pool+0x138> <- 00009ef0(b.cc-succ)<fallthrough>
│ │ │ │ ││
~ │ │ │ │ │└>00009ef8: 12800168 mov w8, #0xfffffff4 // #-12 <- 00009ef4(b)<divide_memory_pool+0x138>
│ │ │ │ │ divide_memory_pool:79.3 (setup.c) Sbepe ║return -ENOMEM;
~ │ │ │ │ │ 00009efc: b81fc3a8 stur w8, [x29, #-4]
~ │ │ │ │ ┌┼──00009f00: 14000004 b 9f10 <divide_memory_pool+0x150>
│ │ │ │ ││
~ │ │ │ │ │└─>00009f04: 2a1f03e8 mov w8, wzr <- 00009ef0(b.cc)<divide_memory_pool+0x144>
│ │ │ │ │ divide_memory_pool:81.2 (setup.c) Sbepe ║return 0;
~ │ │ │ │ │ 00009f08: b81fc3a8 stur w8, [x29, #-4]
~ │ │ │ │ │ ┌─00009f0c: 14000001 b 9f10 <divide_memory_pool+0x150>
│ │ │ │ │ │
│ │ │ │ │ │ divide_memory_pool:82.1 (setup.c) Sbepe ║}
~ └>└>└>└>└>└>00009f10: b85fc3a0 ldur w0, [x29, #-4] <- 00009e08(b)<divide_memory_pool+0x150>,00009e64(b)<divide_memory_pool+0x150>,00009e98(b)<divide_memory_pool+0x150>,00009ecc(b)<divide_memory_pool+0x150>,00009f00(b)<divide_memory_pool+0x150>,00009f0c(b)<divide_memory_pool+0x150>
~ 00009f14: a9437bfd ldp x29, x30, [sp, #48]
~ 00009f18: 910103ff add sp, sp, #0x40
00009dcc CFA:r29+16 r29:c-16 r30:c-8
~ 00009f1c: d65f03c0 ret
-virt param pointer(no type) 0x9dc0 0x9f20 (DW_OP_fbreg -0x10) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:50
-size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x18) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:50
-vstart var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x10) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:52
-vend var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x8) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:52
-nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0x9dc0 0x9f20 (DW_OP_breg31 0x0) divide_memory_pool:arch/arm64/kvm/hyp/nvhe/setup.c:52
**00009f20 <recreate_hyp_mappings>:
+ recreate_hyp_mappings params:
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9f20 0xa314 (DW_OP_fbreg -0x18)
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9f20 0xa314 (DW_OP_fbreg -0x20)
+per_cpu_base param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0x9f20 0xa314 (DW_OP_fbreg -0x28)
recreate_hyp_mappings:86.0 (setup.c) Sbepe ║{
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9f20 0xa314 (DW_OP_fbreg -0x18) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:84
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9f20 0xa314 (DW_OP_fbreg -0x20) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:84
+per_cpu_base param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0x9f20 0xa314 (DW_OP_fbreg -0x28) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:85
+start var pointer(no type) 0x9f20 0xa314 (DW_OP_fbreg -0x30) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:87
+end var pointer(no type) 0x9f20 0xa314 (DW_OP_fbreg -0x38) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:87
+virt var pointer(no type) 0x9f20 0xa314 (DW_OP_fbreg -0x40) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:87
+ret var int (base type, DW_ATE_signed size:4) 0x9f20 0xa314 (DW_OP_fbreg -0x44) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:88
+i var int (base type, DW_ATE_signed size:4) 0x9f20 0xa314 (DW_OP_fbreg -0x48) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:88
~ 00009f20: d104c3ff sub sp, sp, #0x130 <- 00009cf0(bl)<recreate_hyp_mappings>
~ 00009f24: a9117bfd stp x29, x30, [sp, #272]
~ 00009f28: f90093fc str x28, [sp, #288]
00009f20 CFA:r31 r28:u r29:u r30:u
~ 00009f2c: 910443fd add x29, sp, #0x110
~ 00009f30: f81e83a0 stur x0, [x29, #-24]
~ 00009f34: f81e03a1 stur x1, [x29, #-32]
~ 00009f38: f81d83a2 stur x2, [x29, #-40]
recreate_hyp_mappings:87.46 (setup.c) SbePe void *start, *end, *virt = hyp_phys_to_virt(║phys);
~ 00009f3c: f85e83a0 ldur x0, [x29, #-24]
recreate_hyp_mappings:87.29 (setup.c) sbepe void *start, *end, *virt = ║hyp_phys_to_virt(phys);
~ 00009f40: 97ffff2c bl 9bf0 <hyp_phys_to_virt>
recreate_hyp_mappings:87.22 (setup.c) sbepe void *start, *end, *║virt = hyp_phys_to_virt(phys);
~ 00009f44: f81c03a0 stur x0, [x29, #-64] <- 00009f40(bl-succ)<return>
recreate_hyp_mappings:91.23 (setup.c) Sbepe hyp_early_alloc_init(║hyp_pgt_base, hyp_s1_pgtable_size());
~ 00009f48: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009f4c: f945a500 ldr x0, [x8, #2888]
~ 00009f50: f90013e0 str x0, [sp, #32]
recreate_hyp_mappings:91.37 (setup.c) sbepe hyp_early_alloc_init(hyp_pgt_base, ║hyp_s1_pgtable_size());
~ 00009f54: 97fffefd bl 9b48 <hyp_s1_pgtable_size>
~ 00009f58: f94013e8 ldr x8, [sp, #32] <- 00009f54(bl-succ)<return>
~ 00009f5c: f9000fe0 str x0, [sp, #24]
recreate_hyp_mappings:91.2 (setup.c) sbepe ║hyp_early_alloc_init(hyp_pgt_base, hyp_s1_pgtable_size());
~ 00009f60: aa0803e0 mov x0, x8
~ 00009f64: f9400fe1 ldr x1, [sp, #24]
~ 00009f68: 97fffbbd bl 8e5c <hyp_early_alloc_init>
recreate_hyp_mappings:92.43 (setup.c) Sbepe ret = kvm_pgtable_hyp_init(&hyp_pgtable, ║hyp_va_bits,
~ 00009f6c: d0000088 adrp x8, 1b000 <hyp_memory+0x460> <- 00009f68(bl-succ)<return>
~ 00009f70: b947d901 ldr w1, [x8, #2008]
recreate_hyp_mappings:92.8 (setup.c) sbepe ret = ║kvm_pgtable_hyp_init(&hyp_pgtable, hyp_va_bits,
~ 00009f74: b0000080 adrp x0, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009f78: 912de000 add x0, x0, #0xb78
~ 00009f7c: b0000082 adrp x2, 1a000 <hyp_cpu_logical_map+0xe0>
~ 00009f80: 9124c042 add x2, x2, #0x930
~ 00009f84: 94002744 bl 13c94 <kvm_pgtable_hyp_init>
recreate_hyp_mappings:92.6 (setup.c) sbepe ret ║= kvm_pgtable_hyp_init(&hyp_pgtable, hyp_va_bits,
~ 00009f88: b81bc3a0 stur w0, [x29, #-68] <- 00009f84(bl-succ)<return>
recreate_hyp_mappings:94.6 (setup.c) Sbepe if (║ret)
~ 00009f8c: b85bc3a9 ldur w9, [x29, #-68]
recreate_hyp_mappings:94.6 (setup.c) sbepe if (║ret)
~ ┌──00009f90: 340000a9 cbz w9, 9fa4 <recreate_hyp_mappings+0x84>
│
~ │┌─00009f94: 14000001 b 9f98 <recreate_hyp_mappings+0x78> <- 00009f90(b.cc-succ)<fallthrough>
││
││ recreate_hyp_mappings:95.10 (setup.c) Sbepe return ║ret;
~ │└>00009f98: b85bc3a8 ldur w8, [x29, #-68] <- 00009f94(b)<recreate_hyp_mappings+0x78>
│ recreate_hyp_mappings:95.3 (setup.c) sbepe ║return ret;
~ │ 00009f9c: b81f43a8 stur w8, [x29, #-12]
~ ┌──────────────────────┼──00009fa0: 140000d8 b a300 <recreate_hyp_mappings+0x3e0>
│ │
│ │ recreate_hyp_mappings:97.8 (setup.c) Sbepe ret = ║hyp_create_idmap();
~ │ └─>00009fa4: 9400036c bl ad54 <hyp_create_idmap> <- 00009f90(b.cc)<recreate_hyp_mappings+0x84>
│
│ recreate_hyp_mappings:97.6 (setup.c) sbepe ret ║= hyp_create_idmap();
~ │ 00009fa8: b81bc3a0 stur w0, [x29, #-68] <- 00009fa4(bl-succ)<return>
│ recreate_hyp_mappings:98.6 (setup.c) Sbepe if (║ret)
~ │ 00009fac: b85bc3a8 ldur w8, [x29, #-68]
│ recreate_hyp_mappings:98.6 (setup.c) sbepe if (║ret)
~ │ ┌──00009fb0: 340000a8 cbz w8, 9fc4 <recreate_hyp_mappings+0xa4>
│ │
~ │ │┌─00009fb4: 14000001 b 9fb8 <recreate_hyp_mappings+0x98> <- 00009fb0(b.cc-succ)<fallthrough>
│ ││
│ ││ recreate_hyp_mappings:99.10 (setup.c) Sbepe return ║ret;
~ │ │└>00009fb8: b85bc3a8 ldur w8, [x29, #-68] <- 00009fb4(b)<recreate_hyp_mappings+0x98>
│ │ recreate_hyp_mappings:99.3 (setup.c) sbepe ║return ret;
~ │ │ 00009fbc: b81f43a8 stur w8, [x29, #-12]
~ │ ┌────────────────────┼──00009fc0: 140000d0 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │
│ │ │ recreate_hyp_mappings:101.8 (setup.c) Sbepe ret = ║hyp_map_vectors();
~ │ │ └─>00009fc4: 94000309 bl abe8 <hyp_map_vectors> <- 00009fb0(b.cc)<recreate_hyp_mappings+0xa4>
│ │
│ │ recreate_hyp_mappings:101.6 (setup.c) sbepe ret ║= hyp_map_vectors();
~ │ │ 00009fc8: b81bc3a0 stur w0, [x29, #-68] <- 00009fc4(bl-succ)<return>
│ │ recreate_hyp_mappings:102.6 (setup.c) Sbepe if (║ret)
~ │ │ 00009fcc: b85bc3a8 ldur w8, [x29, #-68]
│ │ recreate_hyp_mappings:102.6 (setup.c) sbepe if (║ret)
~ │ │ ┌──00009fd0: 340000a8 cbz w8, 9fe4 <recreate_hyp_mappings+0xc4>
│ │ │
~ │ │ │┌─00009fd4: 14000001 b 9fd8 <recreate_hyp_mappings+0xb8> <- 00009fd0(b.cc-succ)<fallthrough>
│ │ ││
│ │ ││ recreate_hyp_mappings:103.10 (setup.c) Sbepe return ║ret;
~ │ │ │└>00009fd8: b85bc3a8 ldur w8, [x29, #-68] <- 00009fd4(b)<recreate_hyp_mappings+0xb8>
│ │ │ recreate_hyp_mappings:103.3 (setup.c) sbepe ║return ret;
~ │ │ │ 00009fdc: b81f43a8 stur w8, [x29, #-12]
~ │ │ ┌──────────────────┼──00009fe0: 140000c8 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │
│ │ │ │ recreate_hyp_mappings:105.25 (setup.c) Sbepe ret = hyp_back_vmemmap(║phys, size, hyp_virt_to_phys(vmemmap_base));
~ │ │ │ └─>00009fe4: f85e83a0 ldur x0, [x29, #-24] <- 00009fd0(b.cc)<recreate_hyp_mappings+0xc4>
│ │ │ recreate_hyp_mappings:105.31 (setup.c) sbepe ret = hyp_back_vmemmap(phys, ║size, hyp_virt_to_phys(vmemmap_base));
~ │ │ │ 00009fe8: f85e03a1 ldur x1, [x29, #-32]
│ │ │ recreate_hyp_mappings:105.54 (setup.c) sbepe ret = hyp_back_vmemmap(phys, size, hyp_virt_to_phys(║vmemmap_base));
~ │ │ │ 00009fec: b0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ │ │ 00009ff0: f945b508 ldr x8, [x8, #2920]
~ │ │ │ 00009ff4: f9000be0 str x0, [sp, #16]
│ │ │ recreate_hyp_mappings:105.37 (setup.c) sbepe ret = hyp_back_vmemmap(phys, size, ║hyp_virt_to_phys(vmemmap_base));
~ │ │ │ 00009ff8: aa0803e0 mov x0, x8
~ │ │ │ 00009ffc: f90007e1 str x1, [sp, #8]
~ │ │ │ 0000a000: 97ffff04 bl 9c10 <hyp_virt_to_phys>
│ │ │
~ │ │ │ 0000a004: f9400be8 ldr x8, [sp, #16] <- 0000a000(bl-succ)<return>
~ │ │ │ 0000a008: f90003e0 str x0, [sp]
│ │ │ recreate_hyp_mappings:105.8 (setup.c) sbepe ret = ║hyp_back_vmemmap(phys, size, hyp_virt_to_phys(vmemmap_base));
~ │ │ │ 0000a00c: aa0803e0 mov x0, x8
~ │ │ │ 0000a010: f94007e1 ldr x1, [sp, #8]
~ │ │ │ 0000a014: f94003e2 ldr x2, [sp]
~ │ │ │ 0000a018: 9400025d bl a98c <hyp_back_vmemmap>
│ │ │
│ │ │ recreate_hyp_mappings:105.6 (setup.c) sbepe ret ║= hyp_back_vmemmap(phys, size, hyp_virt_to_phys(vmemmap_base));
~ │ │ │ 0000a01c: b81bc3a0 stur w0, [x29, #-68] <- 0000a018(bl-succ)<return>
│ │ │ recreate_hyp_mappings:106.6 (setup.c) Sbepe if (║ret)
~ │ │ │ 0000a020: b85bc3a9 ldur w9, [x29, #-68]
│ │ │ recreate_hyp_mappings:106.6 (setup.c) sbepe if (║ret)
~ │ │ │ ┌──0000a024: 340000a9 cbz w9, a038 <recreate_hyp_mappings+0x118>
│ │ │ │
~ │ │ │ │┌─0000a028: 14000001 b a02c <recreate_hyp_mappings+0x10c> <- 0000a024(b.cc-succ)<fallthrough>
│ │ │ ││
│ │ │ ││ recreate_hyp_mappings:107.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │└>0000a02c: b85bc3a8 ldur w8, [x29, #-68] <- 0000a028(b)<recreate_hyp_mappings+0x10c>
│ │ │ │ recreate_hyp_mappings:107.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ 0000a030: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ ┌────────────────┼──0000a034: 140000b3 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │
│ │ │ │ │ recreate_hyp_mappings:109.28 (setup.c) Sbepe ret = hyp_create_mappings(║hyp_symbol_addr(__hyp_text_start),
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa038 0xa050 (DW_OP_fbreg -0x50) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:109
~ │ │ │ │ └─>0000a038: b0000088 adrp x8, 1b000 <hyp_memory+0x460> <- 0000a024(b.cc)<recreate_hyp_mappings+0x118>
~ │ │ │ │ 0000a03c: 91204108 add x8, x8, #0x810
~ │ │ │ │ 0000a040: f81b03a8 stur x8, [x29, #-80]
~ │ │ │ │ 0000a044: f85b03a8 ldur x8, [x29, #-80]
~ │ │ │ │ 0000a048: f81a83a8 stur x8, [x29, #-88]
~ │ │ │ │ 0000a04c: f85a83a0 ldur x0, [x29, #-88]
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa038 0xa050 (DW_OP_fbreg -0x50) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:109
│ │ │ │ recreate_hyp_mappings:110.7 (setup.c) Sbepe ║hyp_symbol_addr(__hyp_text_end),
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa050 0xa06c (DW_OP_fbreg -0x60) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:110
~ │ │ │ │ 0000a050: b0000088 adrp x8, 1b000 <hyp_memory+0x460>
~ │ │ │ │ 0000a054: 91206108 add x8, x8, #0x818
~ │ │ │ │ 0000a058: f81a03a8 stur x8, [x29, #-96]
~ │ │ │ │ 0000a05c: f85a03a8 ldur x8, [x29, #-96]
~ │ │ │ │ 0000a060: f81983a8 stur x8, [x29, #-104]
~ │ │ │ │ 0000a064: f85983a1 ldur x1, [x29, #-104]
~ │ │ │ │ 0000a068: 528000a2 mov w2, #0x5 // #5
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa050 0xa06c (DW_OP_fbreg -0x60) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:110
│ │ │ │ recreate_hyp_mappings:109.8 (setup.c) Sbepe ret = ║hyp_create_mappings(hyp_symbol_addr(__hyp_text_start),
~ │ │ │ │ 0000a06c: 9400020a bl a894 <hyp_create_mappings>
│ │ │ │
│ │ │ │ recreate_hyp_mappings:109.6 (setup.c) sbepe ret ║= hyp_create_mappings(hyp_symbol_addr(__hyp_text_start),
~ │ │ │ │ 0000a070: b81bc3a0 stur w0, [x29, #-68] <- 0000a06c(bl-succ)<return>
│ │ │ │ recreate_hyp_mappings:112.6 (setup.c) Sbepe if (║ret)
~ │ │ │ │ 0000a074: b85bc3a9 ldur w9, [x29, #-68]
│ │ │ │ recreate_hyp_mappings:112.6 (setup.c) sbepe if (║ret)
~ │ │ │ │ ┌──0000a078: 340000a9 cbz w9, a08c <recreate_hyp_mappings+0x16c>
│ │ │ │ │
~ │ │ │ │ │┌─0000a07c: 14000001 b a080 <recreate_hyp_mappings+0x160> <- 0000a078(b.cc-succ)<fallthrough>
│ │ │ │ ││
│ │ │ │ ││ recreate_hyp_mappings:113.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │└>0000a080: b85bc3a8 ldur w8, [x29, #-68] <- 0000a07c(b)<recreate_hyp_mappings+0x160>
│ │ │ │ │ recreate_hyp_mappings:113.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ 0000a084: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ ┌──────────────┼──0000a088: 1400009e b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │
│ │ │ │ │ │ recreate_hyp_mappings:115.28 (setup.c) Sbepe ret = hyp_create_mappings(║hyp_symbol_addr(__start_rodata),
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa08c 0xa0a4 (DW_OP_fbreg -0x70) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:115
~ │ │ │ │ │ └─>0000a08c: b0000088 adrp x8, 1b000 <hyp_memory+0x460> <- 0000a078(b.cc)<recreate_hyp_mappings+0x16c>
~ │ │ │ │ │ 0000a090: 911f8108 add x8, x8, #0x7e0
~ │ │ │ │ │ 0000a094: f81903a8 stur x8, [x29, #-112]
~ │ │ │ │ │ 0000a098: f85903a8 ldur x8, [x29, #-112]
~ │ │ │ │ │ 0000a09c: f81883a8 stur x8, [x29, #-120]
~ │ │ │ │ │ 0000a0a0: f85883a0 ldur x0, [x29, #-120]
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa08c 0xa0a4 (DW_OP_fbreg -0x70) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:115
│ │ │ │ │ recreate_hyp_mappings:116.7 (setup.c) Sbepe ║hyp_symbol_addr(__end_rodata), PAGE_HYP_RO);
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa0a4 0xa0c0 (DW_OP_fbreg -0x80) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:116
~ │ │ │ │ │ 0000a0a4: b0000088 adrp x8, 1b000 <hyp_memory+0x460>
~ │ │ │ │ │ 0000a0a8: 911fa108 add x8, x8, #0x7e8
~ │ │ │ │ │ 0000a0ac: f81803a8 stur x8, [x29, #-128]
~ │ │ │ │ │ 0000a0b0: f85803a8 ldur x8, [x29, #-128]
~ │ │ │ │ │ 0000a0b4: f90047e8 str x8, [sp, #136]
~ │ │ │ │ │ 0000a0b8: f94047e1 ldr x1, [sp, #136]
~ │ │ │ │ │ 0000a0bc: 52800082 mov w2, #0x4 // #4
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa0a4 0xa0c0 (DW_OP_fbreg -0x80) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:116
│ │ │ │ │ recreate_hyp_mappings:115.8 (setup.c) Sbepe ret = ║hyp_create_mappings(hyp_symbol_addr(__start_rodata),
~ │ │ │ │ │ 0000a0c0: 940001f5 bl a894 <hyp_create_mappings>
│ │ │ │ │
│ │ │ │ │ recreate_hyp_mappings:115.6 (setup.c) sbepe ret ║= hyp_create_mappings(hyp_symbol_addr(__start_rodata),
~ │ │ │ │ │ 0000a0c4: b81bc3a0 stur w0, [x29, #-68] <- 0000a0c0(bl-succ)<return>
│ │ │ │ │ recreate_hyp_mappings:117.6 (setup.c) Sbepe if (║ret)
~ │ │ │ │ │ 0000a0c8: b85bc3a9 ldur w9, [x29, #-68]
│ │ │ │ │ recreate_hyp_mappings:117.6 (setup.c) sbepe if (║ret)
~ │ │ │ │ │ ┌──0000a0cc: 340000a9 cbz w9, a0e0 <recreate_hyp_mappings+0x1c0>
│ │ │ │ │ │
~ │ │ │ │ │ │┌─0000a0d0: 14000001 b a0d4 <recreate_hyp_mappings+0x1b4> <- 0000a0cc(b.cc-succ)<fallthrough>
│ │ │ │ │ ││
│ │ │ │ │ ││ recreate_hyp_mappings:118.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │ │└>0000a0d4: b85bc3a8 ldur w8, [x29, #-68] <- 0000a0d0(b)<recreate_hyp_mappings+0x1b4>
│ │ │ │ │ │ recreate_hyp_mappings:118.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ │ 0000a0d8: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ ┌────────────┼──0000a0dc: 14000089 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │
│ │ │ │ │ │ │ recreate_hyp_mappings:120.28 (setup.c) Sbepe ret = hyp_create_mappings(║hyp_symbol_addr(__hyp_data_ro_after_init_start),
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa0e0 0xa0f8 (DW_OP_breg31 0x80) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:120
~ │ │ │ │ │ │ └─>0000a0e0: b0000088 adrp x8, 1b000 <hyp_memory+0x460> <- 0000a0cc(b.cc)<recreate_hyp_mappings+0x1c0>
~ │ │ │ │ │ │ 0000a0e4: 91208108 add x8, x8, #0x820
~ │ │ │ │ │ │ 0000a0e8: f90043e8 str x8, [sp, #128]
~ │ │ │ │ │ │ 0000a0ec: f94043e8 ldr x8, [sp, #128]
~ │ │ │ │ │ │ 0000a0f0: f9003fe8 str x8, [sp, #120]
~ │ │ │ │ │ │ 0000a0f4: f9403fe0 ldr x0, [sp, #120]
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa0e0 0xa0f8 (DW_OP_breg31 0x80) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:120
│ │ │ │ │ │ recreate_hyp_mappings:121.7 (setup.c) Sbepe ║hyp_symbol_addr(__hyp_data_ro_after_init_end),
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa0f8 0xa114 (DW_OP_breg31 0x70) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:121
~ │ │ │ │ │ │ 0000a0f8: b0000088 adrp x8, 1b000 <hyp_memory+0x460>
~ │ │ │ │ │ │ 0000a0fc: 9120a108 add x8, x8, #0x828
~ │ │ │ │ │ │ 0000a100: f9003be8 str x8, [sp, #112]
~ │ │ │ │ │ │ 0000a104: f9403be8 ldr x8, [sp, #112]
~ │ │ │ │ │ │ 0000a108: f90037e8 str x8, [sp, #104]
~ │ │ │ │ │ │ 0000a10c: f94037e1 ldr x1, [sp, #104]
~ │ │ │ │ │ │ 0000a110: 52800082 mov w2, #0x4 // #4
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa0f8 0xa114 (DW_OP_breg31 0x70) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:121
│ │ │ │ │ │ recreate_hyp_mappings:120.8 (setup.c) Sbepe ret = ║hyp_create_mappings(hyp_symbol_addr(__hyp_data_ro_after_init_start),
~ │ │ │ │ │ │ 0000a114: 940001e0 bl a894 <hyp_create_mappings>
│ │ │ │ │ │
│ │ │ │ │ │ recreate_hyp_mappings:120.6 (setup.c) sbepe ret ║= hyp_create_mappings(hyp_symbol_addr(__hyp_data_ro_after_init_start),
~ │ │ │ │ │ │ 0000a118: b81bc3a0 stur w0, [x29, #-68] <- 0000a114(bl-succ)<return>
│ │ │ │ │ │ recreate_hyp_mappings:123.6 (setup.c) Sbepe if (║ret)
~ │ │ │ │ │ │ 0000a11c: b85bc3a9 ldur w9, [x29, #-68]
│ │ │ │ │ │ recreate_hyp_mappings:123.6 (setup.c) sbepe if (║ret)
~ │ │ │ │ │ │ ┌──0000a120: 340000a9 cbz w9, a134 <recreate_hyp_mappings+0x214>
│ │ │ │ │ │ │
~ │ │ │ │ │ │ │┌─0000a124: 14000001 b a128 <recreate_hyp_mappings+0x208> <- 0000a120(b.cc-succ)<fallthrough>
│ │ │ │ │ │ ││
│ │ │ │ │ │ ││ recreate_hyp_mappings:124.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │ │ │└>0000a128: b85bc3a8 ldur w8, [x29, #-68] <- 0000a124(b)<recreate_hyp_mappings+0x208>
│ │ │ │ │ │ │ recreate_hyp_mappings:124.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ │ │ 0000a12c: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ │ ┌──────────┼──0000a130: 14000074 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ recreate_hyp_mappings:126.28 (setup.c) Sbepe ret = hyp_create_mappings(║hyp_symbol_addr(__bss_start),
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa134 0xa14c (DW_OP_breg31 0x60) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:126
~ │ │ │ │ │ │ │ └─>0000a134: b0000088 adrp x8, 1b000 <hyp_memory+0x460> <- 0000a120(b.cc)<recreate_hyp_mappings+0x214>
~ │ │ │ │ │ │ │ 0000a138: 911fc108 add x8, x8, #0x7f0
~ │ │ │ │ │ │ │ 0000a13c: f90033e8 str x8, [sp, #96]
~ │ │ │ │ │ │ │ 0000a140: f94033e8 ldr x8, [sp, #96]
~ │ │ │ │ │ │ │ 0000a144: f9002fe8 str x8, [sp, #88]
~ │ │ │ │ │ │ │ 0000a148: f9402fe0 ldr x0, [sp, #88]
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa134 0xa14c (DW_OP_breg31 0x60) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:126
│ │ │ │ │ │ │ recreate_hyp_mappings:127.7 (setup.c) Sbepe ║hyp_symbol_addr(__hyp_bss_end), PAGE_HYP);
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa14c 0xa168 (DW_OP_breg31 0x50) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:127
~ │ │ │ │ │ │ │ 0000a14c: b0000088 adrp x8, 1b000 <hyp_memory+0x460>
~ │ │ │ │ │ │ │ 0000a150: 9120e108 add x8, x8, #0x838
~ │ │ │ │ │ │ │ 0000a154: f9002be8 str x8, [sp, #80]
~ │ │ │ │ │ │ │ 0000a158: f9402be8 ldr x8, [sp, #80]
~ │ │ │ │ │ │ │ 0000a15c: f90027e8 str x8, [sp, #72]
~ │ │ │ │ │ │ │ 0000a160: f94027e1 ldr x1, [sp, #72]
~ │ │ │ │ │ │ │ 0000a164: 528000c2 mov w2, #0x6 // #6
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa14c 0xa168 (DW_OP_breg31 0x50) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:127
│ │ │ │ │ │ │ recreate_hyp_mappings:126.8 (setup.c) Sbepe ret = ║hyp_create_mappings(hyp_symbol_addr(__bss_start),
~ │ │ │ │ │ │ │ 0000a168: 940001cb bl a894 <hyp_create_mappings>
│ │ │ │ │ │ │
│ │ │ │ │ │ │ recreate_hyp_mappings:126.6 (setup.c) sbepe ret ║= hyp_create_mappings(hyp_symbol_addr(__bss_start),
~ │ │ │ │ │ │ │ 0000a16c: b81bc3a0 stur w0, [x29, #-68] <- 0000a168(bl-succ)<return>
│ │ │ │ │ │ │ recreate_hyp_mappings:128.6 (setup.c) Sbepe if (║ret)
~ │ │ │ │ │ │ │ 0000a170: b85bc3a9 ldur w9, [x29, #-68]
│ │ │ │ │ │ │ recreate_hyp_mappings:128.6 (setup.c) sbepe if (║ret)
~ │ │ │ │ │ │ │ ┌──0000a174: 340000a9 cbz w9, a188 <recreate_hyp_mappings+0x268>
│ │ │ │ │ │ │ │
~ │ │ │ │ │ │ │ │┌─0000a178: 14000001 b a17c <recreate_hyp_mappings+0x25c> <- 0000a174(b.cc-succ)<fallthrough>
│ │ │ │ │ │ │ ││
│ │ │ │ │ │ │ ││ recreate_hyp_mappings:129.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │ │ │ │└>0000a17c: b85bc3a8 ldur w8, [x29, #-68] <- 0000a178(b)<recreate_hyp_mappings+0x25c>
│ │ │ │ │ │ │ │ recreate_hyp_mappings:129.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ │ │ │ 0000a180: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ │ │ ┌────────┼──0000a184: 1400005f b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:131.28 (setup.c) Sbepe ret = hyp_create_mappings(║hyp_symbol_addr(__hyp_bss_end),
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa188 0xa1a0 (DW_OP_breg31 0x40) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:131
~ │ │ │ │ │ │ │ │ └─>0000a188: b0000088 adrp x8, 1b000 <hyp_memory+0x460> <- 0000a174(b.cc)<recreate_hyp_mappings+0x268>
~ │ │ │ │ │ │ │ │ 0000a18c: 9120e108 add x8, x8, #0x838
~ │ │ │ │ │ │ │ │ 0000a190: f90023e8 str x8, [sp, #64]
~ │ │ │ │ │ │ │ │ 0000a194: f94023e8 ldr x8, [sp, #64]
~ │ │ │ │ │ │ │ │ 0000a198: f9001fe8 str x8, [sp, #56]
~ │ │ │ │ │ │ │ │ 0000a19c: f9401fe0 ldr x0, [sp, #56]
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa188 0xa1a0 (DW_OP_breg31 0x40) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:131
│ │ │ │ │ │ │ │ recreate_hyp_mappings:132.7 (setup.c) Sbepe ║hyp_symbol_addr(__bss_stop), PAGE_HYP_RO);
+addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa1a0 0xa1bc (DW_OP_breg31 0x30) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:132
~ │ │ │ │ │ │ │ │ 0000a1a0: b0000088 adrp x8, 1b000 <hyp_memory+0x460>
~ │ │ │ │ │ │ │ │ 0000a1a4: 911fe108 add x8, x8, #0x7f8
~ │ │ │ │ │ │ │ │ 0000a1a8: f9001be8 str x8, [sp, #48]
~ │ │ │ │ │ │ │ │ 0000a1ac: f9401be8 ldr x8, [sp, #48]
~ │ │ │ │ │ │ │ │ 0000a1b0: f90017e8 str x8, [sp, #40]
~ │ │ │ │ │ │ │ │ 0000a1b4: f94017e1 ldr x1, [sp, #40]
~ │ │ │ │ │ │ │ │ 0000a1b8: 52800082 mov w2, #0x4 // #4
-addr var pointer(char (base type, DW_ATE_unsigned_char size:1)[no count]) 0xa1a0 0xa1bc (DW_OP_breg31 0x30) lexblock:recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:132
│ │ │ │ │ │ │ │ recreate_hyp_mappings:131.8 (setup.c) Sbepe ret = ║hyp_create_mappings(hyp_symbol_addr(__hyp_bss_end),
~ │ │ │ │ │ │ │ │ 0000a1bc: 940001b6 bl a894 <hyp_create_mappings>
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ recreate_hyp_mappings:131.6 (setup.c) sbepe ret ║= hyp_create_mappings(hyp_symbol_addr(__hyp_bss_end),
~ │ │ │ │ │ │ │ │ 0000a1c0: b81bc3a0 stur w0, [x29, #-68] <- 0000a1bc(bl-succ)<return>
│ │ │ │ │ │ │ │ recreate_hyp_mappings:133.6 (setup.c) Sbepe if (║ret)
~ │ │ │ │ │ │ │ │ 0000a1c4: b85bc3a9 ldur w9, [x29, #-68]
│ │ │ │ │ │ │ │ recreate_hyp_mappings:133.6 (setup.c) sbepe if (║ret)
~ │ │ │ │ │ │ │ │ ┌──0000a1c8: 340000a9 cbz w9, a1dc <recreate_hyp_mappings+0x2bc>
│ │ │ │ │ │ │ │ │
~ │ │ │ │ │ │ │ │ │┌─0000a1cc: 14000001 b a1d0 <recreate_hyp_mappings+0x2b0> <- 0000a1c8(b.cc-succ)<fallthrough>
│ │ │ │ │ │ │ │ ││
│ │ │ │ │ │ │ │ ││ recreate_hyp_mappings:134.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │ │ │ │ │└>0000a1d0: b85bc3a8 ldur w8, [x29, #-68] <- 0000a1cc(b)<recreate_hyp_mappings+0x2b0>
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:134.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ │ │ │ │ 0000a1d4: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ │ │ │ ┌──────┼──0000a1d8: 1400004a b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:136.28 (setup.c) Sbepe ret = hyp_create_mappings(║virt, virt + size - 1, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ └─>0000a1dc: f85c03a8 ldur x8, [x29, #-64] <- 0000a1c8(b.cc)<recreate_hyp_mappings+0x2bc>
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:136.41 (setup.c) sbepe ret = hyp_create_mappings(virt, virt + ║size - 1, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ 0000a1e0: f85e03a9 ldur x9, [x29, #-32]
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:136.39 (setup.c) sbepe ret = hyp_create_mappings(virt, virt ║+ size - 1, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ 0000a1e4: 8b090109 add x9, x8, x9
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:136.46 (setup.c) sbepe ret = hyp_create_mappings(virt, virt + size ║- 1, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ 0000a1e8: f1000521 subs x1, x9, #0x1
~ │ │ │ │ │ │ │ │ │ 0000a1ec: 528000c2 mov w2, #0x6 // #6
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:136.8 (setup.c) sbepe ret = ║hyp_create_mappings(virt, virt + size - 1, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ 0000a1f0: aa0803e0 mov x0, x8
~ │ │ │ │ │ │ │ │ │ 0000a1f4: 940001a8 bl a894 <hyp_create_mappings>
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:136.6 (setup.c) sbepe ret ║= hyp_create_mappings(virt, virt + size - 1, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ 0000a1f8: b81bc3a0 stur w0, [x29, #-68] <- 0000a1f4(bl-succ)<return>
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:137.6 (setup.c) Sbepe if (║ret)
~ │ │ │ │ │ │ │ │ │ 0000a1fc: b85bc3aa ldur w10, [x29, #-68]
│ │ │ │ │ │ │ │ │ recreate_hyp_mappings:137.6 (setup.c) sbepe if (║ret)
~ │ │ │ │ │ │ │ │ │ ┌──0000a200: 340000aa cbz w10, a214 <recreate_hyp_mappings+0x2f4>
│ │ │ │ │ │ │ │ │ │
~ │ │ │ │ │ │ │ │ │ │┌─0000a204: 14000001 b a208 <recreate_hyp_mappings+0x2e8> <- 0000a200(b.cc-succ)<fallthrough>
│ │ │ │ │ │ │ │ │ ││
│ │ │ │ │ │ │ │ │ ││ recreate_hyp_mappings:138.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │ │ │ │ │ │└>0000a208: b85bc3a8 ldur w8, [x29, #-68] <- 0000a204(b)<recreate_hyp_mappings+0x2e8>
│ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:138.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ │ │ │ │ │ 0000a20c: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ │ │ │ │ ┌────┼──0000a210: 1400003c b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │ │ │ │ │
~ │ │ │ │ │ │ │ │ │ │ └─>0000a214: 2a1f03e8 mov w8, wzr <- 0000a200(b.cc)<recreate_hyp_mappings+0x2f4>
│ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:140.9 (setup.c) Sbepe for (i ║= 0; i < hyp_nr_cpus; i++) {
~ │ │ │ │ │ │ │ │ │ │ 0000a218: b81b83a8 stur w8, [x29, #-72]
│ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:140.7 (setup.c) sbepe for (║i = 0; i < hyp_nr_cpus; i++) {
~ │ │ │ │ │ │ │ │ │ │ ┌─0000a21c: 14000001 b a220 <recreate_hyp_mappings+0x300>
│ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:140.14 (setup.c) sbepe for (i = 0; ║i < hyp_nr_cpus; i++) {
~ │ │ │ │ │ │ │ │ │ │╔═══>└>0000a220: b89b83a8 ldursw x8, [x29, #-72] <- 0000a21c(b)<recreate_hyp_mappings+0x300>,v0000a2d0(b)<recreate_hyp_mappings+0x300>
│ │ │ │ │ │ │ │ │ │║ recreate_hyp_mappings:140.18 (setup.c) sbepe for (i = 0; i < ║hyp_nr_cpus; i++) {
~ │ │ │ │ │ │ │ │ │ │║ 0000a224: 90000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ │ │ │ │ │ │ │ │ │║ 0000a228: f9459d29 ldr x9, [x9, #2872]
│ │ │ │ │ │ │ │ │ │║ recreate_hyp_mappings:140.2 (setup.c) sbepe ║for (i = 0; i < hyp_nr_cpus; i++) {
~ │ │ │ │ │ │ │ │ │ │║ 0000a22c: eb090108 subs x8, x8, x9
~ │ │ │ │ │ │ │ │ │ │║ ┌────0000a230: 54000522 b.cs a2d4 <recreate_hyp_mappings+0x3b4> // b.hs, b.nlast
│ │ │ │ │ │ │ │ │ │║ │
~ │ │ │ │ │ │ │ │ │ │║ │ ┌─0000a234: 14000001 b a238 <recreate_hyp_mappings+0x318> <- 0000a230(b.cc-succ)<fallthrough>
│ │ │ │ │ │ │ │ │ │║ │ │
│ │ │ │ │ │ │ │ │ │║ │ │ recreate_hyp_mappings:141.19 (setup.c) Sbepe start = (void *)║kern_hyp_va(per_cpu_base[i]);
~ │ │ │ │ │ │ │ │ │ │║ │ └>0000a238: f85d83a8 ldur x8, [x29, #-40] <- 0000a234(b)<recreate_hyp_mappings+0x318>
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a23c: b89b83a9 ldursw x9, [x29, #-72]
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a240: f8697908 ldr x8, [x8, x9, lsl #3]
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a244: f81f83a8 stur x8, [x29, #-8]
t: 0xa248 0xa268 __kern_hyp_va inlined from recreate_hyp_mappings:141 (setup.c) <7ae43>:
t │ │ │ │ │ │ │ │ │ │║ │ __kern_hyp_va:135.2 (kvm_mmu.h) Sbepe ║asm volatile(ALTERNATIVE_CB("and %0, %0, #1\n"
+v param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa248 0xa268 (DW_OP_fbreg -0x8) __kern_hyp_va(inlined):recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a248: f85f83a8 ldur x8, [x29, #-8]
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a24c: 92400108 and x8, x8, #0x1
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a250: 93c80508 ror x8, x8, #1
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a254: 91000108 add x8, x8, #0x0
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a258: 91400108 add x8, x8, #0x0, lsl #12
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a25c: 93c8fd08 ror x8, x8, #63
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a260: f81f83a8 stur x8, [x29, #-8]
t │ │ │ │ │ │ │ │ │ │║ │ __kern_hyp_va:142.9 (kvm_mmu.h) Sbepe return v;
~t │ │ │ │ │ │ │ │ │ │║ │ 0000a264: f85f83a8 ldur x8, [x29, #-8]
-v param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa248 0xa268 (DW_OP_fbreg -0x8) __kern_hyp_va(inlined):recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:141.9 (setup.c) Sbepe start ║= (void *)kern_hyp_va(per_cpu_base[i]);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a268: f81d03a8 stur x8, [x29, #-48]
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:142.9 (setup.c) Sbepe end = ║start + PAGE_ALIGN(hyp_percpu_size);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a26c: f85d03a8 ldur x8, [x29, #-48]
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:142.15 (setup.c) sbepe end = start ║+ PAGE_ALIGN(hyp_percpu_size);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a270: f0000069 adrp x9, 19000 <kvm_host_data>
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a274: 91000129 add x9, x9, #0x0
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a278: f000006a adrp x10, 19000 <kvm_host_data>
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a27c: 913a214a add x10, x10, #0xe88
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a280: eb090149 subs x9, x10, x9
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a284: 913ffd29 add x9, x9, #0xfff
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a288: 9274cd29 and x9, x9, #0xfffffffffffff000
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a28c: 8b090108 add x8, x8, x9
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:142.7 (setup.c) sbepe end ║= start + PAGE_ALIGN(hyp_percpu_size);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a290: f81c83a8 stur x8, [x29, #-56]
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:143.29 (setup.c) Sbepe ret = hyp_create_mappings(║start, end, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a294: f85d03a0 ldur x0, [x29, #-48]
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:143.36 (setup.c) sbepe ret = hyp_create_mappings(start, ║end, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a298: f85c83a1 ldur x1, [x29, #-56]
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a29c: 528000c2 mov w2, #0x6 // #6
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:143.9 (setup.c) sbepe ret = ║hyp_create_mappings(start, end, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a2a0: 9400017d bl a894 <hyp_create_mappings>
│ │ │ │ │ │ │ │ │ │║ │
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:143.7 (setup.c) sbepe ret ║= hyp_create_mappings(start, end, PAGE_HYP);
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a2a4: b81bc3a0 stur w0, [x29, #-68] <- 0000a2a0(bl-succ)<return>
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:144.7 (setup.c) Sbepe if (║ret)
~ │ │ │ │ │ │ │ │ │ │║ │ 0000a2a8: b85bc3ab ldur w11, [x29, #-68]
│ │ │ │ │ │ │ │ │ │║ │ recreate_hyp_mappings:144.7 (setup.c) sbepe if (║ret)
~ │ │ │ │ │ │ │ │ │ │║ │┌───0000a2ac: 340000ab cbz w11, a2c0 <recreate_hyp_mappings+0x3a0>
│ │ │ │ │ │ │ │ │ │║ ││
~ │ │ │ │ │ │ │ │ │ │║ ││ ┌─0000a2b0: 14000001 b a2b4 <recreate_hyp_mappings+0x394> <- 0000a2ac(b.cc-succ)<fallthrough>
│ │ │ │ │ │ │ │ │ │║ ││ │
│ │ │ │ │ │ │ │ │ │║ ││ │ recreate_hyp_mappings:145.11 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │ │ │ │ │ │║ ││ └>0000a2b4: b85bc3a8 ldur w8, [x29, #-68] <- 0000a2b0(b)<recreate_hyp_mappings+0x394>
│ │ │ │ │ │ │ │ │ │║ ││ recreate_hyp_mappings:145.4 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ │ │ │ │ │║ ││ 0000a2b8: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ │ │ │ │ │║┌┼┼───0000a2bc: 14000011 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │ │ │ │║│││
│ │ │ │ │ │ │ │ │ │║│││ recreate_hyp_mappings:146.2 (setup.c) Sbepe }
~ │ │ │ │ │ │ │ │ │ │║││└>┌─0000a2c0: 14000001 b a2c4 <recreate_hyp_mappings+0x3a4> <- 0000a2ac(b.cc)<recreate_hyp_mappings+0x3a0>
│ │ │ │ │ │ │ │ │ │║││ │
│ │ │ │ │ │ │ │ │ │║││ │ recreate_hyp_mappings:140.32 (setup.c) Sbepe for (i = 0; i < hyp_nr_cpus; i║++) {
~ │ │ │ │ │ │ │ │ │ │║││ └>0000a2c4: b85b83a8 ldur w8, [x29, #-72] <- 0000a2c0(b)<recreate_hyp_mappings+0x3a4>
~ │ │ │ │ │ │ │ │ │ │║││ 0000a2c8: 11000508 add w8, w8, #0x1
~ │ │ │ │ │ │ │ │ │ │║││ 0000a2cc: b81b83a8 stur w8, [x29, #-72]
│ │ │ │ │ │ │ │ │ │║││ recreate_hyp_mappings:140.2 (setup.c) sbepe ║for (i = 0; i < hyp_nr_cpus; i++) {
~ │ │ │ │ │ │ │ │ │ │╚╪╪════0000a2d0: 17ffffd4 b a220 <recreate_hyp_mappings+0x300>
│ │ │ │ │ │ │ │ │ │ ││
│ │ │ │ │ │ │ │ │ │ ││ recreate_hyp_mappings:148.8 (setup.c) Sbepe ret = ║create_hyp_debug_uart_mapping();
~ │ │ │ │ │ │ │ │ │ │ │└───>0000a2d4: 940000dc bl a644 <create_hyp_debug_uart_mapping> <- 0000a230(b.cc)<recreate_hyp_mappings+0x3b4>
│ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:148.6 (setup.c) sbepe ret ║= create_hyp_debug_uart_mapping();
~ │ │ │ │ │ │ │ │ │ │ │ 0000a2d8: b81bc3a0 stur w0, [x29, #-68] <- 0000a2d4(bl-succ)<return>
│ │ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:149.6 (setup.c) Sbepe if (║ret)
~ │ │ │ │ │ │ │ │ │ │ │ 0000a2dc: b85bc3a8 ldur w8, [x29, #-68]
│ │ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:149.6 (setup.c) sbepe if (║ret)
~ │ │ │ │ │ │ │ │ │ │ │ ┌──0000a2e0: 340000a8 cbz w8, a2f4 <recreate_hyp_mappings+0x3d4>
│ │ │ │ │ │ │ │ │ │ │ │
~ │ │ │ │ │ │ │ │ │ │ │ │┌─0000a2e4: 14000001 b a2e8 <recreate_hyp_mappings+0x3c8> <- 0000a2e0(b.cc-succ)<fallthrough>
│ │ │ │ │ │ │ │ │ │ │ ││
│ │ │ │ │ │ │ │ │ │ │ ││ recreate_hyp_mappings:150.10 (setup.c) Sbepe return ║ret;
~ │ │ │ │ │ │ │ │ │ │ │ │└>0000a2e8: b85bc3a8 ldur w8, [x29, #-68] <- 0000a2e4(b)<recreate_hyp_mappings+0x3c8>
│ │ │ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:150.3 (setup.c) sbepe ║return ret;
~ │ │ │ │ │ │ │ │ │ │ │ │ 0000a2ec: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ │ │ │ │ │ │ ┌┼──0000a2f0: 14000004 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │ │ │ │ │ ││
~ │ │ │ │ │ │ │ │ │ │ │ │└─>0000a2f4: 2a1f03e8 mov w8, wzr <- 0000a2e0(b.cc)<recreate_hyp_mappings+0x3d4>
│ │ │ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:152.2 (setup.c) Sbepe ║return 0;
~ │ │ │ │ │ │ │ │ │ │ │ │ 0000a2f8: b81f43a8 stur w8, [x29, #-12]
~ │ │ │ │ │ │ │ │ │ │ │ │ ┌─0000a2fc: 14000001 b a300 <recreate_hyp_mappings+0x3e0>
│ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ recreate_hyp_mappings:153.1 (setup.c) Sbepe ║}
~ └>└>└>└>└>└>└>└>└>└>└>└>└>0000a300: b85f43a0 ldur w0, [x29, #-12] <- 00009fa0(b)<recreate_hyp_mappings+0x3e0>,00009fc0(b)<recreate_hyp_mappings+0x3e0>,00009fe0(b)<recreate_hyp_mappings+0x3e0>,0000a034(b)<recreate_hyp_mappings+0x3e0>,0000a088(b)<recreate_hyp_mappings+0x3e0>,0000a0dc(b)<recreate_hyp_mappings+0x3e0>,0000a130(b)<recreate_hyp_mappings+0x3e0>,0000a184(b)<recreate_hyp_mappings+0x3e0>,0000a1d8(b)<recreate_hyp_mappings+0x3e0>,0000a210(b)<recreate_hyp_mappings+0x3e0>,0000a2bc(b)<recreate_hyp_mappings+0x3e0>,0000a2f0(b)<recreate_hyp_mappings+0x3e0>,0000a2fc(b)<recreate_hyp_mappings+0x3e0>
~ 0000a304: f94093fc ldr x28, [sp, #288]
~ 0000a308: a9517bfd ldp x29, x30, [sp, #272]
~ 0000a30c: 9104c3ff add sp, sp, #0x130
00009f30 CFA:r29+32 r28:c-16 r29:c-32 r30:c-24
~ 0000a310: d65f03c0 ret
-phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x9f20 0xa314 (DW_OP_fbreg -0x18) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:84
-size param long unsigned int (base type, DW_ATE_unsigned size:8) 0x9f20 0xa314 (DW_OP_fbreg -0x20) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:84
-per_cpu_base param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0x9f20 0xa314 (DW_OP_fbreg -0x28) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:85
-start var pointer(no type) 0x9f20 0xa314 (DW_OP_fbreg -0x30) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:87
-end var pointer(no type) 0x9f20 0xa314 (DW_OP_fbreg -0x38) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:87
-virt var pointer(no type) 0x9f20 0xa314 (DW_OP_fbreg -0x40) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:87
-ret var int (base type, DW_ATE_signed size:4) 0x9f20 0xa314 (DW_OP_fbreg -0x44) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:88
-i var int (base type, DW_ATE_signed size:4) 0x9f20 0xa314 (DW_OP_fbreg -0x48) recreate_hyp_mappings:arch/arm64/kvm/hyp/nvhe/setup.c:88
**0000a314 <update_nvhe_init_params>:
+ update_nvhe_init_params params: none
update_nvhe_init_params:156.0 (setup.c) Sbepe ║{
+params var pointer(struct kvm_nvhe_init_params<6c1ec>/<7a8ef>) 0xa314 0xa3fc (DW_OP_fbreg -0x8) update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:157
+i var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa314 0xa3fc (DW_OP_fbreg -0x10) update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:158
+stack var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa314 0xa3fc (DW_OP_fbreg -0x18) update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:158
~ 0000a314: d10143ff sub sp, sp, #0x50 <- 00009d10(bl)<update_nvhe_init_params>
~ 0000a318: a9047bfd stp x29, x30, [sp, #64]
0000a314 CFA:r31 r29:u r30:u
~ 0000a31c: 910103fd add x29, sp, #0x40
~ 0000a320: aa1f03e8 mov x8, xzr
update_nvhe_init_params:160.9 (setup.c) SbePe for (i ║= 0; i < hyp_nr_cpus; i++) {
~ 0000a324: f81f03a8 stur x8, [x29, #-16]
update_nvhe_init_params:160.7 (setup.c) sbepe for (║i = 0; i < hyp_nr_cpus; i++) {
~ ┌─0000a328: 14000001 b a32c <update_nvhe_init_params+0x18>
│
│ update_nvhe_init_params:160.14 (setup.c) sbepe for (i = 0; ║i < hyp_nr_cpus; i++) {
~ ╔>└>0000a32c: f85f03a8 ldur x8, [x29, #-16] <- 0000a328(b)<update_nvhe_init_params+0x18>,v0000a3ec(b)<update_nvhe_init_params+0x18>
║ update_nvhe_init_params:160.18 (setup.c) sbepe for (i = 0; i < ║hyp_nr_cpus; i++) {
~ ║ 0000a330: 90000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ ║ 0000a334: f9459d29 ldr x9, [x9, #2872]
║ update_nvhe_init_params:160.2 (setup.c) sbepe ║for (i = 0; i < hyp_nr_cpus; i++) {
~ ║ 0000a338: eb090108 subs x8, x8, x9
~ ║┌──0000a33c: 540005a2 b.cs a3f0 <update_nvhe_init_params+0xdc> // b.hs, b.nlast
║│
~ ║│┌─0000a340: 14000001 b a344 <update_nvhe_init_params+0x30> <- 0000a33c(b.cc-succ)<fallthrough>
║││
║││ update_nvhe_init_params:161.26 (setup.c) Sbepe stack = (unsigned long)║stacks_base + (i << PAGE_SHIFT);
~ ║│└>0000a344: 90000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 0000a340(b)<update_nvhe_init_params+0x30>
~ ║│ 0000a348: f945b108 ldr x8, [x8, #2912]
║│ update_nvhe_init_params:161.41 (setup.c) sbepe stack = (unsigned long)stacks_base + (║i << PAGE_SHIFT);
~ ║│ 0000a34c: f85f03a9 ldur x9, [x29, #-16]
║│ update_nvhe_init_params:161.38 (setup.c) sbepe stack = (unsigned long)stacks_base ║+ (i << PAGE_SHIFT);
~ ║│ 0000a350: 8b093108 add x8, x8, x9, lsl #12
║│ update_nvhe_init_params:161.9 (setup.c) sbepe stack ║= (unsigned long)stacks_base + (i << PAGE_SHIFT);
~ ║│ 0000a354: f81e83a8 stur x8, [x29, #-24]
║│ update_nvhe_init_params:162.12 (setup.c) Sbepe params = ║per_cpu_ptr(&kvm_init_params, i);
~ ║│┌─0000a358: 14000001 b a35c <update_nvhe_init_params+0x48>
║││
~ ║│└>0000a35c: aa1f03e8 mov x8, xzr <- 0000a358(b)<update_nvhe_init_params+0x48>
║│ update_nvhe_init_params:162.12 (setup.c) sbepe params = ║per_cpu_ptr(&kvm_init_params, i);
+__vpp_verify var pointer(const(no type)) 0xa360 0xa368 (DW_OP_breg31 0x20) lexblock:update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:162
~ ║│ 0000a360: f90013e8 str x8, [sp, #32]
~ ║│┌─0000a364: 14000001 b a368 <update_nvhe_init_params+0x54>
-__vpp_verify var pointer(const(no type)) 0xa360 0xa368 (DW_OP_breg31 0x20) lexblock:update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:162
║││
║││ update_nvhe_init_params:162.12 (setup.c) sbepe params = ║per_cpu_ptr(&kvm_init_params, i);
+__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa368 0xa394 (DW_OP_breg31 0x10) lexblock:update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:162
~ ║│└>0000a368: f0000068 adrp x8, 19000 <kvm_host_data> <- 0000a364(b)<update_nvhe_init_params+0x54>
~ ║│ 0000a36c: 91386108 add x8, x8, #0xe18
~ ║│ 0000a370: f9000be8 str x8, [sp, #16]
~ ║│ 0000a374: f9400be8 ldr x8, [sp, #16]
~ ║│ 0000a378: b85f03a0 ldur w0, [x29, #-16]
~ ║│ 0000a37c: f90003e8 str x8, [sp]
~ ║│ 0000a380: 97fff502 bl 7788 <__hyp_per_cpu_offset>
║│
~ ║│ 0000a384: f94003e8 ldr x8, [sp] <- 0000a380(bl-succ)<return>
~ ║│ 0000a388: 8b000108 add x8, x8, x0
~ ║│ 0000a38c: f90007e8 str x8, [sp, #8]
~ ║│ 0000a390: f94007e8 ldr x8, [sp, #8]
-__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa368 0xa394 (DW_OP_breg31 0x10) lexblock:update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:162
║│ update_nvhe_init_params:162.12 (setup.c) sbepe params = ║per_cpu_ptr(&kvm_init_params, i);
+__vpp_verify var pointer(const(no type)) 0xa394 0xa398 (DW_OP_breg31 0x20) lexblock:update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:162
~ ║│ 0000a394: f9000fe8 str x8, [sp, #24]
-__vpp_verify var pointer(const(no type)) 0xa394 0xa398 (DW_OP_breg31 0x20) lexblock:update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:162
║│ update_nvhe_init_params:162.12 (setup.c) sbepe params = ║per_cpu_ptr(&kvm_init_params, i);
~ ║│ 0000a398: f9400fe8 ldr x8, [sp, #24]
║│ update_nvhe_init_params:162.10 (setup.c) sbepe params ║= per_cpu_ptr(&kvm_init_params, i);
~ ║│ 0000a39c: f81f83a8 stur x8, [x29, #-8]
║│ update_nvhe_init_params:163.26 (setup.c) Sbepe params->stack_hyp_va = ║stack + PAGE_SIZE;
~ ║│ 0000a3a0: f85e83a8 ldur x8, [x29, #-24]
║│ update_nvhe_init_params:163.32 (setup.c) sbepe params->stack_hyp_va = stack ║+ PAGE_SIZE;
~ ║│ 0000a3a4: 91400508 add x8, x8, #0x1, lsl #12
║│ update_nvhe_init_params:163.3 (setup.c) sbepe ║params->stack_hyp_va = stack + PAGE_SIZE;
~ ║│ 0000a3a8: f85f83a9 ldur x9, [x29, #-8]
║│ update_nvhe_init_params:163.24 (setup.c) sbepe params->stack_hyp_va ║= stack + PAGE_SIZE;
~ ║│ 0000a3ac: f9000d28 str x8, [x9, #24]
║│ update_nvhe_init_params:164.20 (setup.c) Sbepe params->pgd_pa = ║__hyp_pa(hyp_pgtable.pgd);
~ ║│ 0000a3b0: 90000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0>
~ ║│ 0000a3b4: f945c108 ldr x8, [x8, #2944]
~ ║│ 0000a3b8: 90000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ ║│ 0000a3bc: f9439d29 ldr x9, [x9, #1848]
~ ║│ 0000a3c0: 8b090108 add x8, x8, x9
║│ update_nvhe_init_params:164.3 (setup.c) sbepe ║params->pgd_pa = __hyp_pa(hyp_pgtable.pgd);
~ ║│ 0000a3c4: f85f83a9 ldur x9, [x29, #-8]
║│ update_nvhe_init_params:164.18 (setup.c) sbepe params->pgd_pa ║= __hyp_pa(hyp_pgtable.pgd);
~ ║│ 0000a3c8: f9001128 str x8, [x9, #32]
║│ update_nvhe_init_params:165.23 (setup.c) Sbepe __flush_dcache_area(║params, sizeof(*params));
~ ║│ 0000a3cc: f85f83a0 ldur x0, [x29, #-8]
~ ║│ 0000a3d0: 5280080a mov w10, #0x40 // #64
~ ║│ 0000a3d4: 2a0a03e1 mov w1, w10
║│ update_nvhe_init_params:165.3 (setup.c) sbepe ║__flush_dcache_area(params, sizeof(*params));
~ ║│ 0000a3d8: 97fffd74 bl 99a8 <__flush_dcache_area>
║│
║│ update_nvhe_init_params:166.2 (setup.c) Sbepe }
~ ║│┌─0000a3dc: 14000001 b a3e0 <update_nvhe_init_params+0xcc> <- 0000a3d8(bl-succ)<return>
║││
║││ update_nvhe_init_params:160.32 (setup.c) Sbepe for (i = 0; i < hyp_nr_cpus; i║++) {
~ ║│└>0000a3e0: f85f03a8 ldur x8, [x29, #-16] <- 0000a3dc(b)<update_nvhe_init_params+0xcc>
~ ║│ 0000a3e4: 91000508 add x8, x8, #0x1
~ ║│ 0000a3e8: f81f03a8 stur x8, [x29, #-16]
║│ update_nvhe_init_params:160.2 (setup.c) sbepe ║for (i = 0; i < hyp_nr_cpus; i++) {
~ ╚╪══0000a3ec: 17ffffd0 b a32c <update_nvhe_init_params+0x18>
│
│ update_nvhe_init_params:167.1 (setup.c) Sbepe ║}
~ └─>0000a3f0: a9447bfd ldp x29, x30, [sp, #64] <- 0000a33c(b.cc)<update_nvhe_init_params+0xdc>
~ 0000a3f4: 910143ff add sp, sp, #0x50
0000a320 CFA:r29+16 r29:c-16 r30:c-8
~ 0000a3f8: d65f03c0 ret
-params var pointer(struct kvm_nvhe_init_params<6c1ec>/<7a8ef>) 0xa314 0xa3fc (DW_OP_fbreg -0x8) update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:157
-i var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa314 0xa3fc (DW_OP_fbreg -0x10) update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:158
-stack var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa314 0xa3fc (DW_OP_fbreg -0x18) update_nvhe_init_params:arch/arm64/kvm/hyp/nvhe/setup.c:158
**0000a3fc <__hyp_pgtable_total_size>:
+ __hyp_pgtable_total_size params: none
__hyp_pgtable_total_size:56.0 (mm.h) Sbepe ║{
+reg var pointer(struct hyp_memblock_region<6c1ec>/<7b082>) 0xa3fc 0xa4a0 (DW_OP_fbreg -0x8) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:57
+nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa3fc 0xa4a0 (DW_OP_breg31 0x10) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:58
+res var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa3fc 0xa4a0 (DW_OP_breg31 0x8) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:58
+i var int (base type, DW_ATE_signed size:4) 0xa3fc 0xa4a0 (DW_OP_breg31 0x4) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:59
~ 0000a3fc: d100c3ff sub sp, sp, #0x30 <- 00009b74(bl)<__hyp_pgtable_total_size>,0000a5cc(bl)<__hyp_pgtable_total_size>
~ 0000a400: a9027bfd stp x29, x30, [sp, #32]
0000a3fc CFA:r31 r29:u r30:u
~ 0000a404: 910083fd add x29, sp, #0x20
~ 0000a408: aa1f03e8 mov x8, xzr
__hyp_pgtable_total_size:58.26 (mm.h) SbePe unsigned long nr_pages, ║res = 0;
~ 0000a40c: f90007e8 str x8, [sp, #8]
~ 0000a410: 2a1f03e9 mov w9, wzr
__hyp_pgtable_total_size:61.9 (mm.h) Sbepe for (i ║= 0; i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
~ 0000a414: b90007e9 str w9, [sp, #4]
__hyp_pgtable_total_size:61.7 (mm.h) sbepe for (║i = 0; i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
~ ┌─0000a418: 14000001 b a41c <__hyp_pgtable_total_size+0x20>
│
│ __hyp_pgtable_total_size:61.14 (mm.h) sbepe for (i = 0; ║i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
~ ╔>└>0000a41c: b94007e8 ldr w8, [sp, #4] <- 0000a418(b)<__hyp_pgtable_total_size+0x20>,v0000a48c(b)<__hyp_pgtable_total_size+0x20>
║ __hyp_pgtable_total_size:61.18 (mm.h) sbepe for (i = 0; i < ║kvm_nvhe_sym(hyp_memblock_nr); i++) {
~ ║ 0000a420: b0000089 adrp x9, 1b000 <hyp_memory+0x460>
~ ║ 0000a424: b943a12a ldr w10, [x9, #928]
║ __hyp_pgtable_total_size:61.2 (mm.h) sbepe ║for (i = 0; i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
~ ║ 0000a428: 6b0a0108 subs w8, w8, w10
~ ║┌──0000a42c: 5400032a b.ge a490 <__hyp_pgtable_total_size+0x94> // b.tcont
║│
~ ║│┌─0000a430: 14000001 b a434 <__hyp_pgtable_total_size+0x38> <- 0000a42c(b.cc-succ)<fallthrough>
║││
║││ __hyp_pgtable_total_size:62.35 (mm.h) Sbepe reg = &kvm_nvhe_sym(hyp_memory)[║i];
~ ║│└>0000a434: b98007e8 ldrsw x8, [sp, #4] <- 0000a430(b)<__hyp_pgtable_total_size+0x38>
║│ __hyp_pgtable_total_size:62.10 (mm.h) sbepe reg = &║kvm_nvhe_sym(hyp_memory)[i];
~ ║│ 0000a438: 90000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ ║│ 0000a43c: 912e8129 add x9, x9, #0xba0
~ ║│ 0000a440: 8b081128 add x8, x9, x8, lsl #4
║│ __hyp_pgtable_total_size:62.7 (mm.h) sbepe reg ║= &kvm_nvhe_sym(hyp_memory)[i];
~ ║│ 0000a444: f81f83a8 stur x8, [x29, #-8]
║│ __hyp_pgtable_total_size:63.15 (mm.h) Sbepe nr_pages = (║reg->end - reg->start) >> PAGE_SHIFT;
~ ║│ 0000a448: f85f83a8 ldur x8, [x29, #-8]
║│ __hyp_pgtable_total_size:63.20 (mm.h) sbepe nr_pages = (reg->║end - reg->start) >> PAGE_SHIFT;
~ ║│ 0000a44c: f9400509 ldr x9, [x8, #8]
║│ __hyp_pgtable_total_size:63.31 (mm.h) sbepe nr_pages = (reg->end - reg->║start) >> PAGE_SHIFT;
~ ║│ 0000a450: f9400108 ldr x8, [x8]
║│ __hyp_pgtable_total_size:63.24 (mm.h) sbepe nr_pages = (reg->end ║- reg->start) >> PAGE_SHIFT;
~ ║│ 0000a454: eb080128 subs x8, x9, x8
║│ __hyp_pgtable_total_size:63.38 (mm.h) sbepe nr_pages = (reg->end - reg->start) ║>> PAGE_SHIFT;
~ ║│ 0000a458: d34cfd08 lsr x8, x8, #12
║│ __hyp_pgtable_total_size:63.12 (mm.h) sbepe nr_pages ║= (reg->end - reg->start) >> PAGE_SHIFT;
~ ║│ 0000a45c: f9000be8 str x8, [sp, #16]
║│ __hyp_pgtable_total_size:64.38 (mm.h) Sbepe nr_pages = __hyp_pgtable_max_pages(║nr_pages);
~ ║│ 0000a460: f9400be0 ldr x0, [sp, #16]
║│ __hyp_pgtable_total_size:64.14 (mm.h) sbepe nr_pages = ║__hyp_pgtable_max_pages(nr_pages);
~ ║│ 0000a464: 9400000f bl a4a0 <__hyp_pgtable_max_pages>
║│
║│ __hyp_pgtable_total_size:64.12 (mm.h) sbepe nr_pages ║= __hyp_pgtable_max_pages(nr_pages);
~ ║│ 0000a468: f9000be0 str x0, [sp, #16] <- 0000a464(bl-succ)<return>
║│ __hyp_pgtable_total_size:65.10 (mm.h) Sbepe res += ║nr_pages << PAGE_SHIFT;
~ ║│ 0000a46c: f9400be8 ldr x8, [sp, #16]
║│ __hyp_pgtable_total_size:65.7 (mm.h) sbepe res ║+= nr_pages << PAGE_SHIFT;
~ ║│ 0000a470: f94007e9 ldr x9, [sp, #8]
~ ║│ 0000a474: 8b083128 add x8, x9, x8, lsl #12
~ ║│ 0000a478: f90007e8 str x8, [sp, #8]
║│ __hyp_pgtable_total_size:66.2 (mm.h) Sbepe }
~ ║│┌─0000a47c: 14000001 b a480 <__hyp_pgtable_total_size+0x84>
║││
║││ __hyp_pgtable_total_size:61.50 (mm.h) Sbepe for (i = 0; i < kvm_nvhe_sym(hyp_memblock_nr); i║++) {
~ ║│└>0000a480: b94007e8 ldr w8, [sp, #4] <- 0000a47c(b)<__hyp_pgtable_total_size+0x84>
~ ║│ 0000a484: 11000508 add w8, w8, #0x1
~ ║│ 0000a488: b90007e8 str w8, [sp, #4]
║│ __hyp_pgtable_total_size:61.2 (mm.h) sbepe ║for (i = 0; i < kvm_nvhe_sym(hyp_memblock_nr); i++) {
~ ╚╪══0000a48c: 17ffffe4 b a41c <__hyp_pgtable_total_size+0x20>
│
│ __hyp_pgtable_total_size:68.9 (mm.h) Sbepe return ║res;
~ └─>0000a490: f94007e0 ldr x0, [sp, #8] <- 0000a42c(b.cc)<__hyp_pgtable_total_size+0x94>
__hyp_pgtable_total_size:68.2 (mm.h) sbepe ║return res;
~ 0000a494: a9427bfd ldp x29, x30, [sp, #32]
~ 0000a498: 9100c3ff add sp, sp, #0x30
0000a408 CFA:r29+16 r29:c-16 r30:c-8
~ 0000a49c: d65f03c0 ret
-reg var pointer(struct hyp_memblock_region<6c1ec>/<7b082>) 0xa3fc 0xa4a0 (DW_OP_fbreg -0x8) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:57
-nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa3fc 0xa4a0 (DW_OP_breg31 0x10) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:58
-res var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa3fc 0xa4a0 (DW_OP_breg31 0x8) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:58
-i var int (base type, DW_ATE_signed size:4) 0xa3fc 0xa4a0 (DW_OP_breg31 0x4) __hyp_pgtable_total_size:arch/arm64/kvm/hyp/nvhe/setup.c:59
**0000a4a0 <__hyp_pgtable_max_pages>:
+ __hyp_pgtable_max_pages params:
+nr_pages param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa4a0 0xa508 (DW_OP_fbreg 0x18)
__hyp_pgtable_max_pages:43.0 (mm.h) Sbepe ║{
0000a4a0 CFA:r31
+nr_pages param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa4a0 0xa508 (DW_OP_fbreg 0x18) __hyp_pgtable_max_pages:arch/arm64/kvm/hyp/nvhe/setup.c:42
+total var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa4a0 0xa508 (DW_OP_fbreg 0x10) __hyp_pgtable_max_pages:arch/arm64/kvm/hyp/nvhe/setup.c:44
+i var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa4a0 0xa508 (DW_OP_fbreg 0x8) __hyp_pgtable_max_pages:arch/arm64/kvm/hyp/nvhe/setup.c:44
~ 0000a4a0: d10083ff sub sp, sp, #0x20 <- 00009b8c(bl)<__hyp_pgtable_max_pages>,0000a464(bl)<__hyp_pgtable_max_pages>,0000a624(bl)<__hyp_pgtable_max_pages>
~ 0000a4a4: f9000fe0 str x0, [sp, #24]
~ 0000a4a8: aa1f03e8 mov x8, xzr
__hyp_pgtable_max_pages:44.16 (mm.h) SbePe unsigned long ║total = 0, i;
~ 0000a4ac: f9000be8 str x8, [sp, #16]
__hyp_pgtable_max_pages:47.9 (mm.h) Sbepe for (i ║= 0; i < 4; i++) {
~ 0000a4b0: f90007e8 str x8, [sp, #8]
__hyp_pgtable_max_pages:47.7 (mm.h) sbepe for (║i = 0; i < 4; i++) {
~ ┌─0000a4b4: 14000001 b a4b8 <__hyp_pgtable_max_pages+0x18>
│
│ __hyp_pgtable_max_pages:47.14 (mm.h) sbepe for (i = 0; ║i < 4; i++) {
~ ╔>└>0000a4b8: f94007e8 ldr x8, [sp, #8] <- 0000a4b4(b)<__hyp_pgtable_max_pages+0x18>,v0000a4f8(b)<__hyp_pgtable_max_pages+0x18>
║ __hyp_pgtable_max_pages:47.2 (mm.h) sbepe ║for (i = 0; i < 4; i++) {
~ ║ 0000a4bc: f1000d08 subs x8, x8, #0x3
~ ║┌──0000a4c0: 540001e8 b.hi a4fc <__hyp_pgtable_max_pages+0x5c> // b.pmore
║│
~ ║│┌─0000a4c4: 14000001 b a4c8 <__hyp_pgtable_max_pages+0x28> <- 0000a4c0(b.cc-succ)<fallthrough>
║││
║││ __hyp_pgtable_max_pages:48.14 (mm.h) Sbepe nr_pages = ║DIV_ROUND_UP(nr_pages, PTRS_PER_PTE);
~ ║│└>0000a4c8: f9400fe8 ldr x8, [sp, #24] <- 0000a4c4(b)<__hyp_pgtable_max_pages+0x28>
~ ║│ 0000a4cc: 9107fd08 add x8, x8, #0x1ff
~ ║│ 0000a4d0: d349fd08 lsr x8, x8, #9
║│ __hyp_pgtable_max_pages:48.12 (mm.h) sbepe nr_pages ║= DIV_ROUND_UP(nr_pages, PTRS_PER_PTE);
~ ║│ 0000a4d4: f9000fe8 str x8, [sp, #24]
║│ __hyp_pgtable_max_pages:49.12 (mm.h) Sbepe total += ║nr_pages;
~ ║│ 0000a4d8: f9400fe8 ldr x8, [sp, #24]
║│ __hyp_pgtable_max_pages:49.9 (mm.h) sbepe total ║+= nr_pages;
~ ║│ 0000a4dc: f9400be9 ldr x9, [sp, #16]
~ ║│ 0000a4e0: 8b080128 add x8, x9, x8
~ ║│ 0000a4e4: f9000be8 str x8, [sp, #16]
║│ __hyp_pgtable_max_pages:50.2 (mm.h) Sbepe }
~ ║│┌─0000a4e8: 14000001 b a4ec <__hyp_pgtable_max_pages+0x4c>
║││
║││ __hyp_pgtable_max_pages:47.22 (mm.h) Sbepe for (i = 0; i < 4; i║++) {
~ ║│└>0000a4ec: f94007e8 ldr x8, [sp, #8] <- 0000a4e8(b)<__hyp_pgtable_max_pages+0x4c>
~ ║│ 0000a4f0: 91000508 add x8, x8, #0x1
~ ║│ 0000a4f4: f90007e8 str x8, [sp, #8]
║│ __hyp_pgtable_max_pages:47.2 (mm.h) sbepe ║for (i = 0; i < 4; i++) {
~ ╚╪══0000a4f8: 17fffff0 b a4b8 <__hyp_pgtable_max_pages+0x18>
│
│ __hyp_pgtable_max_pages:52.9 (mm.h) Sbepe return ║total;
~ └─>0000a4fc: f9400be0 ldr x0, [sp, #16] <- 0000a4c0(b.cc)<__hyp_pgtable_max_pages+0x5c>
__hyp_pgtable_max_pages:52.2 (mm.h) sbepe ║return total;
~ 0000a500: 910083ff add sp, sp, #0x20
0000a4a4 CFA:r31+32
~ 0000a504: d65f03c0 ret
-nr_pages param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa4a0 0xa508 (DW_OP_fbreg 0x18) __hyp_pgtable_max_pages:arch/arm64/kvm/hyp/nvhe/setup.c:42
-total var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa4a0 0xa508 (DW_OP_fbreg 0x10) __hyp_pgtable_max_pages:arch/arm64/kvm/hyp/nvhe/setup.c:44
-i var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa4a0 0xa508 (DW_OP_fbreg 0x8) __hyp_pgtable_max_pages:arch/arm64/kvm/hyp/nvhe/setup.c:44
**0000a508 <hyp_vmemmap_range>:
+ hyp_vmemmap_range params:
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0xa508 0xa594 (DW_OP_fbreg 0x28)
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa508 0xa594 (DW_OP_fbreg 0x20)
+start param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0xa508 0xa594 (DW_OP_fbreg 0x18)
+end param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0xa508 0xa594 (DW_OP_fbreg 0x10)
hyp_vmemmap_range:32.0 (mm.h) Sbepe ║{
0000a508 CFA:r31
+phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0xa508 0xa594 (DW_OP_fbreg 0x28) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:30
+size param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa508 0xa594 (DW_OP_fbreg 0x20) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:30
+start param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0xa508 0xa594 (DW_OP_fbreg 0x18) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:31
+end param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0xa508 0xa594 (DW_OP_fbreg 0x10) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:31
+nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa508 0xa594 (DW_OP_fbreg 0x8) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:33
+p var pointer(struct hyp_page<6c1ec>/<7a96e>) 0xa508 0xa594 (DW_OP_fbreg 0x0) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:34
~ 0000a508: d100c3ff sub sp, sp, #0x30 <- 00009e28(bl)<hyp_vmemmap_range>
~ 0000a50c: f90017e0 str x0, [sp, #40]
~ 0000a510: f90013e1 str x1, [sp, #32]
~ 0000a514: f9000fe2 str x2, [sp, #24]
~ 0000a518: f9000be3 str x3, [sp, #16]
hyp_vmemmap_range:33.27 (mm.h) SbePe unsigned long nr_pages = ║size >> PAGE_SHIFT;
~ 0000a51c: f94013e8 ldr x8, [sp, #32]
hyp_vmemmap_range:33.32 (mm.h) sbepe unsigned long nr_pages = size ║>> PAGE_SHIFT;
~ 0000a520: d34cfd08 lsr x8, x8, #12
hyp_vmemmap_range:33.16 (mm.h) sbepe unsigned long ║nr_pages = size >> PAGE_SHIFT;
~ 0000a524: f90007e8 str x8, [sp, #8]
hyp_vmemmap_range:34.23 (mm.h) Sbepe struct hyp_page *p = ║hyp_phys_to_page(phys);
~ 0000a528: 90000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0>
~ 0000a52c: f944c508 ldr x8, [x8, #2440]
~ 0000a530: f94017e9 ldr x9, [sp, #40]
~ 0000a534: d347fd29 lsr x9, x9, #7
~ 0000a538: 927bcd29 and x9, x9, #0x1ffffffffffffe0
~ 0000a53c: 8b090108 add x8, x8, x9
hyp_vmemmap_range:34.19 (mm.h) sbepe struct hyp_page *║p = hyp_phys_to_page(phys);
~ 0000a540: f90003e8 str x8, [sp]
hyp_vmemmap_range:36.26 (mm.h) Sbepe *start = (unsigned long)p;
~ 0000a544: f94003e8 ldr x8, [sp]
hyp_vmemmap_range:36.3 (mm.h) sbepe *║start = (unsigned long)p;
~ 0000a548: f9400fe9 ldr x9, [sp, #24]
hyp_vmemmap_range:36.9 (mm.h) sbepe *start ║= (unsigned long)p;
~ 0000a54c: f9000128 str x8, [x9]
hyp_vmemmap_range:37.10 (mm.h) Sbepe *end = *║start + nr_pages * sizeof(struct hyp_page);
~ 0000a550: f9400fe8 ldr x8, [sp, #24]
hyp_vmemmap_range:37.9 (mm.h) sbepe *end = ║*start + nr_pages * sizeof(struct hyp_page);
~ 0000a554: f9400108 ldr x8, [x8]
hyp_vmemmap_range:37.18 (mm.h) sbepe *end = *start + ║nr_pages * sizeof(struct hyp_page);
~ 0000a558: f94007e9 ldr x9, [sp, #8]
hyp_vmemmap_range:37.16 (mm.h) sbepe *end = *start ║+ nr_pages * sizeof(struct hyp_page);
~ 0000a55c: 8b091508 add x8, x8, x9, lsl #5
hyp_vmemmap_range:37.3 (mm.h) sbepe *║end = *start + nr_pages * sizeof(struct hyp_page);
~ 0000a560: f9400be9 ldr x9, [sp, #16]
hyp_vmemmap_range:37.7 (mm.h) sbepe *end ║= *start + nr_pages * sizeof(struct hyp_page);
~ 0000a564: f9000128 str x8, [x9]
hyp_vmemmap_range:38.11 (mm.h) Sbepe *start = ║ALIGN_DOWN(*start, PAGE_SIZE);
~ 0000a568: f9400fe8 ldr x8, [sp, #24]
~ 0000a56c: f9400109 ldr x9, [x8]
~ 0000a570: 9274cd29 and x9, x9, #0xfffffffffffff000
hyp_vmemmap_range:38.9 (mm.h) sbepe *start ║= ALIGN_DOWN(*start, PAGE_SIZE);
~ 0000a574: f9000109 str x9, [x8]
hyp_vmemmap_range:39.9 (mm.h) Sbepe *end = ║ALIGN(*end, PAGE_SIZE);
~ 0000a578: f9400be8 ldr x8, [sp, #16]
~ 0000a57c: f9400109 ldr x9, [x8]
~ 0000a580: 913ffd29 add x9, x9, #0xfff
~ 0000a584: 9274cd29 and x9, x9, #0xfffffffffffff000
hyp_vmemmap_range:39.7 (mm.h) sbepe *end ║= ALIGN(*end, PAGE_SIZE);
~ 0000a588: f9000109 str x9, [x8]
hyp_vmemmap_range:40.1 (mm.h) Sbepe ║}
~ 0000a58c: 9100c3ff add sp, sp, #0x30
0000a50c CFA:r31+48
~ 0000a590: d65f03c0 ret
-phys param typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0xa508 0xa594 (DW_OP_fbreg 0x28) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:30
-size param long unsigned int (base type, DW_ATE_unsigned size:8) 0xa508 0xa594 (DW_OP_fbreg 0x20) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:30
-start param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0xa508 0xa594 (DW_OP_fbreg 0x18) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:31
-end param pointer(long unsigned int (base type, DW_ATE_unsigned size:8)) 0xa508 0xa594 (DW_OP_fbreg 0x10) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:31
-nr_pages var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa508 0xa594 (DW_OP_fbreg 0x8) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:33
-p var pointer(struct hyp_page<6c1ec>/<7a96e>) 0xa508 0xa594 (DW_OP_fbreg 0x0) hyp_vmemmap_range:arch/arm64/kvm/hyp/nvhe/setup.c:34
**0000a594 <host_s2_mem_pgtable_size>:
+ host_s2_mem_pgtable_size params: none
host_s2_mem_pgtable_size:89.0 (mm.h) Sbepe ║{
+max_pgd_sz var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa594 0xa5f0 (DW_OP_breg31 0x0) host_s2_mem_pgtable_size:arch/arm64/kvm/hyp/nvhe/setup.c:90
~ 0000a594: d10083ff sub sp, sp, #0x20 <- 00009e9c(bl)<host_s2_mem_pgtable_size>
~ 0000a598: a9017bfd stp x29, x30, [sp, #16]
0000a594 CFA:r31 r29:u r30:u
~ 0000a59c: 910043fd add x29, sp, #0x10
~ 0000a5a0: 52a00028 mov w8, #0x10000 // #65536
~ 0000a5a4: 2a0803e9 mov w9, w8
host_s2_mem_pgtable_size:90.16 (mm.h) SbePe unsigned long ║max_pgd_sz = 16 << PAGE_SHIFT;
~ 0000a5a8: f90003e9 str x9, [sp]
host_s2_mem_pgtable_size:92.6 (mm.h) Sbepe if (║kvm_nvhe_sym(hyp_memblock_nr) <= 0)
~ 0000a5ac: b0000089 adrp x9, 1b000 <hyp_memory+0x460>
~ 0000a5b0: b943a128 ldr w8, [x9, #928]
host_s2_mem_pgtable_size:92.6 (mm.h) sbepe if (║kvm_nvhe_sym(hyp_memblock_nr) <= 0)
~ 0000a5b4: 71000108 subs w8, w8, #0x0
~ ┌──0000a5b8: 540000ac b.gt a5cc <host_s2_mem_pgtable_size+0x38>
│
~ │┌─0000a5bc: 14000001 b a5c0 <host_s2_mem_pgtable_size+0x2c> <- 0000a5b8(b.cc-succ)<fallthrough>
││
~ │└>0000a5c0: aa1f03e8 mov x8, xzr <- 0000a5bc(b)<host_s2_mem_pgtable_size+0x2c>
│ host_s2_mem_pgtable_size:93.3 (mm.h) Sbepe ║return 0;
~ │ 0000a5c4: f90007e8 str x8, [sp, #8]
~ ┌┼──0000a5c8: 14000006 b a5e0 <host_s2_mem_pgtable_size+0x4c>
││
││ host_s2_mem_pgtable_size:95.9 (mm.h) Sbepe return ║__hyp_pgtable_total_size() + max_pgd_sz;
~ │└─>0000a5cc: 97ffff8c bl a3fc <__hyp_pgtable_total_size> <- 0000a5b8(b.cc)<host_s2_mem_pgtable_size+0x38>
│
│ host_s2_mem_pgtable_size:95.38 (mm.h) sbepe return __hyp_pgtable_total_size() + ║max_pgd_sz;
~ │ 0000a5d0: f94003e8 ldr x8, [sp] <- 0000a5cc(bl-succ)<return>
│ host_s2_mem_pgtable_size:95.36 (mm.h) sbepe return __hyp_pgtable_total_size() ║+ max_pgd_sz;
~ │ 0000a5d4: 8b080008 add x8, x0, x8
│ host_s2_mem_pgtable_size:95.2 (mm.h) sbepe ║return __hyp_pgtable_total_size() + max_pgd_sz;
~ │ 0000a5d8: f90007e8 str x8, [sp, #8]
~ │ ┌─0000a5dc: 14000001 b a5e0 <host_s2_mem_pgtable_size+0x4c>
│ │
│ │ host_s2_mem_pgtable_size:96.1 (mm.h) Sbepe ║}
~ └>└>0000a5e0: f94007e0 ldr x0, [sp, #8] <- 0000a5c8(b)<host_s2_mem_pgtable_size+0x4c>,0000a5dc(b)<host_s2_mem_pgtable_size+0x4c>
~ 0000a5e4: a9417bfd ldp x29, x30, [sp, #16]
~ 0000a5e8: 910083ff add sp, sp, #0x20
0000a5a0 CFA:r29+16 r29:c-16 r30:c-8
~ 0000a5ec: d65f03c0 ret
-max_pgd_sz var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa594 0xa5f0 (DW_OP_breg31 0x0) host_s2_mem_pgtable_size:arch/arm64/kvm/hyp/nvhe/setup.c:90
**0000a5f0 <host_s2_dev_pgtable_size>:
+ host_s2_dev_pgtable_size params: none
host_s2_dev_pgtable_size:99.0 (mm.h) Sbepe ║{
~ 0000a5f0: d10083ff sub sp, sp, #0x20 <- 00009ed0(bl)<host_s2_dev_pgtable_size>
~ 0000a5f4: a9017bfd stp x29, x30, [sp, #16]
0000a5f0 CFA:r31 r29:u r30:u
~ 0000a5f8: 910043fd add x29, sp, #0x10
host_s2_dev_pgtable_size:100.6 (mm.h) SbePe if (║kvm_nvhe_sym(hyp_memblock_nr) <= 0)
~ 0000a5fc: b0000088 adrp x8, 1b000 <hyp_memory+0x460>
~ 0000a600: b943a109 ldr w9, [x8, #928]
host_s2_dev_pgtable_size:100.6 (mm.h) sbepe if (║kvm_nvhe_sym(hyp_memblock_nr) <= 0)
~ 0000a604: 71000129 subs w9, w9, #0x0
~ ┌──0000a608: 540000ac b.gt a61c <host_s2_dev_pgtable_size+0x2c>
│
~ │┌─0000a60c: 14000001 b a610 <host_s2_dev_pgtable_size+0x20> <- 0000a608(b.cc-succ)<fallthrough>
││
~ │└>0000a610: aa1f03e8 mov x8, xzr <- 0000a60c(b)<host_s2_dev_pgtable_size+0x20>
│ host_s2_dev_pgtable_size:101.3 (mm.h) Sbepe ║return 0;
~ │ 0000a614: f90007e8 str x8, [sp, #8]
~ ┌┼──0000a618: 14000007 b a634 <host_s2_dev_pgtable_size+0x44>
││
~ │└─>0000a61c: 52a00088 mov w8, #0x40000 // #262144 <- 0000a608(b.cc)<host_s2_dev_pgtable_size+0x2c>
~ │ 0000a620: 2a0803e0 mov w0, w8
│ host_s2_dev_pgtable_size:104.9 (mm.h) Sbepe return ║__hyp_pgtable_max_pages((1 << 30) >> PAGE_SHIFT) << PAGE_SHIFT;
~ │ 0000a624: 97ffff9f bl a4a0 <__hyp_pgtable_max_pages>
│
│ host_s2_dev_pgtable_size:104.58 (mm.h) sbepe return __hyp_pgtable_max_pages((1 << 30) >> PAGE_SHIFT) ║<< PAGE_SHIFT;
~ │ 0000a628: d374cc09 lsl x9, x0, #12 <- 0000a624(bl-succ)<return>
│ host_s2_dev_pgtable_size:104.2 (mm.h) sbepe ║return __hyp_pgtable_max_pages((1 << 30) >> PAGE_SHIFT) << PAGE_SHIFT;
~ │ 0000a62c: f90007e9 str x9, [sp, #8]
~ │ ┌─0000a630: 14000001 b a634 <host_s2_dev_pgtable_size+0x44>
│ │
│ │ host_s2_dev_pgtable_size:105.1 (mm.h) Sbepe ║}
~ └>└>0000a634: f94007e0 ldr x0, [sp, #8] <- 0000a618(b)<host_s2_dev_pgtable_size+0x44>,0000a630(b)<host_s2_dev_pgtable_size+0x44>
~ 0000a638: a9417bfd ldp x29, x30, [sp, #16]
~ 0000a63c: 910083ff add sp, sp, #0x20
0000a5fc CFA:r29+16 r29:c-16 r30:c-8
~ 0000a640: d65f03c0 ret
**0000a644 <create_hyp_debug_uart_mapping>:
+ create_hyp_debug_uart_mapping params: none
create_hyp_debug_uart_mapping:28.0 (setup.c) Sbepe ║{
+base var typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0xa644 0xa6b8 (DW_OP_breg31 0x10) create_hyp_debug_uart_mapping:arch/arm64/kvm/hyp/nvhe/setup.c:29
+haddr var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa644 0xa6b8 (DW_OP_breg31 0x8) create_hyp_debug_uart_mapping:arch/arm64/kvm/hyp/nvhe/setup.c:30
~ 0000a644: d100c3ff sub sp, sp, #0x30 <- 0000a2d4(bl)<create_hyp_debug_uart_mapping>
~ 0000a648: a9027bfd stp x29, x30, [sp, #32]
0000a644 CFA:r31 r29:u r30:u
~ 0000a64c: 910083fd add x29, sp, #0x20
~ 0000a650: 52a12008 mov w8, #0x9000000 // #150994944
~ 0000a654: 2a0803e9 mov w9, w8
create_hyp_debug_uart_mapping:29.14 (setup.c) SbePe phys_addr_t ║base = CONFIG_KVM_ARM_HYP_DEBUG_UART_ADDR;
~ 0000a658: f9000be9 str x9, [sp, #16]
create_hyp_debug_uart_mapping:32.39 (setup.c) Sbepe haddr = __hyp_create_private_mapping(║base, PAGE_SIZE, PAGE_HYP_DEVICE);
~ 0000a65c: f9400be0 ldr x0, [sp, #16]
~ 0000a660: 52820008 mov w8, #0x1000 // #4096
~ 0000a664: 2a0803e1 mov w1, w8
~ 0000a668: 528001c8 mov w8, #0xe // #14
~ 0000a66c: 2a0803e2 mov w2, w8
create_hyp_debug_uart_mapping:32.10 (setup.c) sbepe haddr = ║__hyp_create_private_mapping(base, PAGE_SIZE, PAGE_HYP_DEVICE);
~ 0000a670: 94000049 bl a794 <__hyp_create_private_mapping>
create_hyp_debug_uart_mapping:32.8 (setup.c) sbepe haddr ║= __hyp_create_private_mapping(base, PAGE_SIZE, PAGE_HYP_DEVICE);
~ 0000a674: f90007e0 str x0, [sp, #8] <- 0000a670(bl-succ)<return>
create_hyp_debug_uart_mapping:33.7 (setup.c) Sbepe if (!║haddr)
~ 0000a678: f94007e9 ldr x9, [sp, #8]
create_hyp_debug_uart_mapping:33.6 (setup.c) sbepe if (║!haddr)
~ ┌──0000a67c: b50000a9 cbnz x9, a690 <create_hyp_debug_uart_mapping+0x4c>
│
~ │┌─0000a680: 14000001 b a684 <create_hyp_debug_uart_mapping+0x40> <- 0000a67c(b.cc-succ)<fallthrough>
││
~ │└>0000a684: 12800008 mov w8, #0xffffffff // #-1 <- 0000a680(b)<create_hyp_debug_uart_mapping+0x40>
│ create_hyp_debug_uart_mapping:34.3 (setup.c) Sbepe ║return -1;
~ │ 0000a688: b81fc3a8 stur w8, [x29, #-4]
~ ┌┼──0000a68c: 14000007 b a6a8 <create_hyp_debug_uart_mapping+0x64>
││
││ create_hyp_debug_uart_mapping:36.34 (setup.c) Sbepe arm64_kvm_hyp_debug_uart_addr = ║haddr;
~ │└─>0000a690: f94007e8 ldr x8, [sp, #8] <- 0000a67c(b.cc)<create_hyp_debug_uart_mapping+0x4c>
│ create_hyp_debug_uart_mapping:36.32 (setup.c) sbepe arm64_kvm_hyp_debug_uart_addr ║= haddr;
~ │ 0000a694: 90000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0>
~ │ 0000a698: f905a128 str x8, [x9, #2880]
~ │ 0000a69c: 2a1f03ea mov w10, wzr
│ create_hyp_debug_uart_mapping:38.2 (setup.c) Sbepe ║return 0;
~ │ 0000a6a0: b81fc3aa stur w10, [x29, #-4]
~ │ ┌─0000a6a4: 14000001 b a6a8 <create_hyp_debug_uart_mapping+0x64>
│ │
│ │ create_hyp_debug_uart_mapping:39.1 (setup.c) Sbepe ║}
~ └>└>0000a6a8: b85fc3a0 ldur w0, [x29, #-4] <- 0000a68c(b)<create_hyp_debug_uart_mapping+0x64>,0000a6a4(b)<create_hyp_debug_uart_mapping+0x64>
~ 0000a6ac: a9427bfd ldp x29, x30, [sp, #32]
~ 0000a6b0: 9100c3ff add sp, sp, #0x30
0000a650 CFA:r29+16 r29:c-16 r30:c-8
~ 0000a6b4: d65f03c0 ret
-base var typedef(phys_addr_t=typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8)))) 0xa644 0xa6b8 (DW_OP_breg31 0x10) create_hyp_debug_uart_mapping:arch/arm64/kvm/hyp/nvhe/setup.c:29
-haddr var long unsigned int (base type, DW_ATE_unsigned size:8) 0xa644 0xa6b8 (DW_OP_breg31 0x8) create_hyp_debug_uart_mapping:arch/arm64/kvm/hyp/nvhe/setup.c:30