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