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 00007834 00008d30 arch/arm64/kvm/hyp/nvhe/psci-relay.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 **00007834 <kvm_host_psci_cpu_entry>: 00007834 <$x>: + kvm_host_psci_cpu_entry params: +is_cpu_on param typedef(bool=_Bool (base type, DW_ATE_boolean size:1)) 0x7834 0x7a2c (DW_OP_fbreg -0x4c) kvm_host_psci_cpu_entry:210.0 (psci-relay.c) Sbepe ║{ +is_cpu_on param typedef(bool=_Bool (base type, DW_ATE_boolean size:1)) 0x7834 0x7a2c (DW_OP_fbreg -0x4c) kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:209 +boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x7834 0x7a2c (DW_OP_fbreg -0x58) kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:211 +host_ctxt var pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7834 0x7a2c (DW_OP_fbreg -0x60) kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:212 ~ 00007834: d10503ff sub sp, sp, #0x140 ~ 00007838: a9127bfd stp x29, x30, [sp, #288] ~ 0000783c: f9009bfc str x28, [sp, #304] 00007834 CFA:r31 r28:u r29:u r30:u ~ 00007840: 910483fd add x29, sp, #0x120 ~ 00007844: 12000008 and w8, w0, #0x1 ~ 00007848: 381b43a8 sturb w8, [x29, #-76] kvm_host_psci_cpu_entry:214.15 (psci-relay.c) SbePe host_ctxt = &║this_cpu_ptr(hyp_symbol_addr(kvm_host_data))->host_ctxt; ~ ┌─0000784c: 14000001 b 7850 <kvm_host_psci_cpu_entry+0x1c> ~ └>00007850: aa1f03e8 mov x8, xzr <- 0000784c(b)<kvm_host_psci_cpu_entry+0x1c> kvm_host_psci_cpu_entry:214.15 (psci-relay.c) sbepe host_ctxt = &║this_cpu_ptr(hyp_symbol_addr(kvm_host_data))->host_ctxt; +__vpp_verify var pointer(const(no type)) 0x7854 0x785c (DW_OP_fbreg -0x68) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 ~ 00007854: f81983a8 stur x8, [x29, #-104] ~ ┌─00007858: 14000001 b 785c <kvm_host_psci_cpu_entry+0x28> -__vpp_verify var pointer(const(no type)) 0x7854 0x785c (DW_OP_fbreg -0x68) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 kvm_host_psci_cpu_entry:214.15 (psci-relay.c) sbepe host_ctxt = &║this_cpu_ptr(hyp_symbol_addr(kvm_host_data))->host_ctxt; +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x785c 0x7894 (DW_OP_fbreg -0x78) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 +addr var pointer(struct kvm_host_data<5bca5>/<5c0f3>) 0x785c 0x7874 (DW_OP_fbreg -0x80) lexblock:lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 ~ └>0000785c: d0000088 adrp x8, 19000 <kvm_host_data> <- 00007858(b)<kvm_host_psci_cpu_entry+0x28> ~ 00007860: 91000108 add x8, x8, #0x0 ~ 00007864: f81803a8 stur x8, [x29, #-128] ~ 00007868: f85803a8 ldur x8, [x29, #-128] ~ 0000786c: f81783a8 stur x8, [x29, #-136] ~ 00007870: f85783a8 ldur x8, [x29, #-136] -addr var pointer(struct kvm_host_data<5bca5>/<5c0f3>) 0x785c 0x7874 (DW_OP_fbreg -0x80) lexblock:lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 kvm_host_psci_cpu_entry:214.15 (psci-relay.c) sbepe host_ctxt = &║this_cpu_ptr(hyp_symbol_addr(kvm_host_data))->host_ctxt; ~ 00007874: f81883a8 stur x8, [x29, #-120] ~ 00007878: f85883a8 ldur x8, [x29, #-120] ~ 0000787c: f90013e8 str x8, [sp, #32] ~ 00007880: 9400006b bl 7a2c <__hyp_my_cpu_offset> ~ 00007884: f94013e8 ldr x8, [sp, #32] <- 00007880(bl-succ)<return> ~ 00007888: 8b000108 add x8, x8, x0 ~ 0000788c: f9004be8 str x8, [sp, #144] ~ 00007890: f9404be8 ldr x8, [sp, #144] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x785c 0x7894 (DW_OP_fbreg -0x78) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 kvm_host_psci_cpu_entry:214.15 (psci-relay.c) sbepe host_ctxt = &║this_cpu_ptr(hyp_symbol_addr(kvm_host_data))->host_ctxt; +__vpp_verify var pointer(const(no type)) 0x7894 0x7898 (DW_OP_fbreg -0x68) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 ~ 00007894: f81903a8 stur x8, [x29, #-112] -__vpp_verify var pointer(const(no type)) 0x7894 0x7898 (DW_OP_fbreg -0x68) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:214 kvm_host_psci_cpu_entry:214.15 (psci-relay.c) sbepe host_ctxt = &║this_cpu_ptr(hyp_symbol_addr(kvm_host_data))->host_ctxt; ~ 00007898: f85903a8 ldur x8, [x29, #-112] kvm_host_psci_cpu_entry:214.12 (psci-relay.c) sbepe host_ctxt ║= &this_cpu_ptr(hyp_symbol_addr(kvm_host_data))->host_ctxt; ~ 0000789c: f81a03a8 stur x8, [x29, #-96] kvm_host_psci_cpu_entry:216.6 (psci-relay.c) Sbepe if (║is_cpu_on) ~ 000078a0: 385b43a9 ldurb w9, [x29, #-76] kvm_host_psci_cpu_entry:216.6 (psci-relay.c) sbepe if (║is_cpu_on) ~ ┌────000078a4: 36000309 tbz w9, #0, 7904 <kvm_host_psci_cpu_entry+0xd0> ~ │ ┌─000078a8: 14000001 b 78ac <kvm_host_psci_cpu_entry+0x78> <- 000078a4(b.cc-succ)<fallthrough> │ │ │ │ kvm_host_psci_cpu_entry:217.15 (psci-relay.c) Sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); ~ │┌─└>000078ac: 14000001 b 78b0 <kvm_host_psci_cpu_entry+0x7c> <- 000078a8(b)<kvm_host_psci_cpu_entry+0x78> ││ ~ │└──>000078b0: aa1f03e8 mov x8, xzr <- 000078ac(b)<kvm_host_psci_cpu_entry+0x7c> kvm_host_psci_cpu_entry:217.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); +__vpp_verify var pointer(const(no type)) 0x78b4 0x78bc (DW_OP_breg31 0x88) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 ~ 000078b4: f90047e8 str x8, [sp, #136] ~ │ ┌─000078b8: 14000001 b 78bc <kvm_host_psci_cpu_entry+0x88> -__vpp_verify var pointer(const(no type)) 0x78b4 0x78bc (DW_OP_breg31 0x88) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 │ │ │ │ kvm_host_psci_cpu_entry:217.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x78bc 0x78f4 (DW_OP_breg31 0x78) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 +addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x78bc 0x78d4 (DW_OP_breg31 0x70) lexblock:lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 ~ │ └>000078bc: d0000088 adrp x8, 19000 <kvm_host_data> <- 000078b8(b)<kvm_host_psci_cpu_entry+0x88> ~ 000078c0: 91396108 add x8, x8, #0xe58 ~ 000078c4: f9003be8 str x8, [sp, #112] ~ 000078c8: f9403be8 ldr x8, [sp, #112] ~ 000078cc: f90037e8 str x8, [sp, #104] ~ 000078d0: f94037e8 ldr x8, [sp, #104] -addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x78bc 0x78d4 (DW_OP_breg31 0x70) lexblock:lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 kvm_host_psci_cpu_entry:217.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); ~ 000078d4: f9003fe8 str x8, [sp, #120] ~ 000078d8: f9403fe8 ldr x8, [sp, #120] ~ 000078dc: f9000fe8 str x8, [sp, #24] ~ 000078e0: 94000053 bl 7a2c <__hyp_my_cpu_offset> ~ 000078e4: f9400fe8 ldr x8, [sp, #24] <- 000078e0(bl-succ)<return> ~ 000078e8: 8b000108 add x8, x8, x0 ~ 000078ec: f90033e8 str x8, [sp, #96] ~ 000078f0: f94033e8 ldr x8, [sp, #96] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x78bc 0x78f4 (DW_OP_breg31 0x78) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 kvm_host_psci_cpu_entry:217.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); +__vpp_verify var pointer(const(no type)) 0x78f4 0x78f8 (DW_OP_breg31 0x88) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 ~ 000078f4: f90043e8 str x8, [sp, #128] -__vpp_verify var pointer(const(no type)) 0x78f4 0x78f8 (DW_OP_breg31 0x88) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:217 kvm_host_psci_cpu_entry:217.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); ~ 000078f8: f94043e8 ldr x8, [sp, #128] kvm_host_psci_cpu_entry:217.13 (psci-relay.c) sbepe boot_args ║= this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); ~ 000078fc: f81a83a8 stur x8, [x29, #-88] kvm_host_psci_cpu_entry:217.3 (psci-relay.c) sbepe ║boot_args = this_cpu_ptr(hyp_symbol_addr(cpu_on_args)); ~ │┌───00007900: 14000017 b 795c <kvm_host_psci_cpu_entry+0x128> ││ ││ kvm_host_psci_cpu_entry:219.15 (psci-relay.c) Sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ └┼>┌─00007904: 14000001 b 7908 <kvm_host_psci_cpu_entry+0xd4> <- 000078a4(b.cc)<kvm_host_psci_cpu_entry+0xd0> │ │ ~ │ └>00007908: aa1f03e8 mov x8, xzr <- 00007904(b)<kvm_host_psci_cpu_entry+0xd4> kvm_host_psci_cpu_entry:219.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__vpp_verify var pointer(const(no type)) 0x790c 0x7914 (DW_OP_breg31 0x58) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 ~ 0000790c: f9002fe8 str x8, [sp, #88] ~ │ ┌─00007910: 14000001 b 7914 <kvm_host_psci_cpu_entry+0xe0> -__vpp_verify var pointer(const(no type)) 0x790c 0x7914 (DW_OP_breg31 0x58) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 │ │ │ │ kvm_host_psci_cpu_entry:219.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x7914 0x794c (DW_OP_breg31 0x48) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 +addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x7914 0x792c (DW_OP_breg31 0x40) lexblock:lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 ~ │ └>00007914: d0000088 adrp x8, 19000 <kvm_host_data> <- 00007910(b)<kvm_host_psci_cpu_entry+0xe0> ~ 00007918: 9139c108 add x8, x8, #0xe70 ~ 0000791c: f90023e8 str x8, [sp, #64] ~ 00007920: f94023e8 ldr x8, [sp, #64] ~ 00007924: f9001fe8 str x8, [sp, #56] ~ 00007928: f9401fe8 ldr x8, [sp, #56] -addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x7914 0x792c (DW_OP_breg31 0x40) lexblock:lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 kvm_host_psci_cpu_entry:219.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ 0000792c: f90027e8 str x8, [sp, #72] ~ 00007930: f94027e8 ldr x8, [sp, #72] ~ 00007934: f9000be8 str x8, [sp, #16] ~ 00007938: 9400003d bl 7a2c <__hyp_my_cpu_offset> ~ 0000793c: f9400be8 ldr x8, [sp, #16] <- 00007938(bl-succ)<return> ~ 00007940: 8b000108 add x8, x8, x0 ~ 00007944: f9001be8 str x8, [sp, #48] ~ 00007948: f9401be8 ldr x8, [sp, #48] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x7914 0x794c (DW_OP_breg31 0x48) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 kvm_host_psci_cpu_entry:219.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__vpp_verify var pointer(const(no type)) 0x794c 0x7950 (DW_OP_breg31 0x58) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 ~ 0000794c: f9002be8 str x8, [sp, #80] -__vpp_verify var pointer(const(no type)) 0x794c 0x7950 (DW_OP_breg31 0x58) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:219 kvm_host_psci_cpu_entry:219.15 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ 00007950: f9402be8 ldr x8, [sp, #80] kvm_host_psci_cpu_entry:219.13 (psci-relay.c) sbepe boot_args ║= this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ 00007954: f81a83a8 stur x8, [x29, #-88] ~ │ ┌─00007958: 14000001 b 795c <kvm_host_psci_cpu_entry+0x128> │ │ │ │ kvm_host_psci_cpu_entry:221.26 (psci-relay.c) Sbepe cpu_reg(host_ctxt, 0) = ║boot_args->r0; ~ └>└>0000795c: f85a83a8 ldur x8, [x29, #-88] <- 00007900(b)<kvm_host_psci_cpu_entry+0x128>,00007958(b)<kvm_host_psci_cpu_entry+0x128> kvm_host_psci_cpu_entry:221.37 (psci-relay.c) sbepe cpu_reg(host_ctxt, 0) = boot_args->║r0; ~ 00007960: f9400908 ldr x8, [x8, #16] kvm_host_psci_cpu_entry:221.2 (psci-relay.c) sbepe ║cpu_reg(host_ctxt, 0) = boot_args->r0; ~ 00007964: f85a03a9 ldur x9, [x29, #-96] kvm_host_psci_cpu_entry:221.24 (psci-relay.c) sbepe cpu_reg(host_ctxt, 0) ║= boot_args->r0; ~ 00007968: f9000128 str x8, [x9] kvm_host_psci_cpu_entry:222.2 (psci-relay.c) Sbepe ║write_sysreg_el2(boot_args->pc, SYS_ELR); ~ ┌─0000796c: 14000001 b 7970 <kvm_host_psci_cpu_entry+0x13c> kvm_host_psci_cpu_entry:222.2 (psci-relay.c) sbepe ║write_sysreg_el2(boot_args->pc, SYS_ELR); +__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7970 0x7988 (DW_OP_breg31 0x28) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:222 ~ └>00007970: f85a83a8 ldur x8, [x29, #-88] <- 0000796c(b)<kvm_host_psci_cpu_entry+0x13c> ~ 00007974: f9400508 ldr x8, [x8, #8] ~ 00007978: f90017e8 str x8, [sp, #40] ~ 0000797c: f94017e8 ldr x8, [sp, #40] ~ 00007980: d51c4028 msr elr_el2, x8 ~ ┌─00007984: 14000001 b 7988 <kvm_host_psci_cpu_entry+0x154> -__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7970 0x7988 (DW_OP_breg31 0x28) lexblock:kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:222 kvm_host_psci_cpu_entry:224.6 (psci-relay.c) Sbepe if (║is_cpu_on) ~ └>00007988: 385b43a8 ldurb w8, [x29, #-76] <- 00007984(b)<kvm_host_psci_cpu_entry+0x154> kvm_host_psci_cpu_entry:224.6 (psci-relay.c) sbepe if (║is_cpu_on) ~ ┌───0000798c: 360004c8 tbz w8, #0, 7a24 <kvm_host_psci_cpu_entry+0x1f0> ~ │ ┌─00007990: 14000001 b 7994 <kvm_host_psci_cpu_entry+0x160> <- 0000798c(b.cc-succ)<fallthrough> │ │ │ │ kvm_host_psci_cpu_entry:225.21 (psci-relay.c) Sbepe release_boot_args(║boot_args); ~ │ └>00007994: f85a83a8 ldur x8, [x29, #-88] <- 00007990(b)<kvm_host_psci_cpu_entry+0x160> ~ 00007998: f81b83a8 stur x8, [x29, #-72] d: 0x799c 0x7a20 release_boot_args inlined from kvm_host_psci_cpu_entry:225 (psci-relay.c) <6a5e2>: d release_boot_args:110.22 (psci-relay.c) Sbepe atomic_set_release(&║args->lock, PSCI_BOOT_ARGS_UNLOCKED); +args param pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x799c 0x7a20 (DW_OP_fbreg -0x48) release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~d 0000799c: f85b83a8 ldur x8, [x29, #-72] ~d 000079a0: f81c83a8 stur x8, [x29, #-56] ~d 000079a4: 2a1f03e9 mov w9, wzr ~d 000079a8: b81c43a9 stur w9, [x29, #-60] e: 0x79ac 0x7a20 atomic_set_release inlined from release_boot_args:110 (psci-relay.c) <6a5ff>:<6a5e2>: de atomic_set_release:54.26 (atomic-instrumented.h) Sbepe instrument_atomic_write(║v, sizeof(*v)); +v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x79ac 0x7a20 (DW_OP_fbreg -0x38) atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c +i param int (base type, DW_ATE_signed size:4) 0x79ac 0x7a20 (DW_OP_fbreg -0x3c) atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~de 000079ac: f85c83a8 ldur x8, [x29, #-56] ~de 000079b0: f81d83a8 stur x8, [x29, #-40] ~de 000079b4: 52800089 mov w9, #0x4 // #4 ~de 000079b8: 2a0903e8 mov w8, w9 ~de 000079bc: f81d03a8 stur x8, [x29, #-48] f: 0x79c0 0x79e8 instrument_atomic_write inlined from atomic_set_release:54 (atomic-instrumented.h) <6a623>:<6a5ff>:<6a5e2>: def instrument_atomic_write:86.20 (instrumented.h) Sbepe kasan_check_write(║v, size); +v param pointer(const(missing at <5bca5>/<6a434>)) 0x79c0 0x79e8 (DW_OP_fbreg -0x28) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c +size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x79c0 0x79e8 (DW_OP_fbreg -0x30) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~def 000079c0: f85d83a0 ldur x0, [x29, #-40] def instrument_atomic_write:86.23 (instrumented.h) sbepe kasan_check_write(v, ║size); ~def 000079c4: b85d03a1 ldur w1, [x29, #-48] ~def 000079c8: b9000fe9 str w9, [sp, #12] def instrument_atomic_write:86.2 (instrumented.h) sbepe ║kasan_check_write(v, size); ~def 000079cc: 940001a5 bl 8060 <kasan_check_write> def instrument_atomic_write:87.2 (instrumented.h) Sbepe ║kcsan_check_atomic_write(v, size); ~def 000079d0: f85d83a8 ldur x8, [x29, #-40] <- 000079cc(bl-succ)<return> ~def 000079d4: f85d03a1 ldur x1, [x29, #-48] ~def 000079d8: 528000a2 mov w2, #0x5 // #5 ~def 000079dc: b9000be0 str w0, [sp, #8] ~def 000079e0: aa0803e0 mov x0, x8 ~def 000079e4: 940001a5 bl 8078 <kcsan_check_access> -v param pointer(const(missing at <5bca5>/<6a434>)) 0x79c0 0x79e8 (DW_OP_fbreg -0x28) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c -size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x79c0 0x79e8 (DW_OP_fbreg -0x30) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c de atomic_set_release:55.26 (atomic-instrumented.h) Sbepe arch_atomic_set_release(║v, i); ~de 000079e8: f85c83a8 ldur x8, [x29, #-56] <- 000079e4(bl-succ)<return> de atomic_set_release:55.29 (atomic-instrumented.h) sbepe arch_atomic_set_release(v, ║i); ~de 000079ec: b85c43a9 ldur w9, [x29, #-60] ~de 000079f0: f81f83a8 stur x8, [x29, #-8] ~de 000079f4: b81f43a9 stur w9, [x29, #-12] g: 0x79f8 0x7a20 arch_atomic_set_release inlined from atomic_set_release:55 (atomic-instrumented.h) <6a648>:<6a5ff>:<6a5e2>: deg arch_atomic_set_release:163.2 (atomic-arch-fallback.h) Sbepe ║smp_store_release(&(v)->counter, i); +v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x79f8 0x7a20 (DW_OP_fbreg -0x8) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c +i param int (base type, DW_ATE_signed size:4) 0x79f8 0x7a20 (DW_OP_fbreg -0xc) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c +__p var pointer(int (base type, DW_ATE_signed size:4)) 0x79f8 0x7a20 (DW_OP_fbreg -0x18) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c +__u var union noname<5bca5>/<6a46d> 0x79f8 0x7a20 (DW_OP_fbreg -0x20) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~deg 000079f8: f85f83a8 ldur x8, [x29, #-8] ~deg 000079fc: f81e83a8 stur x8, [x29, #-24] ~deg 00007a00: b85f43a9 ldur w9, [x29, #-12] ~deg 00007a04: b81e03a9 stur w9, [x29, #-32] ~deg 00007a08: f85e83a0 ldur x0, [x29, #-24] ~deg 00007a0c: b9400fe1 ldr w1, [sp, #12] ~deg 00007a10: 94000194 bl 8060 <kasan_check_write> ~deg 00007a14: f85e83a8 ldur x8, [x29, #-24] <- 00007a10(bl-succ)<return> ~deg 00007a18: b85e03a9 ldur w9, [x29, #-32] ~deg 00007a1c: 889ffd09 stlr w9, [x8] -args param pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x799c 0x7a20 (DW_OP_fbreg -0x48) release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c -v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x79ac 0x7a20 (DW_OP_fbreg -0x38) atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c -i param int (base type, DW_ATE_signed size:4) 0x79ac 0x7a20 (DW_OP_fbreg -0x3c) atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c -v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x79f8 0x7a20 (DW_OP_fbreg -0x8) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c -i param int (base type, DW_ATE_signed size:4) 0x79f8 0x7a20 (DW_OP_fbreg -0xc) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c -__p var pointer(int (base type, DW_ATE_signed size:4)) 0x79f8 0x7a20 (DW_OP_fbreg -0x18) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c -__u var union noname<5bca5>/<6a46d> 0x79f8 0x7a20 (DW_OP_fbreg -0x20) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c kvm_host_psci_cpu_entry:225.3 (psci-relay.c) Sbepe ║release_boot_args(boot_args); ~ │ ┌─00007a20: 14000001 b 7a24 <kvm_host_psci_cpu_entry+0x1f0> │ │ │ │ kvm_host_psci_cpu_entry:227.15 (psci-relay.c) Sbepe __host_enter(║host_ctxt); ~ └>└>00007a24: f85a03a0 ldur x0, [x29, #-96] <- 0000798c(b.cc)<kvm_host_psci_cpu_entry+0x1f0>,00007a20(b)<kvm_host_psci_cpu_entry+0x1f0> kvm_host_psci_cpu_entry:227.2 (psci-relay.c) sbepe ║__host_enter(host_ctxt); 00007844 CFA:r29+32 r28:c-16 r29:c-32 r30:c-24 ~ 00007a28: 97fff9a1 bl 60ac <__host_enter> -is_cpu_on param typedef(bool=_Bool (base type, DW_ATE_boolean size:1)) 0x7834 0x7a2c (DW_OP_fbreg -0x4c) kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:209 -boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x7834 0x7a2c (DW_OP_fbreg -0x58) kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:211 -host_ctxt var pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7834 0x7a2c (DW_OP_fbreg -0x60) kvm_host_psci_cpu_entry:arch/arm64/kvm/hyp/nvhe/psci-relay.c:212 **00007a2c <__hyp_my_cpu_offset>: + __hyp_my_cpu_offset params: none __hyp_my_cpu_offset:23.0 (percpu.h) Sbepe ║{ 00007a2c CFA:r31 ~ 00007a2c: d10043ff sub sp, sp, #0x10 <- 00007880(bl)<__hyp_my_cpu_offset>,000078e0(bl)<__hyp_my_cpu_offset>,00007938(bl)<__hyp_my_cpu_offset>,00007a28(bl-succ)<return>,0000849c(bl)<__hyp_my_cpu_offset>,000084f0(bl)<__hyp_my_cpu_offset>,00008bec(bl)<__hyp_my_cpu_offset>,00008c40(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))) 0x7a30 0x7a44 (DW_OP_fbreg 0x8) lexblock:__hyp_my_cpu_offset:arch/arm64/kvm/hyp/nvhe/psci-relay.c:28 ~ 00007a30: d53cd048 mrs x8, tpidr_el2 ~ 00007a34: f90007e8 str x8, [sp, #8] ~ 00007a38: f94007e8 ldr x8, [sp, #8] ~ 00007a3c: f90003e8 str x8, [sp] ~ 00007a40: f94003e0 ldr x0, [sp] -__val var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7a30 0x7a44 (DW_OP_fbreg 0x8) lexblock:__hyp_my_cpu_offset:arch/arm64/kvm/hyp/nvhe/psci-relay.c:28 __hyp_my_cpu_offset:28.2 (percpu.h) sbepe ║return read_sysreg(tpidr_el2); ~ 00007a44: 910043ff add sp, sp, #0x10 00007a30 CFA:r31+16 ~ 00007a48: d65f03c0 ret **00007a4c <kvm_host_psci_handler>: + kvm_host_psci_handler params: +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7a4c 0x7b68 (DW_OP_fbreg -0x10) kvm_host_psci_handler:280.0 (psci-relay.c) Sbepe ║{ +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7a4c 0x7b68 (DW_OP_fbreg -0x10) kvm_host_psci_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:279 +func_id var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7a4c 0x7b68 (DW_OP_breg31 0x18) kvm_host_psci_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:281 +ret var long unsigned int (base type, DW_ATE_unsigned size:8) 0x7a4c 0x7b68 (DW_OP_breg31 0x10) kvm_host_psci_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:282 ~ 00007a4c: d10103ff sub sp, sp, #0x40 <- 000071a4(bl)<kvm_host_psci_handler> ~ 00007a50: a9037bfd stp x29, x30, [sp, #48] 00007a4c CFA:r31 r29:u r30:u ~ 00007a54: 9100c3fd add x29, sp, #0x30 ~ 00007a58: f81f03a0 stur x0, [x29, #-16] kvm_host_psci_handler:281.2 (psci-relay.c) SbePe ║DECLARE_REG(u64, func_id, host_ctxt, 0); ~ 00007a5c: f85f03a8 ldur x8, [x29, #-16] ~ 00007a60: f9400108 ldr x8, [x8] ~ 00007a64: f9000fe8 str x8, [sp, #24] kvm_host_psci_handler:284.31 (psci-relay.c) Sbepe switch (kvm_host_psci_config.║version) { ~ 00007a68: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> ~ 00007a6c: b9472109 ldr w9, [x8, #1824] kvm_host_psci_handler:284.2 (psci-relay.c) sbepe ║switch (kvm_host_psci_config.version) { ~ 00007a70: 2a0903ea mov w10, w9 ~ 00007a74: 71000529 subs w9, w9, #0x1 ~ 00007a78: b9000fea str w10, [sp, #12] ~ ┌──00007a7c: 540000c0 b.eq 7a94 <kvm_host_psci_handler+0x48> // b.none ~ │┌─00007a80: 14000001 b 7a84 <kvm_host_psci_handler+0x38> <- 00007a7c(b.cc-succ)<fallthrough> ││ ~ │└>00007a84: b9400fe8 ldr w8, [sp, #12] <- 00007a80(b)<kvm_host_psci_handler+0x38> kvm_host_psci_handler:284.2 (psci-relay.c) sbepe ║switch (kvm_host_psci_config.version) { ~ 00007a88: 71000909 subs w9, w8, #0x2 ~ ┌┼──00007a8c: 540001c0 b.eq 7ac4 <kvm_host_psci_handler+0x78> // b.none ││ ~ ┌┼┼──00007a90: 14000019 b 7af4 <kvm_host_psci_handler+0xa8> <- 00007a8c(b.cc-succ)<fallthrough> │││ │││ kvm_host_psci_handler:286.25 (psci-relay.c) Sbepe if (!is_psci_0_1_call(║func_id)) ~ ││└─>00007a94: f9400fe0 ldr x0, [sp, #24] <- 00007a7c(b.cc)<kvm_host_psci_handler+0x48> ││ kvm_host_psci_handler:286.8 (psci-relay.c) sbepe if (!║is_psci_0_1_call(func_id)) ~ ││ 00007a98: 94000034 bl 7b68 <is_psci_0_1_call> ││ ││ kvm_host_psci_handler:286.7 (psci-relay.c) sbepe if (║!is_psci_0_1_call(func_id)) ~ ││┌──00007a9c: 370000a0 tbnz w0, #0, 7ab0 <kvm_host_psci_handler+0x64> <- 00007a98(bl-succ)<return> │││ ~ │││┌─00007aa0: 14000001 b 7aa4 <kvm_host_psci_handler+0x58> <- 00007a9c(b.cc-succ)<fallthrough> ││││ ~ │││└>00007aa4: 2a1f03e8 mov w8, wzr <- 00007aa0(b)<kvm_host_psci_handler+0x58> │││ kvm_host_psci_handler:287.4 (psci-relay.c) Sbepe ║return false; ~ │││ 00007aa8: 381ff3a8 sturb w8, [x29, #-1] ~ ┌────┼┼┼──00007aac: 1400002b b 7b58 <kvm_host_psci_handler+0x10c> │ │││ │ │││ kvm_host_psci_handler:288.26 (psci-relay.c) Sbepe ret = psci_0_1_handler(║func_id, host_ctxt); ~ │ ││└─>00007ab0: f9400fe0 ldr x0, [sp, #24] <- 00007a9c(b.cc)<kvm_host_psci_handler+0x64> │ ││ kvm_host_psci_handler:288.35 (psci-relay.c) sbepe ret = psci_0_1_handler(func_id, ║host_ctxt); ~ │ ││ 00007ab4: f85f03a1 ldur x1, [x29, #-16] │ ││ kvm_host_psci_handler:288.9 (psci-relay.c) sbepe ret = ║psci_0_1_handler(func_id, host_ctxt); ~ │ ││ 00007ab8: 9400006a bl 7c60 <psci_0_1_handler> │ ││ │ ││ kvm_host_psci_handler:288.7 (psci-relay.c) sbepe ret ║= psci_0_1_handler(func_id, host_ctxt); ~ │ ││ 00007abc: f9000be0 str x0, [sp, #16] <- 00007ab8(bl-succ)<return> │ ││ kvm_host_psci_handler:289.3 (psci-relay.c) Sbepe ║break; ~ │ ┌─┼┼───00007ac0: 14000019 b 7b24 <kvm_host_psci_handler+0xd8> │ │ ││ │ │ ││ kvm_host_psci_handler:291.25 (psci-relay.c) Sbepe if (!is_psci_0_2_call(║func_id)) ~ │ │ │└──>00007ac4: f9400fe0 ldr x0, [sp, #24] <- 00007a8c(b.cc)<kvm_host_psci_handler+0x78> │ │ │ kvm_host_psci_handler:291.8 (psci-relay.c) sbepe if (!║is_psci_0_2_call(func_id)) ~ │ │ │ 00007ac8: 940000b0 bl 7d88 <is_psci_0_2_call> │ │ │ │ │ │ kvm_host_psci_handler:291.7 (psci-relay.c) sbepe if (║!is_psci_0_2_call(func_id)) ~ │ │ │ ┌──00007acc: 370000a0 tbnz w0, #0, 7ae0 <kvm_host_psci_handler+0x94> <- 00007ac8(bl-succ)<return> │ │ │ │ ~ │ │ │ │┌─00007ad0: 14000001 b 7ad4 <kvm_host_psci_handler+0x88> <- 00007acc(b.cc-succ)<fallthrough> │ │ │ ││ ~ │ │ │ │└>00007ad4: 2a1f03e8 mov w8, wzr <- 00007ad0(b)<kvm_host_psci_handler+0x88> │ │ │ │ kvm_host_psci_handler:292.4 (psci-relay.c) Sbepe ║return false; ~ │ │ │ │ 00007ad8: 381ff3a8 sturb w8, [x29, #-1] ~ │ ┌┼─┼─┼──00007adc: 1400001f b 7b58 <kvm_host_psci_handler+0x10c> │ ││ │ │ │ ││ │ │ kvm_host_psci_handler:293.26 (psci-relay.c) Sbepe ret = psci_0_2_handler(║func_id, host_ctxt); ~ │ ││ │ └─>00007ae0: f9400fe0 ldr x0, [sp, #24] <- 00007acc(b.cc)<kvm_host_psci_handler+0x94> │ ││ │ kvm_host_psci_handler:293.35 (psci-relay.c) sbepe ret = psci_0_2_handler(func_id, ║host_ctxt); ~ │ ││ │ 00007ae4: f85f03a1 ldur x1, [x29, #-16] │ ││ │ kvm_host_psci_handler:293.9 (psci-relay.c) sbepe ret = ║psci_0_2_handler(func_id, host_ctxt); ~ │ ││ │ 00007ae8: 940000ce bl 7e20 <psci_0_2_handler> │ ││ │ │ ││ │ kvm_host_psci_handler:293.7 (psci-relay.c) sbepe ret ║= psci_0_2_handler(func_id, host_ctxt); ~ │ ││ │ 00007aec: f9000be0 str x0, [sp, #16] <- 00007ae8(bl-succ)<return> │ ││ │ kvm_host_psci_handler:294.3 (psci-relay.c) Sbepe ║break; ~ │ ││ │┌───00007af0: 1400000d b 7b24 <kvm_host_psci_handler+0xd8> │ ││ ││ │ ││ ││ kvm_host_psci_handler:296.25 (psci-relay.c) Sbepe if (!is_psci_0_2_call(║func_id)) ~ │ ││ └┼──>00007af4: f9400fe0 ldr x0, [sp, #24] <- 00007a90(b)<kvm_host_psci_handler+0xa8> │ ││ │ kvm_host_psci_handler:296.8 (psci-relay.c) sbepe if (!║is_psci_0_2_call(func_id)) ~ │ ││ │ 00007af8: 940000a4 bl 7d88 <is_psci_0_2_call> │ ││ │ │ ││ │ kvm_host_psci_handler:296.7 (psci-relay.c) sbepe if (║!is_psci_0_2_call(func_id)) ~ │ ││ │┌──00007afc: 370000a0 tbnz w0, #0, 7b10 <kvm_host_psci_handler+0xc4> <- 00007af8(bl-succ)<return> │ ││ ││ ~ │ ││ ││┌─00007b00: 14000001 b 7b04 <kvm_host_psci_handler+0xb8> <- 00007afc(b.cc-succ)<fallthrough> │ ││ │││ ~ │ ││ ││└>00007b04: 2a1f03e8 mov w8, wzr <- 00007b00(b)<kvm_host_psci_handler+0xb8> │ ││ ││ kvm_host_psci_handler:297.4 (psci-relay.c) Sbepe ║return false; ~ │ ││ ││ 00007b08: 381ff3a8 sturb w8, [x29, #-1] ~ │ ││ ┌┼┼──00007b0c: 14000013 b 7b58 <kvm_host_psci_handler+0x10c> │ ││ │││ │ ││ │││ kvm_host_psci_handler:298.26 (psci-relay.c) Sbepe ret = psci_1_0_handler(║func_id, host_ctxt); ~ │ ││ ││└─>00007b10: f9400fe0 ldr x0, [sp, #24] <- 00007afc(b.cc)<kvm_host_psci_handler+0xc4> │ ││ ││ kvm_host_psci_handler:298.35 (psci-relay.c) sbepe ret = psci_1_0_handler(func_id, ║host_ctxt); ~ │ ││ ││ 00007b14: f85f03a1 ldur x1, [x29, #-16] │ ││ ││ kvm_host_psci_handler:298.9 (psci-relay.c) sbepe ret = ║psci_1_0_handler(func_id, host_ctxt); ~ │ ││ ││ 00007b18: 9400011b bl 7f84 <psci_1_0_handler> │ ││ ││ │ ││ ││ kvm_host_psci_handler:298.7 (psci-relay.c) sbepe ret ║= psci_1_0_handler(func_id, host_ctxt); ~ │ ││ ││ 00007b1c: f9000be0 str x0, [sp, #16] <- 00007b18(bl-succ)<return> │ ││ ││ kvm_host_psci_handler:299.3 (psci-relay.c) Sbepe ║break; ~ │ ││ ││ ┌─00007b20: 14000001 b 7b24 <kvm_host_psci_handler+0xd8> │ ││ ││ │ │ ││ ││ │ kvm_host_psci_handler:302.26 (psci-relay.c) Sbepe cpu_reg(host_ctxt, 0) = ║ret; ~ │ │└>│└>└>00007b24: f9400be8 ldr x8, [sp, #16] <- 00007ac0(b)<kvm_host_psci_handler+0xd8>,00007af0(b)<kvm_host_psci_handler+0xd8>,00007b20(b)<kvm_host_psci_handler+0xd8> │ │ │ kvm_host_psci_handler:302.2 (psci-relay.c) sbepe ║cpu_reg(host_ctxt, 0) = ret; ~ │ │ │ 00007b28: f85f03a9 ldur x9, [x29, #-16] │ │ │ kvm_host_psci_handler:302.24 (psci-relay.c) sbepe cpu_reg(host_ctxt, 0) ║= ret; ~ │ │ │ 00007b2c: f9000128 str x8, [x9] │ │ │ kvm_host_psci_handler:303.2 (psci-relay.c) Sbepe ║cpu_reg(host_ctxt, 1) = 0; ~ │ │ │ 00007b30: f85f03a8 ldur x8, [x29, #-16] ~ │ │ │ 00007b34: aa1f03e9 mov x9, xzr │ │ │ kvm_host_psci_handler:303.24 (psci-relay.c) sbepe cpu_reg(host_ctxt, 1) ║= 0; ~ │ │ │ 00007b38: f9000509 str x9, [x8, #8] │ │ │ kvm_host_psci_handler:304.2 (psci-relay.c) Sbepe ║cpu_reg(host_ctxt, 2) = 0; ~ │ │ │ 00007b3c: f85f03a8 ldur x8, [x29, #-16] │ │ │ kvm_host_psci_handler:304.24 (psci-relay.c) sbepe cpu_reg(host_ctxt, 2) ║= 0; ~ │ │ │ 00007b40: f9000909 str x9, [x8, #16] │ │ │ kvm_host_psci_handler:305.2 (psci-relay.c) Sbepe ║cpu_reg(host_ctxt, 3) = 0; ~ │ │ │ 00007b44: f85f03a8 ldur x8, [x29, #-16] │ │ │ kvm_host_psci_handler:305.24 (psci-relay.c) sbepe cpu_reg(host_ctxt, 3) ║= 0; ~ │ │ │ 00007b48: f9000d09 str x9, [x8, #24] ~ │ │ │ 00007b4c: 5280002a mov w10, #0x1 // #1 │ │ │ kvm_host_psci_handler:306.2 (psci-relay.c) Sbepe ║return true; ~ │ │ │ 00007b50: 381ff3aa sturb w10, [x29, #-1] ~ │ │ │ ┌─00007b54: 14000001 b 7b58 <kvm_host_psci_handler+0x10c> │ │ │ │ │ │ │ │ kvm_host_psci_handler:307.1 (psci-relay.c) Sbepe ║} ~ └>└─>└─>└>00007b58: 385ff3a0 ldurb w0, [x29, #-1] <- 00007aac(b)<kvm_host_psci_handler+0x10c>,00007adc(b)<kvm_host_psci_handler+0x10c>,00007b0c(b)<kvm_host_psci_handler+0x10c>,00007b54(b)<kvm_host_psci_handler+0x10c> ~ 00007b5c: a9437bfd ldp x29, x30, [sp, #48] ~ 00007b60: 910103ff add sp, sp, #0x40 00007a58 CFA:r29+16 r29:c-16 r30:c-8 ~ 00007b64: d65f03c0 ret -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7a4c 0x7b68 (DW_OP_fbreg -0x10) kvm_host_psci_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:279 -func_id var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7a4c 0x7b68 (DW_OP_breg31 0x18) kvm_host_psci_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:281 -ret var long unsigned int (base type, DW_ATE_unsigned size:8) 0x7a4c 0x7b68 (DW_OP_breg31 0x10) kvm_host_psci_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:282 **00007b68 <is_psci_0_1_call>: + is_psci_0_1_call params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7b68 0x7c60 (DW_OP_fbreg 0x8) is_psci_0_1_call:49.0 (psci-relay.c) Sbepe ║{ 00007b68 CFA:r31 +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7b68 0x7c60 (DW_OP_fbreg 0x8) is_psci_0_1_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:48 ~ 00007b68: d10043ff sub sp, sp, #0x10 <- 00007a98(bl)<is_psci_0_1_call> ~ 00007b6c: f90007e0 str x0, [sp, #8] is_psci_0_1_call:50.10 (psci-relay.c) SbePe return (║is_psci_0_1(cpu_suspend, func_id) || ~ 00007b70: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> ~ 00007b74: 395cd109 ldrb w9, [x8, #1844] ~ ┌───00007b78: 36000169 tbz w9, #0, 7ba4 <is_psci_0_1_call+0x3c> ~ │ ┌─00007b7c: 14000001 b 7b80 <is_psci_0_1_call+0x18> <- 00007b78(b.cc-succ)<fallthrough> │ │ ~ │ └>00007b80: f94007e8 ldr x8, [sp, #8] <- 00007b7c(b)<is_psci_0_1_call+0x18> ~ 00007b84: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ 00007b88: b947252a ldr w10, [x9, #1828] ~ 00007b8c: 2a0a03e9 mov w9, w10 ~ 00007b90: 5280002a mov w10, #0x1 // #1 is_psci_0_1_call:50.44 (psci-relay.c) sbepe return (is_psci_0_1(cpu_suspend, func_id) || ~ 00007b94: eb090108 subs x8, x8, x9 ~ 00007b98: b90007ea str w10, [sp, #4] ~ ┌────┼───00007b9c: 540005a0 b.eq 7c50 <is_psci_0_1_call+0xe8> // b.none │ │ ~ │ │ ┌─00007ba0: 14000001 b 7ba4 <is_psci_0_1_call+0x3c> <- 00007b9c(b.cc-succ)<fallthrough> │ │ │ │ │ │ is_psci_0_1_call:51.3 (psci-relay.c) Sbepe ║is_psci_0_1(cpu_on, func_id) || ~ │ └>└>00007ba4: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00007b78(b.cc)<is_psci_0_1_call+0x3c>,00007ba0(b)<is_psci_0_1_call+0x3c> ~ 00007ba8: 395cd509 ldrb w9, [x8, #1845] ~ │ ┌───00007bac: 36000169 tbz w9, #0, 7bd8 <is_psci_0_1_call+0x70> │ │ ~ │ │ ┌─00007bb0: 14000001 b 7bb4 <is_psci_0_1_call+0x4c> <- 00007bac(b.cc-succ)<fallthrough> │ │ │ ~ │ │ └>00007bb4: f94007e8 ldr x8, [sp, #8] <- 00007bb0(b)<is_psci_0_1_call+0x4c> ~ │ │ 00007bb8: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ │ │ 00007bbc: b947292a ldr w10, [x9, #1832] ~ │ │ 00007bc0: 2a0a03e9 mov w9, w10 ~ │ │ 00007bc4: 5280002a mov w10, #0x1 // #1 │ │ is_psci_0_1_call:51.32 (psci-relay.c) sbepe is_psci_0_1(cpu_on, func_id) || ~ │ │ 00007bc8: eb090108 subs x8, x8, x9 ~ │ │ 00007bcc: b90007ea str w10, [sp, #4] ~ │ ┌──┼───00007bd0: 54000400 b.eq 7c50 <is_psci_0_1_call+0xe8> // b.none │ │ │ ~ │ │ │ ┌─00007bd4: 14000001 b 7bd8 <is_psci_0_1_call+0x70> <- 00007bd0(b.cc-succ)<fallthrough> │ │ │ │ │ │ │ │ is_psci_0_1_call:52.3 (psci-relay.c) Sbepe ║is_psci_0_1(cpu_off, func_id) || ~ │ │ └>└>00007bd8: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00007bac(b.cc)<is_psci_0_1_call+0x70>,00007bd4(b)<is_psci_0_1_call+0x70> ~ │ │ 00007bdc: 395cd909 ldrb w9, [x8, #1846] ~ │ │ ┌───00007be0: 36000169 tbz w9, #0, 7c0c <is_psci_0_1_call+0xa4> │ │ │ ~ │ │ │ ┌─00007be4: 14000001 b 7be8 <is_psci_0_1_call+0x80> <- 00007be0(b.cc-succ)<fallthrough> │ │ │ │ ~ │ │ │ └>00007be8: f94007e8 ldr x8, [sp, #8] <- 00007be4(b)<is_psci_0_1_call+0x80> ~ │ │ │ 00007bec: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ │ │ │ 00007bf0: b9472d2a ldr w10, [x9, #1836] ~ │ │ │ 00007bf4: 2a0a03e9 mov w9, w10 ~ │ │ │ 00007bf8: 5280002a mov w10, #0x1 // #1 │ │ │ is_psci_0_1_call:52.33 (psci-relay.c) sbepe is_psci_0_1(cpu_off, func_id) || ~ │ │ │ 00007bfc: eb090108 subs x8, x8, x9 ~ │ │ │ 00007c00: b90007ea str w10, [sp, #4] ~ │ │ ┌┼───00007c04: 54000260 b.eq 7c50 <is_psci_0_1_call+0xe8> // b.none │ │ ││ ~ │ │ ││ ┌─00007c08: 14000001 b 7c0c <is_psci_0_1_call+0xa4> <- 00007c04(b.cc-succ)<fallthrough> │ │ ││ │ │ │ ││ │ is_psci_0_1_call:53.3 (psci-relay.c) Sbepe ║is_psci_0_1(migrate, func_id)); ~ │ │ │└>└>00007c0c: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00007be0(b.cc)<is_psci_0_1_call+0xa4>,00007c08(b)<is_psci_0_1_call+0xa4> ~ │ │ │ 00007c10: 395cdd09 ldrb w9, [x8, #1847] ~ │ │ │ 00007c14: 2a1f03e0 mov w0, wzr ~ │ │ │ 00007c18: b90003e0 str w0, [sp] ~ │ │ │┌───00007c1c: 36000149 tbz w9, #0, 7c44 <is_psci_0_1_call+0xdc> │ │ ││ ~ │ │ ││ ┌─00007c20: 14000001 b 7c24 <is_psci_0_1_call+0xbc> <- 00007c1c(b.cc-succ)<fallthrough> │ │ ││ │ ~ │ │ ││ └>00007c24: f94007e8 ldr x8, [sp, #8] <- 00007c20(b)<is_psci_0_1_call+0xbc> ~ │ │ ││ 00007c28: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ │ │ ││ 00007c2c: b947312a ldr w10, [x9, #1840] ~ │ │ ││ 00007c30: 2a0a03e9 mov w9, w10 ~ │ │ ││ 00007c34: eb090108 subs x8, x8, x9 ~ │ │ ││ 00007c38: 1a9f17ea cset w10, eq // eq = none ~ │ │ ││ 00007c3c: b90003ea str w10, [sp] ~ │ │ ││ ┌─00007c40: 14000001 b 7c44 <is_psci_0_1_call+0xdc> │ │ ││ │ ~ │ │ │└>└>00007c44: b94003e0 ldr w0, [sp] <- 00007c1c(b.cc)<is_psci_0_1_call+0xdc>,00007c40(b)<is_psci_0_1_call+0xdc> ~ │ │ │ 00007c48: b90007e0 str w0, [sp, #4] │ │ │ is_psci_0_1_call:52.33 (psci-relay.c) Sbepe is_psci_0_1(cpu_off, func_id) || ~ │ │ │ ┌─00007c4c: 14000001 b 7c50 <is_psci_0_1_call+0xe8> │ │ │ │ ~ └>└>└─>└>00007c50: b94007e8 ldr w8, [sp, #4] <- 00007b9c(b.cc)<is_psci_0_1_call+0xe8>,00007bd0(b.cc)<is_psci_0_1_call+0xe8>,00007c04(b.cc)<is_psci_0_1_call+0xe8>,00007c4c(b)<is_psci_0_1_call+0xe8> is_psci_0_1_call:50.2 (psci-relay.c) Sbepe ║return (is_psci_0_1(cpu_suspend, func_id) || ~ 00007c54: 12000100 and w0, w8, #0x1 ~ 00007c58: 910043ff add sp, sp, #0x10 00007b6c CFA:r31+16 ~ 00007c5c: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7b68 0x7c60 (DW_OP_fbreg 0x8) is_psci_0_1_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:48 **00007c60 <psci_0_1_handler>: + psci_0_1_handler params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7c60 0x7d88 (DW_OP_breg31 0x10) +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7c60 0x7d88 (DW_OP_breg31 0x8) psci_0_1_handler:231.0 (psci-relay.c) Sbepe ║{ +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7c60 0x7d88 (DW_OP_breg31 0x10) psci_0_1_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:230 +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7c60 0x7d88 (DW_OP_breg31 0x8) psci_0_1_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:230 ~ 00007c60: d100c3ff sub sp, sp, #0x30 <- 00007ab8(bl)<psci_0_1_handler> ~ 00007c64: a9027bfd stp x29, x30, [sp, #32] 00007c60 CFA:r31 r29:u r30:u ~ 00007c68: 910083fd add x29, sp, #0x20 ~ 00007c6c: f9000be0 str x0, [sp, #16] ~ 00007c70: f90007e1 str x1, [sp, #8] psci_0_1_handler:232.6 (psci-relay.c) SbePe if (║is_psci_0_1(cpu_off, func_id) || is_psci_0_1(migrate, func_id)) ~ 00007c74: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> ~ 00007c78: 395cd909 ldrb w9, [x8, #1846] ~ ┌───00007c7c: 36000129 tbz w9, #0, 7ca0 <psci_0_1_handler+0x40> ~ │ ┌─00007c80: 14000001 b 7c84 <psci_0_1_handler+0x24> <- 00007c7c(b.cc-succ)<fallthrough> │ │ ~ │ └>00007c84: f9400be8 ldr x8, [sp, #16] <- 00007c80(b)<psci_0_1_handler+0x24> ~ 00007c88: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ 00007c8c: b9472d2a ldr w10, [x9, #1836] ~ 00007c90: 2a0a03e9 mov w9, w10 psci_0_1_handler:232.36 (psci-relay.c) sbepe if (is_psci_0_1(cpu_off, func_id) ║|| is_psci_0_1(migrate, func_id)) ~ 00007c94: eb090108 subs x8, x8, x9 ~ ┌┼───00007c98: 540001a0 b.eq 7ccc <psci_0_1_handler+0x6c> // b.none ││ ~ ││ ┌─00007c9c: 14000001 b 7ca0 <psci_0_1_handler+0x40> <- 00007c98(b.cc-succ)<fallthrough> ││ │ ││ │ psci_0_1_handler:232.39 (psci-relay.c) sbepe if (is_psci_0_1(cpu_off, func_id) || ║is_psci_0_1(migrate, func_id)) ~ │└>└>00007ca0: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00007c7c(b.cc)<psci_0_1_handler+0x40>,00007c9c(b)<psci_0_1_handler+0x40> ~ 00007ca4: 395cdd09 ldrb w9, [x8, #1847] ~ ┌┼────00007ca8: 360001a9 tbz w9, #0, 7cdc <psci_0_1_handler+0x7c> ││ ~ ││ ┌─00007cac: 14000001 b 7cb0 <psci_0_1_handler+0x50> <- 00007ca8(b.cc-succ)<fallthrough> ││ │ ~ ││ └>00007cb0: f9400be8 ldr x8, [sp, #16] <- 00007cac(b)<psci_0_1_handler+0x50> ~ ││ 00007cb4: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ ││ 00007cb8: b947312a ldr w10, [x9, #1840] ~ ││ 00007cbc: 2a0a03e9 mov w9, w10 ││ psci_0_1_handler:232.6 (psci-relay.c) sbepe if (║is_psci_0_1(cpu_off, func_id) || is_psci_0_1(migrate, func_id)) ~ ││ 00007cc0: eb090108 subs x8, x8, x9 ~ ││ ┌──00007cc4: 540000c1 b.ne 7cdc <psci_0_1_handler+0x7c> // b.any ││ │ ~ ││ │┌─00007cc8: 14000001 b 7ccc <psci_0_1_handler+0x6c> <- 00007cc4(b.cc-succ)<fallthrough> ││ ││ ││ ││ psci_0_1_handler:233.23 (psci-relay.c) Sbepe return psci_forward(║host_ctxt); ~ │└>│└>00007ccc: f94007e0 ldr x0, [sp, #8] <- 00007c98(b.cc)<psci_0_1_handler+0x6c>,00007cc8(b)<psci_0_1_handler+0x6c> │ │ psci_0_1_handler:233.10 (psci-relay.c) sbepe return ║psci_forward(host_ctxt); ~ │ │ 00007cd0: 940000f0 bl 8090 <psci_forward> │ │ │ │ psci_0_1_handler:233.3 (psci-relay.c) sbepe ║return psci_forward(host_ctxt); ~ │ │ 00007cd4: f81f83a0 stur x0, [x29, #-8] <- 00007cd0(bl-succ)<return> ~ ┌──┼──┼──00007cd8: 14000028 b 7d78 <psci_0_1_handler+0x118> │ │ │ │ │ │ psci_0_1_handler:234.6 (psci-relay.c) Sbepe if (║is_psci_0_1(cpu_on, func_id)) ~ │ └─>└─>00007cdc: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00007ca8(b.cc)<psci_0_1_handler+0x7c>,00007cc4(b.cc)<psci_0_1_handler+0x7c> ~ 00007ce0: 395cd509 ldrb w9, [x8, #1845] ~ │ ┌────00007ce4: 36000209 tbz w9, #0, 7d24 <psci_0_1_handler+0xc4> │ │ ~ │ │ ┌─00007ce8: 14000001 b 7cec <psci_0_1_handler+0x8c> <- 00007ce4(b.cc-succ)<fallthrough> │ │ │ ~ │ │ └>00007cec: f9400be8 ldr x8, [sp, #16] <- 00007ce8(b)<psci_0_1_handler+0x8c> ~ │ │ 00007cf0: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ │ │ 00007cf4: b947292a ldr w10, [x9, #1832] ~ │ │ 00007cf8: 2a0a03e9 mov w9, w10 │ │ psci_0_1_handler:234.6 (psci-relay.c) sbepe if (║is_psci_0_1(cpu_on, func_id)) ~ │ │ 00007cfc: eb090108 subs x8, x8, x9 ~ │ │ ┌──00007d00: 54000121 b.ne 7d24 <psci_0_1_handler+0xc4> // b.any │ │ │ ~ │ │ │┌─00007d04: 14000001 b 7d08 <psci_0_1_handler+0xa8> <- 00007d00(b.cc-succ)<fallthrough> │ │ ││ │ │ ││ psci_0_1_handler:235.22 (psci-relay.c) Sbepe return psci_cpu_on(║func_id, host_ctxt); ~ │ │ │└>00007d08: f9400be0 ldr x0, [sp, #16] <- 00007d04(b)<psci_0_1_handler+0xa8> │ │ │ psci_0_1_handler:235.31 (psci-relay.c) sbepe return psci_cpu_on(func_id, ║host_ctxt); ~ │ │ │ 00007d0c: f94007e1 ldr x1, [sp, #8] │ │ │ psci_0_1_handler:235.10 (psci-relay.c) sbepe return ║psci_cpu_on(func_id, host_ctxt); ~ │ │ │ 00007d10: 940000ed bl 80c4 <psci_cpu_on> │ │ │ ~ │ │ │ 00007d14: 2a0003e1 mov w1, w0 <- 00007d10(bl-succ)<return> ~ │ │ │ 00007d18: 93407c28 sxtw x8, w1 │ │ │ psci_0_1_handler:235.3 (psci-relay.c) sbepe ║return psci_cpu_on(func_id, host_ctxt); ~ │ │ │ 00007d1c: f81f83a8 stur x8, [x29, #-8] ~ │ ┌─┼─┼──00007d20: 14000016 b 7d78 <psci_0_1_handler+0x118> │ │ │ │ │ │ │ │ psci_0_1_handler:236.6 (psci-relay.c) Sbepe if (║is_psci_0_1(cpu_suspend, func_id)) ~ │ │ └>└─>00007d24: f0000088 adrp x8, 1a000 <hyp_cpu_logical_map+0xe0> <- 00007ce4(b.cc)<psci_0_1_handler+0xc4>,00007d00(b.cc)<psci_0_1_handler+0xc4> ~ │ │ 00007d28: 395cd109 ldrb w9, [x8, #1844] ~ │ │┌─────00007d2c: 36000209 tbz w9, #0, 7d6c <psci_0_1_handler+0x10c> │ ││ ~ │ ││ ┌─00007d30: 14000001 b 7d34 <psci_0_1_handler+0xd4> <- 00007d2c(b.cc-succ)<fallthrough> │ ││ │ ~ │ ││ └>00007d34: f9400be8 ldr x8, [sp, #16] <- 00007d30(b)<psci_0_1_handler+0xd4> ~ │ ││ 00007d38: f0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ │ ││ 00007d3c: b947252a ldr w10, [x9, #1828] ~ │ ││ 00007d40: 2a0a03e9 mov w9, w10 │ ││ psci_0_1_handler:236.6 (psci-relay.c) sbepe if (║is_psci_0_1(cpu_suspend, func_id)) ~ │ ││ 00007d44: eb090108 subs x8, x8, x9 ~ │ ││ ┌──00007d48: 54000121 b.ne 7d6c <psci_0_1_handler+0x10c> // b.any │ ││ │ ~ │ ││ │┌─00007d4c: 14000001 b 7d50 <psci_0_1_handler+0xf0> <- 00007d48(b.cc-succ)<fallthrough> │ ││ ││ │ ││ ││ psci_0_1_handler:237.27 (psci-relay.c) Sbepe return psci_cpu_suspend(║func_id, host_ctxt); ~ │ ││ │└>00007d50: f9400be0 ldr x0, [sp, #16] <- 00007d4c(b)<psci_0_1_handler+0xf0> │ ││ │ psci_0_1_handler:237.36 (psci-relay.c) sbepe return psci_cpu_suspend(func_id, ║host_ctxt); ~ │ ││ │ 00007d54: f94007e1 ldr x1, [sp, #8] │ ││ │ psci_0_1_handler:237.10 (psci-relay.c) sbepe return ║psci_cpu_suspend(func_id, host_ctxt); ~ │ ││ │ 00007d58: 940001b6 bl 8430 <psci_cpu_suspend> │ ││ │ ~ │ ││ │ 00007d5c: 2a0003e1 mov w1, w0 <- 00007d58(bl-succ)<return> ~ │ ││ │ 00007d60: 93407c28 sxtw x8, w1 │ ││ │ psci_0_1_handler:237.3 (psci-relay.c) sbepe ║return psci_cpu_suspend(func_id, host_ctxt); ~ │ ││ │ 00007d64: f81f83a8 stur x8, [x29, #-8] ~ │ ││ ┌┼──00007d68: 14000004 b 7d78 <psci_0_1_handler+0x118> │ ││ ││ ~ │ │└>│└─>00007d6c: 92800008 mov x8, #0xffffffffffffffff // #-1 <- 00007d2c(b.cc)<psci_0_1_handler+0x10c>,00007d48(b.cc)<psci_0_1_handler+0x10c> │ │ │ psci_0_1_handler:239.2 (psci-relay.c) Sbepe ║return PSCI_RET_NOT_SUPPORTED; ~ │ │ │ 00007d70: f81f83a8 stur x8, [x29, #-8] ~ │ │ │ ┌─00007d74: 14000001 b 7d78 <psci_0_1_handler+0x118> │ │ │ │ │ │ │ │ psci_0_1_handler:240.1 (psci-relay.c) Sbepe ║} ~ └>└─>└>└>00007d78: f85f83a0 ldur x0, [x29, #-8] <- 00007cd8(b)<psci_0_1_handler+0x118>,00007d20(b)<psci_0_1_handler+0x118>,00007d68(b)<psci_0_1_handler+0x118>,00007d74(b)<psci_0_1_handler+0x118> ~ 00007d7c: a9427bfd ldp x29, x30, [sp, #32] ~ 00007d80: 9100c3ff add sp, sp, #0x30 00007c6c CFA:r29+16 r29:c-16 r30:c-8 ~ 00007d84: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7c60 0x7d88 (DW_OP_breg31 0x10) psci_0_1_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:230 -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7c60 0x7d88 (DW_OP_breg31 0x8) psci_0_1_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:230 **00007d88 <is_psci_0_2_call>: + is_psci_0_2_call params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7d88 0x7e20 (DW_OP_fbreg 0x8) is_psci_0_2_call:57.0 (psci-relay.c) Sbepe ║{ 00007d88 CFA:r31 +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7d88 0x7e20 (DW_OP_fbreg 0x8) is_psci_0_2_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:56 ~ 00007d88: d10043ff sub sp, sp, #0x10 <- 00007ac8(bl)<is_psci_0_2_call>,00007af8(bl)<is_psci_0_2_call> ~ 00007d8c: f90007e0 str x0, [sp, #8] is_psci_0_2_call:59.28 (psci-relay.c) SbePe return (PSCI_0_2_FN(0) <= ║func_id && func_id <= PSCI_0_2_FN(31)) || ~ 00007d90: f94007e8 ldr x8, [sp, #8] is_psci_0_2_call:59.36 (psci-relay.c) sbepe return (PSCI_0_2_FN(0) <= func_id ║&& func_id <= PSCI_0_2_FN(31)) || ~ 00007d94: d35afd08 lsr x8, x8, #26 ~ 00007d98: f1008508 subs x8, x8, #0x21 ~ ┌───00007d9c: 54000163 b.cc 7dc8 <is_psci_0_2_call+0x40> // b.lo, b.ul, b.last ~ │ ┌─00007da0: 14000001 b 7da4 <is_psci_0_2_call+0x1c> <- 00007d9c(b.cc-succ)<fallthrough> │ │ │ │ is_psci_0_2_call:59.39 (psci-relay.c) sbepe return (PSCI_0_2_FN(0) <= func_id && ║func_id <= PSCI_0_2_FN(31)) || ~ │ └>00007da4: f94007e8 ldr x8, [sp, #8] <- 00007da0(b)<is_psci_0_2_call+0x1c> ~ 00007da8: 52800029 mov w9, #0x1 // #1 ~ 00007dac: 5280040a mov w10, #0x20 // #32 ~ 00007db0: 72b0800a movk w10, #0x8400, lsl #16 ~ 00007db4: 2a0a03eb mov w11, w10 is_psci_0_2_call:59.67 (psci-relay.c) sbepe return (PSCI_0_2_FN(0) <= func_id && func_id <= PSCI_0_2_FN(31)) || ~ 00007db8: eb0b0108 subs x8, x8, x11 ~ 00007dbc: b90007e9 str w9, [sp, #4] ~ ┌┼───00007dc0: 54000283 b.cc 7e10 <is_psci_0_2_call+0x88> // b.lo, b.ul, b.last ││ ~ ││ ┌─00007dc4: 14000001 b 7dc8 <is_psci_0_2_call+0x40> <- 00007dc0(b.cc-succ)<fallthrough> ││ │ ││ │ is_psci_0_2_call:60.30 (psci-relay.c) Sbepe (PSCI_0_2_FN64(0) <= ║func_id && func_id <= PSCI_0_2_FN64(31)); ~ │└>└>00007dc8: f94007e8 ldr x8, [sp, #8] <- 00007d9c(b.cc)<is_psci_0_2_call+0x40>,00007dc4(b)<is_psci_0_2_call+0x40> ~ 00007dcc: 2a1f03e0 mov w0, wzr is_psci_0_2_call:60.38 (psci-relay.c) sbepe (PSCI_0_2_FN64(0) <= func_id ║&& func_id <= PSCI_0_2_FN64(31)); ~ 00007dd0: d35afd08 lsr x8, x8, #26 ~ 00007dd4: f100c508 subs x8, x8, #0x31 ~ 00007dd8: b90003e0 str w0, [sp] ~ │┌───00007ddc: 54000143 b.cc 7e04 <is_psci_0_2_call+0x7c> // b.lo, b.ul, b.last ││ ~ ││ ┌─00007de0: 14000001 b 7de4 <is_psci_0_2_call+0x5c> <- 00007ddc(b.cc-succ)<fallthrough> ││ │ ││ │ is_psci_0_2_call:60.41 (psci-relay.c) sbepe (PSCI_0_2_FN64(0) <= func_id && ║func_id <= PSCI_0_2_FN64(31)); ~ ││ └>00007de4: f94007e8 ldr x8, [sp, #8] <- 00007de0(b)<is_psci_0_2_call+0x5c> ~ ││ 00007de8: 52800409 mov w9, #0x20 // #32 ~ ││ 00007dec: 72b88009 movk w9, #0xc400, lsl #16 ~ ││ 00007df0: 2a0903ea mov w10, w9 ││ is_psci_0_2_call:60.49 (psci-relay.c) sbepe (PSCI_0_2_FN64(0) <= func_id && func_id ║<= PSCI_0_2_FN64(31)); ~ ││ 00007df4: eb0a0108 subs x8, x8, x10 ~ ││ 00007df8: 1a9f27e9 cset w9, cc // cc = lo, ul, last ~ ││ 00007dfc: b90003e9 str w9, [sp] ~ ││ ┌─00007e00: 14000001 b 7e04 <is_psci_0_2_call+0x7c> ││ │ ~ │└>└>00007e04: b94003e0 ldr w0, [sp] <- 00007ddc(b.cc)<is_psci_0_2_call+0x7c>,00007e00(b)<is_psci_0_2_call+0x7c> ~ 00007e08: b90007e0 str w0, [sp, #4] is_psci_0_2_call:59.67 (psci-relay.c) Sbepe return (PSCI_0_2_FN(0) <= func_id && func_id <= PSCI_0_2_FN(31)) || ~ │ ┌─00007e0c: 14000001 b 7e10 <is_psci_0_2_call+0x88> │ │ ~ └─>└>00007e10: b94007e8 ldr w8, [sp, #4] <- 00007dc0(b.cc)<is_psci_0_2_call+0x88>,00007e0c(b)<is_psci_0_2_call+0x88> is_psci_0_2_call:59.2 (psci-relay.c) sbepe ║return (PSCI_0_2_FN(0) <= func_id && func_id <= PSCI_0_2_FN(31)) || ~ 00007e14: 12000100 and w0, w8, #0x1 ~ 00007e18: 910043ff add sp, sp, #0x10 00007d8c CFA:r31+16 ~ 00007e1c: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7d88 0x7e20 (DW_OP_fbreg 0x8) is_psci_0_2_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:56 **00007e20 <psci_0_2_handler>: + psci_0_2_handler params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7e20 0x7f84 (DW_OP_breg31 0x10) +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7e20 0x7f84 (DW_OP_breg31 0x8) psci_0_2_handler:243.0 (psci-relay.c) Sbepe ║{ +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7e20 0x7f84 (DW_OP_breg31 0x10) psci_0_2_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:242 +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7e20 0x7f84 (DW_OP_breg31 0x8) psci_0_2_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:242 ~ 00007e20: d100c3ff sub sp, sp, #0x30 <- 00007ae8(bl)<psci_0_2_handler>,00008044(bl)<psci_0_2_handler> ~ 00007e24: a9027bfd stp x29, x30, [sp, #32] 00007e20 CFA:r31 r29:u r30:u ~ 00007e28: 910083fd add x29, sp, #0x20 ~ 00007e2c: f9000be0 str x0, [sp, #16] ~ 00007e30: f90007e1 str x1, [sp, #8] psci_0_2_handler:244.10 (psci-relay.c) SbePe switch (║func_id) { ~ 00007e34: f9400be8 ldr x8, [sp, #16] psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ 00007e38: aa0803e9 mov x9, x8 ~ 00007e3c: 52b0800a mov w10, #0x84000000 // #-2080374784 ~ 00007e40: 2a0a03eb mov w11, w10 ~ 00007e44: eb0b0108 subs x8, x8, x11 ~ 00007e48: f90003e9 str x9, [sp] ~ ┌─────────────00007e4c: 54000660 b.eq 7f18 <psci_0_2_handler+0xf8> // b.none ~ │ ┌─00007e50: 14000001 b 7e54 <psci_0_2_handler+0x34> <- 00007e4c(b.cc-succ)<fallthrough> │ │ ~ │ └>00007e54: 52800048 mov w8, #0x2 // #2 <- 00007e50(b)<psci_0_2_handler+0x34> ~ 00007e58: 72b08008 movk w8, #0x8400, lsl #16 ~ 00007e5c: 2a0803e9 mov w9, w8 ~ 00007e60: f94003ea ldr x10, [sp] psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ 00007e64: eb090149 subs x9, x10, x9 ~ │ ┌───────────00007e68: 54000580 b.eq 7f18 <psci_0_2_handler+0xf8> // b.none │ │ ~ │ │ ┌─00007e6c: 14000001 b 7e70 <psci_0_2_handler+0x50> <- 00007e68(b.cc-succ)<fallthrough> │ │ │ ~ │ │ └>00007e70: 528000c8 mov w8, #0x6 // #6 <- 00007e6c(b)<psci_0_2_handler+0x50> ~ │ │ 00007e74: 72b08008 movk w8, #0x8400, lsl #16 ~ │ │ 00007e78: 2a0803e9 mov w9, w8 ~ │ │ 00007e7c: f94003ea ldr x10, [sp] │ │ psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ 00007e80: eb090149 subs x9, x10, x9 ~ │ │ ┌─────────00007e84: 540004a0 b.eq 7f18 <psci_0_2_handler+0xf8> // b.none │ │ │ ~ │ │ │ ┌─00007e88: 14000001 b 7e8c <psci_0_2_handler+0x6c> <- 00007e84(b.cc-succ)<fallthrough> │ │ │ │ ~ │ │ │ └>00007e8c: 928000e8 mov x8, #0xfffffffffffffff8 // #-8 <- 00007e88(b)<psci_0_2_handler+0x6c> ~ │ │ │ 00007e90: f2af7fe8 movk x8, #0x7bff, lsl #16 ~ │ │ │ 00007e94: f94003e9 ldr x9, [sp] │ │ │ psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ │ 00007e98: 8b080128 add x8, x9, x8 ~ │ │ │ 00007e9c: f1000908 subs x8, x8, #0x2 ~ │ │ │┌────────00007ea0: 54000443 b.cc 7f28 <psci_0_2_handler+0x108> // b.lo, b.ul, b.last │ │ ││ ~ │ │ ││ ┌─00007ea4: 14000001 b 7ea8 <psci_0_2_handler+0x88> <- 00007ea0(b.cc-succ)<fallthrough> │ │ ││ │ ~ │ │ ││ └>00007ea8: 52800028 mov w8, #0x1 // #1 <- 00007ea4(b)<psci_0_2_handler+0x88> ~ │ │ ││ 00007eac: 72b88008 movk w8, #0xc400, lsl #16 ~ │ │ ││ 00007eb0: 2a0803e9 mov w9, w8 ~ │ │ ││ 00007eb4: f94003ea ldr x10, [sp] │ │ ││ psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ ││ 00007eb8: eb090149 subs x9, x10, x9 ~ │ │ ││ ┌─────00007ebc: 540003a0 b.eq 7f30 <psci_0_2_handler+0x110> // b.none │ │ ││ │ ~ │ │ ││ │ ┌─00007ec0: 14000001 b 7ec4 <psci_0_2_handler+0xa4> <- 00007ebc(b.cc-succ)<fallthrough> │ │ ││ │ │ ~ │ │ ││ │ └>00007ec4: 52800068 mov w8, #0x3 // #3 <- 00007ec0(b)<psci_0_2_handler+0xa4> ~ │ │ ││ │ 00007ec8: 72b88008 movk w8, #0xc400, lsl #16 ~ │ │ ││ │ 00007ecc: 2a0803e9 mov w9, w8 ~ │ │ ││ │ 00007ed0: f94003ea ldr x10, [sp] │ │ ││ │ psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ ││ │ 00007ed4: eb090149 subs x9, x10, x9 ~ │ │ ││ ┌┼─────00007ed8: 540003a0 b.eq 7f4c <psci_0_2_handler+0x12c> // b.none │ │ ││ ││ ~ │ │ ││ ││ ┌─00007edc: 14000001 b 7ee0 <psci_0_2_handler+0xc0> <- 00007ed8(b.cc-succ)<fallthrough> │ │ ││ ││ │ ~ │ │ ││ ││ └>00007ee0: 92800068 mov x8, #0xfffffffffffffffc // #-4 <- 00007edc(b)<psci_0_2_handler+0xc0> ~ │ │ ││ ││ 00007ee4: f2a77fe8 movk x8, #0x3bff, lsl #16 ~ │ │ ││ ││ 00007ee8: f94003e9 ldr x9, [sp] │ │ ││ ││ psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ ││ ││ 00007eec: 8b080128 add x8, x9, x8 ~ │ │ ││ ││ 00007ef0: f1000908 subs x8, x8, #0x2 ~ │ │ ││ ││ ┌───00007ef4: 54000123 b.cc 7f18 <psci_0_2_handler+0xf8> // b.lo, b.ul, b.last │ │ ││ ││ │ ~ │ │ ││ ││ │ ┌─00007ef8: 14000001 b 7efc <psci_0_2_handler+0xdc> <- 00007ef4(b.cc-succ)<fallthrough> │ │ ││ ││ │ │ ~ │ │ ││ ││ │ └>00007efc: 528000e8 mov w8, #0x7 // #7 <- 00007ef8(b)<psci_0_2_handler+0xdc> ~ │ │ ││ ││ │ 00007f00: 72b88008 movk w8, #0xc400, lsl #16 ~ │ │ ││ ││ │ 00007f04: 2a0803e9 mov w9, w8 ~ │ │ ││ ││ │ 00007f08: f94003ea ldr x10, [sp] │ │ ││ ││ │ psci_0_2_handler:244.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ ││ ││ │ 00007f0c: eb090149 subs x9, x10, x9 ~ │ │ ││ ││┌┼───00007f10: 540002c1 b.ne 7f68 <psci_0_2_handler+0x148> // b.any │ │ ││ ││││ ~ │ │ ││ ││││ ┌─00007f14: 14000001 b 7f18 <psci_0_2_handler+0xf8> <- 00007f10(b.cc-succ)<fallthrough> │ │ ││ ││││ │ │ │ ││ ││││ │ psci_0_2_handler:251.23 (psci-relay.c) Sbepe return psci_forward(║host_ctxt); ~ └>└>└┼>│││└>└>00007f18: f94007e0 ldr x0, [sp, #8] <- 00007e4c(b.cc)<psci_0_2_handler+0xf8>,00007e68(b.cc)<psci_0_2_handler+0xf8>,00007e84(b.cc)<psci_0_2_handler+0xf8>,00007ef4(b.cc)<psci_0_2_handler+0xf8>,00007f14(b)<psci_0_2_handler+0xf8> │ │││ psci_0_2_handler:251.10 (psci-relay.c) sbepe return ║psci_forward(host_ctxt); ~ │ │││ 00007f1c: 9400005d bl 8090 <psci_forward> │ │││ │ │││ psci_0_2_handler:251.3 (psci-relay.c) sbepe ║return psci_forward(host_ctxt); ~ │ │││ 00007f20: f81f83a0 stur x0, [x29, #-8] <- 00007f1c(bl-succ)<return> ~ │┌┼┼┼────00007f24: 14000014 b 7f74 <psci_0_2_handler+0x154> │││││ │││││ psci_0_2_handler:254.25 (psci-relay.c) Sbepe psci_forward_noreturn(║host_ctxt); ~ └┼┼┼┼───>00007f28: f94007e0 ldr x0, [sp, #8] <- 00007ea0(b.cc)<psci_0_2_handler+0x108> ││││ psci_0_2_handler:254.3 (psci-relay.c) sbepe ║psci_forward_noreturn(host_ctxt); ~ ││││ 00007f2c: 94000310 bl 8b6c <psci_forward_noreturn> ││││ ││││ psci_0_2_handler:257.27 (psci-relay.c) Sbepe return psci_cpu_suspend(║func_id, host_ctxt); ~ ││└┼───>00007f30: f9400be0 ldr x0, [sp, #16] <- 00007ebc(b.cc)<psci_0_2_handler+0x110>,00007f2c(bl-succ)<return> ││ │ psci_0_2_handler:257.36 (psci-relay.c) sbepe return psci_cpu_suspend(func_id, ║host_ctxt); ~ ││ │ 00007f34: f94007e1 ldr x1, [sp, #8] ││ │ psci_0_2_handler:257.10 (psci-relay.c) sbepe return ║psci_cpu_suspend(func_id, host_ctxt); ~ ││ │ 00007f38: 9400013e bl 8430 <psci_cpu_suspend> ││ │ ~ ││ │ 00007f3c: 2a0003e1 mov w1, w0 <- 00007f38(bl-succ)<return> ~ ││ │ 00007f40: 93407c28 sxtw x8, w1 ││ │ psci_0_2_handler:257.3 (psci-relay.c) sbepe ║return psci_cpu_suspend(func_id, host_ctxt); ~ ││ │ 00007f44: f81f83a8 stur x8, [x29, #-8] ~ ││┌┼────00007f48: 1400000b b 7f74 <psci_0_2_handler+0x154> ││││ ││││ psci_0_2_handler:259.22 (psci-relay.c) Sbepe return psci_cpu_on(║func_id, host_ctxt); ~ │└┼┼───>00007f4c: f9400be0 ldr x0, [sp, #16] <- 00007ed8(b.cc)<psci_0_2_handler+0x12c> │ ││ psci_0_2_handler:259.31 (psci-relay.c) sbepe return psci_cpu_on(func_id, ║host_ctxt); ~ │ ││ 00007f50: f94007e1 ldr x1, [sp, #8] │ ││ psci_0_2_handler:259.10 (psci-relay.c) sbepe return ║psci_cpu_on(func_id, host_ctxt); ~ │ ││ 00007f54: 9400005c bl 80c4 <psci_cpu_on> │ ││ ~ │ ││ 00007f58: 2a0003e1 mov w1, w0 <- 00007f54(bl-succ)<return> ~ │ ││ 00007f5c: 93407c28 sxtw x8, w1 │ ││ psci_0_2_handler:259.3 (psci-relay.c) sbepe ║return psci_cpu_on(func_id, host_ctxt); ~ │ ││ 00007f60: f81f83a8 stur x8, [x29, #-8] ~ │ ││┌───00007f64: 14000004 b 7f74 <psci_0_2_handler+0x154> │ │││ ~ │ │└┼──>00007f68: 92800008 mov x8, #0xffffffffffffffff // #-1 <- 00007f10(b.cc)<psci_0_2_handler+0x148> │ │ │ psci_0_2_handler:261.3 (psci-relay.c) Sbepe ║return PSCI_RET_NOT_SUPPORTED; ~ │ │ │ 00007f6c: f81f83a8 stur x8, [x29, #-8] ~ │ │ │ ┌─00007f70: 14000001 b 7f74 <psci_0_2_handler+0x154> │ │ │ │ │ │ │ │ psci_0_2_handler:263.1 (psci-relay.c) Sbepe ║} ~ └>└>└>└>00007f74: f85f83a0 ldur x0, [x29, #-8] <- 00007f24(b)<psci_0_2_handler+0x154>,00007f48(b)<psci_0_2_handler+0x154>,00007f64(b)<psci_0_2_handler+0x154>,00007f70(b)<psci_0_2_handler+0x154> ~ 00007f78: a9427bfd ldp x29, x30, [sp, #32] ~ 00007f7c: 9100c3ff add sp, sp, #0x30 00007e2c CFA:r29+16 r29:c-16 r30:c-8 ~ 00007f80: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7e20 0x7f84 (DW_OP_breg31 0x10) psci_0_2_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:242 -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7e20 0x7f84 (DW_OP_breg31 0x8) psci_0_2_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:242 **00007f84 <psci_1_0_handler>: + psci_1_0_handler params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7f84 0x8060 (DW_OP_breg31 0x10) +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7f84 0x8060 (DW_OP_breg31 0x8) psci_1_0_handler:266.0 (psci-relay.c) Sbepe ║{ +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7f84 0x8060 (DW_OP_breg31 0x10) psci_1_0_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:265 +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7f84 0x8060 (DW_OP_breg31 0x8) psci_1_0_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:265 ~ 00007f84: d100c3ff sub sp, sp, #0x30 <- 00007b18(bl)<psci_1_0_handler> ~ 00007f88: a9027bfd stp x29, x30, [sp, #32] 00007f84 CFA:r31 r29:u r30:u ~ 00007f8c: 910083fd add x29, sp, #0x20 ~ 00007f90: f9000be0 str x0, [sp, #16] ~ 00007f94: f90007e1 str x1, [sp, #8] psci_1_0_handler:267.10 (psci-relay.c) SbePe switch (║func_id) { ~ 00007f98: f9400be8 ldr x8, [sp, #16] psci_1_0_handler:267.2 (psci-relay.c) sbepe ║switch (func_id) { ~ 00007f9c: aa0803e9 mov x9, x8 ~ 00007fa0: 5280014a mov w10, #0xa // #10 ~ 00007fa4: 72b0800a movk w10, #0x8400, lsl #16 ~ 00007fa8: 2a0a03eb mov w11, w10 ~ 00007fac: eb0b0108 subs x8, x8, x11 ~ 00007fb0: f90003e9 str x9, [sp] ~ ┌───────00007fb4: 540002e0 b.eq 8010 <psci_1_0_handler+0x8c> // b.none ~ │ ┌─00007fb8: 14000001 b 7fbc <psci_1_0_handler+0x38> <- 00007fb4(b.cc-succ)<fallthrough> │ │ ~ │ └>00007fbc: 528001e8 mov w8, #0xf // #15 <- 00007fb8(b)<psci_1_0_handler+0x38> ~ 00007fc0: 72b08008 movk w8, #0x8400, lsl #16 ~ 00007fc4: 2a0803e9 mov w9, w8 ~ 00007fc8: f94003ea ldr x10, [sp] psci_1_0_handler:267.2 (psci-relay.c) sbepe ║switch (func_id) { ~ 00007fcc: eb090149 subs x9, x10, x9 ~ │ ┌─────00007fd0: 54000200 b.eq 8010 <psci_1_0_handler+0x8c> // b.none │ │ ~ │ │ ┌─00007fd4: 14000001 b 7fd8 <psci_1_0_handler+0x54> <- 00007fd0(b.cc-succ)<fallthrough> │ │ │ ~ │ │ └>00007fd8: 528001c8 mov w8, #0xe // #14 <- 00007fd4(b)<psci_1_0_handler+0x54> ~ │ │ 00007fdc: 72b88008 movk w8, #0xc400, lsl #16 ~ │ │ 00007fe0: 2a0803e9 mov w9, w8 ~ │ │ 00007fe4: f94003ea ldr x10, [sp] │ │ psci_1_0_handler:267.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ 00007fe8: eb090149 subs x9, x10, x9 ~ │ │ ┌──00007fec: 540001a0 b.eq 8020 <psci_1_0_handler+0x9c> // b.none │ │ │ ~ │ │ │┌─00007ff0: 14000001 b 7ff4 <psci_1_0_handler+0x70> <- 00007fec(b.cc-succ)<fallthrough> │ │ ││ ~ │ │ │└>00007ff4: 52800248 mov w8, #0x12 // #18 <- 00007ff0(b)<psci_1_0_handler+0x70> ~ │ │ │ 00007ff8: 72b88008 movk w8, #0xc400, lsl #16 ~ │ │ │ 00007ffc: 2a0803e9 mov w9, w8 ~ │ │ │ 00008000: f94003ea ldr x10, [sp] │ │ │ psci_1_0_handler:267.2 (psci-relay.c) sbepe ║switch (func_id) { ~ │ │ │ 00008004: eb090149 subs x9, x10, x9 ~ │ │┌─┼──00008008: 540001a1 b.ne 803c <psci_1_0_handler+0xb8> // b.any │ ││ │ ~ │ ││ │┌─0000800c: 14000001 b 8010 <psci_1_0_handler+0x8c> <- 00008008(b.cc-succ)<fallthrough> │ ││ ││ │ ││ ││ psci_1_0_handler:271.23 (psci-relay.c) Sbepe return psci_forward(║host_ctxt); ~ └>└┼>│└>00008010: f94007e0 ldr x0, [sp, #8] <- 00007fb4(b.cc)<psci_1_0_handler+0x8c>,00007fd0(b.cc)<psci_1_0_handler+0x8c>,0000800c(b)<psci_1_0_handler+0x8c> │ │ psci_1_0_handler:271.10 (psci-relay.c) sbepe return ║psci_forward(host_ctxt); ~ │ │ 00008014: 9400001f bl 8090 <psci_forward> │ │ │ │ psci_1_0_handler:271.3 (psci-relay.c) sbepe ║return psci_forward(host_ctxt); ~ │ │ 00008018: f81f83a0 stur x0, [x29, #-8] <- 00008014(bl-succ)<return> ~ ┌┼─┼──0000801c: 1400000d b 8050 <psci_1_0_handler+0xcc> ││ │ ││ │ psci_1_0_handler:273.30 (psci-relay.c) Sbepe return psci_system_suspend(║func_id, host_ctxt); ~ ││ └─>00008020: f9400be0 ldr x0, [sp, #16] <- 00007fec(b.cc)<psci_1_0_handler+0x9c> ││ psci_1_0_handler:273.39 (psci-relay.c) sbepe return psci_system_suspend(func_id, ║host_ctxt); ~ ││ 00008024: f94007e1 ldr x1, [sp, #8] ││ psci_1_0_handler:273.10 (psci-relay.c) sbepe return ║psci_system_suspend(func_id, host_ctxt); ~ ││ 00008028: 940002d9 bl 8b8c <psci_system_suspend> ││ ~ ││ 0000802c: 2a0003e1 mov w1, w0 <- 00008028(bl-succ)<return> ~ ││ 00008030: 93407c28 sxtw x8, w1 ││ psci_1_0_handler:273.3 (psci-relay.c) sbepe ║return psci_system_suspend(func_id, host_ctxt); ~ ││ 00008034: f81f83a8 stur x8, [x29, #-8] ~ ││┌───00008038: 14000006 b 8050 <psci_1_0_handler+0xcc> │││ │││ psci_1_0_handler:275.27 (psci-relay.c) Sbepe return psci_0_2_handler(║func_id, host_ctxt); ~ │└┼──>0000803c: f9400be0 ldr x0, [sp, #16] <- 00008008(b.cc)<psci_1_0_handler+0xb8> │ │ psci_1_0_handler:275.36 (psci-relay.c) sbepe return psci_0_2_handler(func_id, ║host_ctxt); ~ │ │ 00008040: f94007e1 ldr x1, [sp, #8] │ │ psci_1_0_handler:275.10 (psci-relay.c) sbepe return ║psci_0_2_handler(func_id, host_ctxt); ~ │ │ 00008044: 97ffff77 bl 7e20 <psci_0_2_handler> │ │ │ │ psci_1_0_handler:275.3 (psci-relay.c) sbepe ║return psci_0_2_handler(func_id, host_ctxt); ~ │ │ 00008048: f81f83a0 stur x0, [x29, #-8] <- 00008044(bl-succ)<return> ~ │ │ ┌─0000804c: 14000001 b 8050 <psci_1_0_handler+0xcc> │ │ │ │ │ │ psci_1_0_handler:277.1 (psci-relay.c) Sbepe ║} ~ └>└>└>00008050: f85f83a0 ldur x0, [x29, #-8] <- 0000801c(b)<psci_1_0_handler+0xcc>,00008038(b)<psci_1_0_handler+0xcc>,0000804c(b)<psci_1_0_handler+0xcc> ~ 00008054: a9427bfd ldp x29, x30, [sp, #32] ~ 00008058: 9100c3ff add sp, sp, #0x30 00007f90 CFA:r29+16 r29:c-16 r30:c-8 ~ 0000805c: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x7f84 0x8060 (DW_OP_breg31 0x10) psci_1_0_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:265 -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x7f84 0x8060 (DW_OP_breg31 0x8) psci_1_0_handler:arch/arm64/kvm/hyp/nvhe/psci-relay.c:265 **00008060 <kasan_check_write>: + kasan_check_write params: +p param pointer(const(missing at <5bca5>/<6a434>)) 0x8060 0x8078 (DW_OP_fbreg 0x8) +size param unsigned int (base type, DW_ATE_unsigned size:4) 0x8060 0x8078 (DW_OP_fbreg 0x4) kasan_check_write:39.0 (kasan-checks.h) Sbepe ║{ 00008060 CFA:r31 +p param pointer(const(missing at <5bca5>/<6a434>)) 0x8060 0x8078 (DW_OP_fbreg 0x8) kasan_check_write:arch/arm64/kvm/hyp/nvhe/psci-relay.c:38 +size param unsigned int (base type, DW_ATE_unsigned size:4) 0x8060 0x8078 (DW_OP_fbreg 0x4) kasan_check_write:arch/arm64/kvm/hyp/nvhe/psci-relay.c:38 ~ 00008060: d10043ff sub sp, sp, #0x10 <- 000079cc(bl)<kasan_check_write>,00007a10(bl)<kasan_check_write>,00008218(bl)<kasan_check_write>,000083b8(bl)<kasan_check_write>,000083fc(bl)<kasan_check_write> ~ 00008064: f90007e0 str x0, [sp, #8] ~ 00008068: b90007e1 str w1, [sp, #4] ~ 0000806c: 52800020 mov w0, #0x1 // #1 kasan_check_write:40.2 (kasan-checks.h) SbePe ║return true; ~ 00008070: 910043ff add sp, sp, #0x10 00008064 CFA:r31+16 ~ 00008074: d65f03c0 ret -p param pointer(const(missing at <5bca5>/<6a434>)) 0x8060 0x8078 (DW_OP_fbreg 0x8) kasan_check_write:arch/arm64/kvm/hyp/nvhe/psci-relay.c:38 -size param unsigned int (base type, DW_ATE_unsigned size:4) 0x8060 0x8078 (DW_OP_fbreg 0x4) kasan_check_write:arch/arm64/kvm/hyp/nvhe/psci-relay.c:38 **00008078 <kcsan_check_access>: + kcsan_check_access params: +ptr param pointer(const(missing at <5bca5>/<6a434>)) 0x8078 0x8090 (DW_OP_fbreg 0x18) +size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x8078 0x8090 (DW_OP_fbreg 0x10) +type param int (base type, DW_ATE_signed size:4) 0x8078 0x8090 (DW_OP_fbreg 0xc) kcsan_check_access:179.0 (kcsan-checks.h) Sbepe ║ int type) { } 00008078 CFA:r31 +ptr param pointer(const(missing at <5bca5>/<6a434>)) 0x8078 0x8090 (DW_OP_fbreg 0x18) kcsan_check_access:arch/arm64/kvm/hyp/nvhe/psci-relay.c:178 +size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x8078 0x8090 (DW_OP_fbreg 0x10) kcsan_check_access:arch/arm64/kvm/hyp/nvhe/psci-relay.c:178 +type param int (base type, DW_ATE_signed size:4) 0x8078 0x8090 (DW_OP_fbreg 0xc) kcsan_check_access:arch/arm64/kvm/hyp/nvhe/psci-relay.c:179 ~ 00008078: d10083ff sub sp, sp, #0x20 <- 000079e4(bl)<kcsan_check_access>,00008230(bl)<kcsan_check_access>,000083d0(bl)<kcsan_check_access> ~ 0000807c: f9000fe0 str x0, [sp, #24] ~ 00008080: f9000be1 str x1, [sp, #16] ~ 00008084: b9000fe2 str w2, [sp, #12] kcsan_check_access:179.23 (kcsan-checks.h) SbePe int type) { } ~ 00008088: 910083ff add sp, sp, #0x20 0000807c CFA:r31+32 ~ 0000808c: d65f03c0 ret -ptr param pointer(const(missing at <5bca5>/<6a434>)) 0x8078 0x8090 (DW_OP_fbreg 0x18) kcsan_check_access:arch/arm64/kvm/hyp/nvhe/psci-relay.c:178 -size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x8078 0x8090 (DW_OP_fbreg 0x10) kcsan_check_access:arch/arm64/kvm/hyp/nvhe/psci-relay.c:178 -type param int (base type, DW_ATE_signed size:4) 0x8078 0x8090 (DW_OP_fbreg 0xc) kcsan_check_access:arch/arm64/kvm/hyp/nvhe/psci-relay.c:179 **00008090 <psci_forward>: + psci_forward params: +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8090 0x80c4 (DW_OP_breg31 0x8) psci_forward:73.0 (psci-relay.c) Sbepe ║{ +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8090 0x80c4 (DW_OP_breg31 0x8) psci_forward:arch/arm64/kvm/hyp/nvhe/psci-relay.c:72 ~ 00008090: d10083ff sub sp, sp, #0x20 <- 00007cd0(bl)<psci_forward>,00007f1c(bl)<psci_forward>,00008014(bl)<psci_forward>,00008b80(bl)<psci_forward> ~ 00008094: a9017bfd stp x29, x30, [sp, #16] 00008090 CFA:r31 r29:u r30:u ~ 00008098: 910043fd add x29, sp, #0x10 ~ 0000809c: f90007e0 str x0, [sp, #8] psci_forward:74.19 (psci-relay.c) SbePe return psci_call(║cpu_reg(host_ctxt, 0), cpu_reg(host_ctxt, 1), ~ 000080a0: f94007e8 ldr x8, [sp, #8] ~ 000080a4: f9400100 ldr x0, [x8] psci_forward:74.42 (psci-relay.c) sbepe return psci_call(cpu_reg(host_ctxt, 0), ║cpu_reg(host_ctxt, 1), ~ 000080a8: f9400501 ldr x1, [x8, #8] psci_forward:75.5 (psci-relay.c) Sbepe ║cpu_reg(host_ctxt, 2), cpu_reg(host_ctxt, 3)); ~ 000080ac: f9400902 ldr x2, [x8, #16] psci_forward:75.28 (psci-relay.c) sbepe cpu_reg(host_ctxt, 2), ║cpu_reg(host_ctxt, 3)); ~ 000080b0: f9400d03 ldr x3, [x8, #24] psci_forward:74.9 (psci-relay.c) Sbepe return ║psci_call(cpu_reg(host_ctxt, 0), cpu_reg(host_ctxt, 1), ~ 000080b4: 9400012e bl 856c <psci_call> psci_forward:74.2 (psci-relay.c) sbepe ║return psci_call(cpu_reg(host_ctxt, 0), cpu_reg(host_ctxt, 1), ~ 000080b8: a9417bfd ldp x29, x30, [sp, #16] <- 000080b4(bl-succ)<return> ~ 000080bc: 910083ff add sp, sp, #0x20 0000809c CFA:r29+16 r29:c-16 r30:c-8 ~ 000080c0: d65f03c0 ret -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8090 0x80c4 (DW_OP_breg31 0x8) psci_forward:arch/arm64/kvm/hyp/nvhe/psci-relay.c:72 **000080c4 <psci_cpu_on>: + psci_cpu_on params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x80c4 0x8430 (DW_OP_fbreg -0xb0) +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x80c4 0x8430 (DW_OP_fbreg -0xb8) psci_cpu_on:114.0 (psci-relay.c) Sbepe ║{ +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x80c4 0x8430 (DW_OP_fbreg -0xb0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:113 +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x80c4 0x8430 (DW_OP_fbreg -0xb8) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:113 +mpidr var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x80c4 0x8430 (DW_OP_fbreg -0xc0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:115 +pc var long unsigned int (base type, DW_ATE_unsigned size:8) 0x80c4 0x8430 (DW_OP_breg31 0xc8) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:116 +r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x80c4 0x8430 (DW_OP_breg31 0xc0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:117 +cpu_id var unsigned int (base type, DW_ATE_unsigned size:4) 0x80c4 0x8430 (DW_OP_breg31 0xbc) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 +boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x80c4 0x8430 (DW_OP_breg31 0xb0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 +init_params var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x80c4 0x8430 (DW_OP_breg31 0xa8) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 +ret var int (base type, DW_ATE_signed size:4) 0x80c4 0x8430 (DW_OP_breg31 0xa4) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 ~ 000080c4: d106c3ff sub sp, sp, #0x1b0 <- 00007d10(bl)<psci_cpu_on>,00007f54(bl)<psci_cpu_on> ~ 000080c8: a9197bfd stp x29, x30, [sp, #400] ~ 000080cc: f900d3fc str x28, [sp, #416] 000080c4 CFA:r31 r28:u r29:u r30:u ~ 000080d0: 910643fd add x29, sp, #0x190 ~ 000080d4: f81503a0 stur x0, [x29, #-176] ~ 000080d8: f81483a1 stur x1, [x29, #-184] psci_cpu_on:115.2 (psci-relay.c) SbePe ║DECLARE_REG(u64, mpidr, host_ctxt, 1); ~ 000080dc: f85483a8 ldur x8, [x29, #-184] ~ 000080e0: f9400508 ldr x8, [x8, #8] ~ 000080e4: f81403a8 stur x8, [x29, #-192] psci_cpu_on:116.2 (psci-relay.c) Sbepe ║DECLARE_REG(unsigned long, pc, host_ctxt, 2); ~ 000080e8: f85483a8 ldur x8, [x29, #-184] ~ 000080ec: f9400908 ldr x8, [x8, #16] ~ 000080f0: f90067e8 str x8, [sp, #200] psci_cpu_on:117.2 (psci-relay.c) Sbepe ║DECLARE_REG(unsigned long, r0, host_ctxt, 3); ~ 000080f4: f85483a8 ldur x8, [x29, #-184] ~ 000080f8: f9400d08 ldr x8, [x8, #24] ~ 000080fc: f90063e8 str x8, [sp, #192] psci_cpu_on:131.23 (psci-relay.c) Sbepe cpu_id = find_cpu_id(║mpidr); ~ 00008100: f85403a0 ldur x0, [x29, #-192] psci_cpu_on:131.11 (psci-relay.c) sbepe cpu_id = ║find_cpu_id(mpidr); ~ 00008104: 94000153 bl 8650 <find_cpu_id> psci_cpu_on:131.9 (psci-relay.c) sbepe cpu_id ║= find_cpu_id(mpidr); ~ 00008108: b900bfe0 str w0, [sp, #188] <- 00008104(bl-succ)<return> psci_cpu_on:132.6 (psci-relay.c) Sbepe if (║cpu_id == INVALID_CPU_ID) ~ 0000810c: b940bfe9 ldr w9, [sp, #188] psci_cpu_on:132.6 (psci-relay.c) sbepe if (║cpu_id == INVALID_CPU_ID) ~ 00008110: 31000529 adds w9, w9, #0x1 ~ ┌───00008114: 540000a1 b.ne 8128 <psci_cpu_on+0x64> // b.any ~ │ ┌─00008118: 14000001 b 811c <psci_cpu_on+0x58> <- 00008114(b.cc-succ)<fallthrough> │ │ ~ │ └>0000811c: 12800028 mov w8, #0xfffffffe // #-2 <- 00008118(b)<psci_cpu_on+0x58> psci_cpu_on:133.3 (psci-relay.c) Sbepe ║return PSCI_RET_INVALID_PARAMS; ~ 00008120: b815c3a8 stur w8, [x29, #-164] ~ ┌────┼───00008124: 140000be b 841c <psci_cpu_on+0x358> │ │ │ │ psci_cpu_on:135.14 (psci-relay.c) Sbepe boot_args = ║per_cpu_ptr(hyp_symbol_addr(cpu_on_args), cpu_id); ~ │ └>┌─00008128: 14000001 b 812c <psci_cpu_on+0x68> <- 00008114(b.cc)<psci_cpu_on+0x64> │ │ ~ │ └>0000812c: aa1f03e8 mov x8, xzr <- 00008128(b)<psci_cpu_on+0x68> psci_cpu_on:135.14 (psci-relay.c) sbepe boot_args = ║per_cpu_ptr(hyp_symbol_addr(cpu_on_args), cpu_id); +__vpp_verify var pointer(const(no type)) 0x8130 0x8138 (DW_OP_breg31 0x98) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 ~ 00008130: f9004fe8 str x8, [sp, #152] ~ │ ┌─00008134: 14000001 b 8138 <psci_cpu_on+0x74> -__vpp_verify var pointer(const(no type)) 0x8130 0x8138 (DW_OP_breg31 0x98) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 │ │ │ │ psci_cpu_on:135.14 (psci-relay.c) sbepe boot_args = ║per_cpu_ptr(hyp_symbol_addr(cpu_on_args), cpu_id); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8138 0x8174 (DW_OP_breg31 0x88) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 +addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8138 0x8150 (DW_OP_breg31 0x80) lexblock:lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 ~ │ └>00008138: b0000088 adrp x8, 19000 <kvm_host_data> <- 00008134(b)<psci_cpu_on+0x74> ~ 0000813c: 91396108 add x8, x8, #0xe58 ~ 00008140: f90043e8 str x8, [sp, #128] ~ 00008144: f94043e8 ldr x8, [sp, #128] ~ 00008148: f9003fe8 str x8, [sp, #120] ~ 0000814c: f9403fe8 ldr x8, [sp, #120] -addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8138 0x8150 (DW_OP_breg31 0x80) lexblock:lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 psci_cpu_on:135.14 (psci-relay.c) sbepe boot_args = ║per_cpu_ptr(hyp_symbol_addr(cpu_on_args), cpu_id); ~ 00008150: f90047e8 str x8, [sp, #136] ~ 00008154: f94047e8 ldr x8, [sp, #136] ~ 00008158: b940bfe0 ldr w0, [sp, #188] ~ 0000815c: f90017e8 str x8, [sp, #40] ~ 00008160: 97fffd8a bl 7788 <__hyp_per_cpu_offset> ~ 00008164: f94017e8 ldr x8, [sp, #40] <- 00008160(bl-succ)<return> ~ 00008168: 8b000108 add x8, x8, x0 ~ 0000816c: f9003be8 str x8, [sp, #112] ~ 00008170: f9403be8 ldr x8, [sp, #112] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8138 0x8174 (DW_OP_breg31 0x88) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 psci_cpu_on:135.14 (psci-relay.c) sbepe boot_args = ║per_cpu_ptr(hyp_symbol_addr(cpu_on_args), cpu_id); +__vpp_verify var pointer(const(no type)) 0x8174 0x8178 (DW_OP_breg31 0x98) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 ~ 00008174: f9004be8 str x8, [sp, #144] -__vpp_verify var pointer(const(no type)) 0x8174 0x8178 (DW_OP_breg31 0x98) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:135 psci_cpu_on:135.14 (psci-relay.c) sbepe boot_args = ║per_cpu_ptr(hyp_symbol_addr(cpu_on_args), cpu_id); ~ 00008178: f9404be8 ldr x8, [sp, #144] psci_cpu_on:135.12 (psci-relay.c) sbepe boot_args ║= per_cpu_ptr(hyp_symbol_addr(cpu_on_args), cpu_id); ~ 0000817c: f9005be8 str x8, [sp, #176] psci_cpu_on:136.16 (psci-relay.c) Sbepe init_params = ║per_cpu_ptr(hyp_symbol_addr(kvm_init_params), cpu_id); ~ │ ┌─00008180: 14000001 b 8184 <psci_cpu_on+0xc0> │ │ ~ │ └>00008184: aa1f03e8 mov x8, xzr <- 00008180(b)<psci_cpu_on+0xc0> psci_cpu_on:136.16 (psci-relay.c) sbepe init_params = ║per_cpu_ptr(hyp_symbol_addr(kvm_init_params), cpu_id); +__vpp_verify var pointer(const(no type)) 0x8188 0x8190 (DW_OP_breg31 0x68) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 ~ 00008188: f90037e8 str x8, [sp, #104] ~ │ ┌─0000818c: 14000001 b 8190 <psci_cpu_on+0xcc> -__vpp_verify var pointer(const(no type)) 0x8188 0x8190 (DW_OP_breg31 0x68) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 │ │ │ │ psci_cpu_on:136.16 (psci-relay.c) sbepe init_params = ║per_cpu_ptr(hyp_symbol_addr(kvm_init_params), cpu_id); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8190 0x81cc (DW_OP_breg31 0x58) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 +addr var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8190 0x81a8 (DW_OP_breg31 0x50) lexblock:lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 ~ │ └>00008190: b0000088 adrp x8, 19000 <kvm_host_data> <- 0000818c(b)<psci_cpu_on+0xcc> ~ 00008194: 91386108 add x8, x8, #0xe18 ~ 00008198: f9002be8 str x8, [sp, #80] ~ 0000819c: f9402be8 ldr x8, [sp, #80] ~ 000081a0: f90027e8 str x8, [sp, #72] ~ 000081a4: f94027e8 ldr x8, [sp, #72] -addr var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8190 0x81a8 (DW_OP_breg31 0x50) lexblock:lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 psci_cpu_on:136.16 (psci-relay.c) sbepe init_params = ║per_cpu_ptr(hyp_symbol_addr(kvm_init_params), cpu_id); ~ 000081a8: f9002fe8 str x8, [sp, #88] ~ 000081ac: f9402fe8 ldr x8, [sp, #88] ~ 000081b0: b940bfe0 ldr w0, [sp, #188] ~ 000081b4: f90013e8 str x8, [sp, #32] ~ 000081b8: 97fffd74 bl 7788 <__hyp_per_cpu_offset> ~ 000081bc: f94013e8 ldr x8, [sp, #32] <- 000081b8(bl-succ)<return> ~ 000081c0: 8b000108 add x8, x8, x0 ~ 000081c4: f90023e8 str x8, [sp, #64] ~ 000081c8: f94023e8 ldr x8, [sp, #64] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8190 0x81cc (DW_OP_breg31 0x58) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 psci_cpu_on:136.16 (psci-relay.c) sbepe init_params = ║per_cpu_ptr(hyp_symbol_addr(kvm_init_params), cpu_id); +__vpp_verify var pointer(const(no type)) 0x81cc 0x81d0 (DW_OP_breg31 0x68) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 ~ 000081cc: f90033e8 str x8, [sp, #96] -__vpp_verify var pointer(const(no type)) 0x81cc 0x81d0 (DW_OP_breg31 0x68) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:136 psci_cpu_on:136.16 (psci-relay.c) sbepe init_params = ║per_cpu_ptr(hyp_symbol_addr(kvm_init_params), cpu_id); ~ 000081d0: f94033e8 ldr x8, [sp, #96] psci_cpu_on:136.14 (psci-relay.c) sbepe init_params ║= per_cpu_ptr(hyp_symbol_addr(kvm_init_params), cpu_id); ~ 000081d4: f90057e8 str x8, [sp, #168] psci_cpu_on:139.29 (psci-relay.c) Sbepe if (!try_acquire_boot_args(║boot_args)) ~ 000081d8: f9405be8 ldr x8, [sp, #176] ~ 000081dc: f81603a8 stur x8, [x29, #-160] h: 0x81e0 0x8308 try_acquire_boot_args inlined from psci_cpu_on:139 (psci-relay.c) <6aa92>: h try_acquire_boot_args:102.33 (psci-relay.c) Sbepe return atomic_cmpxchg_acquire(&║args->lock, +args param pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x81e0 0x8308 (DW_OP_fbreg -0xa0) try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~h 000081e0: f85603a8 ldur x8, [x29, #-160] ~h 000081e4: f81783a8 stur x8, [x29, #-136] ~h 000081e8: 2a1f03e9 mov w9, wzr ~h 000081ec: b81743a9 stur w9, [x29, #-140] ~h 000081f0: 52800029 mov w9, #0x1 // #1 ~h 000081f4: b81703a9 stur w9, [x29, #-144] i: 0x81f8 0x8308 atomic_cmpxchg_acquire inlined from try_acquire_boot_args:102 (psci-relay.c) <6aaaf>:<6aa92>: hi atomic_cmpxchg_acquire:664.31 (atomic-instrumented.h) Sbepe instrument_atomic_read_write(║v, sizeof(*v)); +v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x81f8 0x8308 (DW_OP_fbreg -0x88) atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +old param int (base type, DW_ATE_signed size:4) 0x81f8 0x8308 (DW_OP_fbreg -0x8c) atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +new param int (base type, DW_ATE_signed size:4) 0x81f8 0x8308 (DW_OP_fbreg -0x90) atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~hi 000081f8: f85783a8 ldur x8, [x29, #-136] ~hi 000081fc: f81883a8 stur x8, [x29, #-120] ~hi 00008200: 52800089 mov w9, #0x4 // #4 ~hi 00008204: 2a0903e8 mov w8, w9 ~hi 00008208: f81803a8 stur x8, [x29, #-128] j: 0x820c 0x8234 instrument_atomic_read_write inlined from atomic_cmpxchg_acquire:664 (atomic-instrumented.h) <6aade>:<6aaaf>:<6aa92>: hij instrument_atomic_read_write:101.20 (instrumented.h) Sbepe kasan_check_write(║v, size); +v param pointer(const(missing at <5bca5>/<6a434>)) 0x820c 0x8234 (DW_OP_fbreg -0x78) instrument_atomic_read_write(inlined):atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x820c 0x8234 (DW_OP_fbreg -0x80) instrument_atomic_read_write(inlined):atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~hij 0000820c: f85883a0 ldur x0, [x29, #-120] hij instrument_atomic_read_write:101.23 (instrumented.h) sbepe kasan_check_write(v, ║size); ~hij 00008210: b85803a1 ldur w1, [x29, #-128] ~hij 00008214: b9001fe9 str w9, [sp, #28] hij instrument_atomic_read_write:101.2 (instrumented.h) sbepe ║kasan_check_write(v, size); ~hij 00008218: 97ffff92 bl 8060 <kasan_check_write> hij instrument_atomic_read_write:102.2 (instrumented.h) Sbepe ║kcsan_check_atomic_read_write(v, size); ~hij 0000821c: f85883a8 ldur x8, [x29, #-120] <- 00008218(bl-succ)<return> ~hij 00008220: f85803a1 ldur x1, [x29, #-128] ~hij 00008224: 528000e2 mov w2, #0x7 // #7 ~hij 00008228: b9001be0 str w0, [sp, #24] ~hij 0000822c: aa0803e0 mov x0, x8 ~hij 00008230: 97ffff92 bl 8078 <kcsan_check_access> -v param pointer(const(missing at <5bca5>/<6a434>)) 0x820c 0x8234 (DW_OP_fbreg -0x78) instrument_atomic_read_write(inlined):atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x820c 0x8234 (DW_OP_fbreg -0x80) instrument_atomic_read_write(inlined):atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c hi atomic_cmpxchg_acquire:665.9 (atomic-instrumented.h) Sbepe return ║arch_atomic_cmpxchg_acquire(v, old, new); +__ret var int (base type, DW_ATE_signed size:4) 0x8234 0x8308 (DW_OP_fbreg -0x94) lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~hi 00008234: f85783a8 ldur x8, [x29, #-136] <- 00008230(bl-succ)<return> ~hi 00008238: b89743aa ldursw x10, [x29, #-140] ~hi 0000823c: b89703ab ldursw x11, [x29, #-144] ~hi 00008240: f81a83a8 stur x8, [x29, #-88] ~hi 00008244: f81a03aa stur x10, [x29, #-96] ~hi 00008248: f81983ab stur x11, [x29, #-104] ~hi 0000824c: b9401fe9 ldr w9, [sp, #28] ~hi 00008250: b81943a9 stur w9, [x29, #-108] k: 0x8254 0x82f8 __cmpxchg_acq inlined from atomic_cmpxchg_acquire:665 (atomic-instrumented.h) <6ab1c>:<lexical_block>:<6aaaf>:<6aa92>: hik __cmpxchg_acq:173.1 (cmpxchg.h) Sbepe ║__CMPXCHG_GEN(_acq) +ptr param pointer(missing at <5bca5>/<6a434>) 0x8254 0x82f8 (DW_OP_fbreg -0x58) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8254 0x82f8 (DW_OP_fbreg -0x60) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +new param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8254 0x82f8 (DW_OP_fbreg -0x68) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +size param int (base type, DW_ATE_signed size:4) 0x8254 0x82f8 (DW_OP_fbreg -0x6c) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~hik 00008254: b85943ac ldur w12, [x29, #-108] ~hik 00008258: 7100058c subs w12, w12, #0x1 ~hik 0000825c: 2a0c03e8 mov w8, w12 ~hik 00008260: f9000be8 str x8, [sp, #16] ~hik 00008264: f0000068 adrp x8, 17000 <___kvm_hyp_init+0x3c> ~hik 00008268: 913a4108 add x8, x8, #0xe90 ~hik 0000826c: f9400beb ldr x11, [sp, #16] ~hik 00008270: b8ab790a ldrsw x10, [x8, x11, lsl #2] ~hik 00008274: 8b0a0109 add x9, x8, x10 ~hik │ X00008278: d61f0120 br x9 -> 00008278<indirect0> <- 00008278(br)<indirect0> hik __cmpxchg_acq:173.1 (cmpxchg.h) sbepe ║__CMPXCHG_GEN(_acq) ~hik 0000827c: f85a83a0 ldur x0, [x29, #-88] ~hik 00008280: 385983a2 ldurb w2, [x29, #-104] ~hik 00008284: 385a03a1 ldurb w1, [x29, #-96] ~hik 00008288: 9400011b bl 86f4 <__cmpxchg_case_acq_8> ~hik 0000828c: 2a0003e3 mov w3, w0 <- 00008288(bl-succ)<return> ~hik 00008290: 92401c68 and x8, x3, #0xff ~hik 00008294: f81b03a8 stur x8, [x29, #-80] ~hik │┌───────00008298: 14000017 b 82f4 <psci_cpu_on+0x230> ~hik ││ 0000829c: f85a83a0 ldur x0, [x29, #-88] ~hik ││ 000082a0: 785983a2 ldurh w2, [x29, #-104] ~hik ││ 000082a4: 785a03a1 ldurh w1, [x29, #-96] ~hik ││ 000082a8: 94000145 bl 87bc <__cmpxchg_case_acq_16> ││ ~hik ││ 000082ac: 2a0003e3 mov w3, w0 <- 000082a8(bl-succ)<return> ~hik ││ 000082b0: 92403c68 and x8, x3, #0xffff ~hik ││ 000082b4: f81b03a8 stur x8, [x29, #-80] ~hik ││ ┌─────000082b8: 1400000f b 82f4 <psci_cpu_on+0x230> ~hik ││ │ 000082bc: f85a83a0 ldur x0, [x29, #-88] ~hik ││ │ 000082c0: b85a03a1 ldur w1, [x29, #-96] ~hik ││ │ 000082c4: b85983a2 ldur w2, [x29, #-104] ~hik ││ │ 000082c8: 9400016f bl 8884 <__cmpxchg_case_acq_32> ││ │ ~hik ││ │ 000082cc: 2a0003e8 mov w8, w0 <- 000082c8(bl-succ)<return> ~hik ││ │ 000082d0: 2a0803e9 mov w9, w8 ~hik ││ │ 000082d4: f81b03a9 stur x9, [x29, #-80] ~hik ││ │ ┌───000082d8: 14000007 b 82f4 <psci_cpu_on+0x230> ~hik ││ │ │ 000082dc: f85a83a0 ldur x0, [x29, #-88] ~hik ││ │ │ 000082e0: f85a03a1 ldur x1, [x29, #-96] ~hik ││ │ │ 000082e4: f85983a2 ldur x2, [x29, #-104] ~hik ││ │ │ 000082e8: 94000198 bl 8948 <__cmpxchg_case_acq_64> ││ │ │ ~hik ││ │ │ 000082ec: f81b03a0 stur x0, [x29, #-80] <- 000082e8(bl-succ)<return> ~hik ││ │ │ ┌─000082f0: 14000001 b 82f4 <psci_cpu_on+0x230> ││ │ │ │ hik ││ │ │ │ __cmpxchg_acq:173.1 (cmpxchg.h) sbepe ║__CMPXCHG_GEN(_acq) ~hik │└>└>└>└>000082f4: f85b03a8 ldur x8, [x29, #-80] <- 00008298(b)<psci_cpu_on+0x230>,000082b8(b)<psci_cpu_on+0x230>,000082d8(b)<psci_cpu_on+0x230>,000082f0(b)<psci_cpu_on+0x230> -ptr param pointer(missing at <5bca5>/<6a434>) 0x8254 0x82f8 (DW_OP_fbreg -0x58) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8254 0x82f8 (DW_OP_fbreg -0x60) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -new param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8254 0x82f8 (DW_OP_fbreg -0x68) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -size param int (base type, DW_ATE_signed size:4) 0x8254 0x82f8 (DW_OP_fbreg -0x6c) __cmpxchg_acq(inlined):lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c hi atomic_cmpxchg_acquire:665.9 (atomic-instrumented.h) Sbepe return ║arch_atomic_cmpxchg_acquire(v, old, new); ~hi 000082f8: b816c3a8 stur w8, [x29, #-148] ~hi 000082fc: b856c3a8 ldur w8, [x29, #-148] ~hi 00008300: b81683a8 stur w8, [x29, #-152] ~hi 00008304: b85683a8 ldur w8, [x29, #-152] -args param pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x81e0 0x8308 (DW_OP_fbreg -0xa0) try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x81f8 0x8308 (DW_OP_fbreg -0x88) atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -old param int (base type, DW_ATE_signed size:4) 0x81f8 0x8308 (DW_OP_fbreg -0x8c) atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -new param int (base type, DW_ATE_signed size:4) 0x81f8 0x8308 (DW_OP_fbreg -0x90) atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -__ret var int (base type, DW_ATE_signed size:4) 0x8234 0x8308 (DW_OP_fbreg -0x94) lexblock:atomic_cmpxchg_acquire(inlined):try_acquire_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c psci_cpu_on:139.6 (psci-relay.c) Sbepe if (║!try_acquire_boot_args(boot_args)) ~ │ ┌──00008308: 340000a8 cbz w8, 831c <psci_cpu_on+0x258> │ │ ~ │ │┌─0000830c: 14000001 b 8310 <psci_cpu_on+0x24c> <- 00008308(b.cc-succ)<fallthrough> │ ││ ~ │ │└>00008310: 12800068 mov w8, #0xfffffffc // #-4 <- 0000830c(b)<psci_cpu_on+0x24c> │ │ psci_cpu_on:140.3 (psci-relay.c) Sbepe ║return PSCI_RET_ALREADY_ON; ~ │ │ 00008314: b815c3a8 stur w8, [x29, #-164] ~ │ ┌─┼──00008318: 14000041 b 841c <psci_cpu_on+0x358> │ │ │ │ │ │ psci_cpu_on:142.18 (psci-relay.c) Sbepe boot_args->pc = ║pc; ~ │ │ └─>0000831c: f94067e8 ldr x8, [sp, #200] <- 00008308(b.cc)<psci_cpu_on+0x258> │ │ psci_cpu_on:142.2 (psci-relay.c) sbepe ║boot_args->pc = pc; ~ │ │ 00008320: f9405be9 ldr x9, [sp, #176] │ │ psci_cpu_on:142.16 (psci-relay.c) sbepe boot_args->pc ║= pc; ~ │ │ 00008324: f9000528 str x8, [x9, #8] │ │ psci_cpu_on:143.18 (psci-relay.c) Sbepe boot_args->r0 = ║r0; ~ │ │ 00008328: f94063e8 ldr x8, [sp, #192] │ │ psci_cpu_on:143.2 (psci-relay.c) sbepe ║boot_args->r0 = r0; ~ │ │ 0000832c: f9405be9 ldr x9, [sp, #176] │ │ psci_cpu_on:143.16 (psci-relay.c) sbepe boot_args->r0 ║= r0; ~ │ │ 00008330: f9000928 str x8, [x9, #16] │ │ psci_cpu_on:144.2 (psci-relay.c) Sbepe ║wmb(); ~ │ │ 00008334: d5033e9f dsb st │ │ psci_cpu_on:146.18 (psci-relay.c) Sbepe ret = psci_call(║func_id, mpidr, ~ │ │ 00008338: f85503a0 ldur x0, [x29, #-176] │ │ psci_cpu_on:146.27 (psci-relay.c) sbepe ret = psci_call(func_id, ║mpidr, ~ │ │ 0000833c: f85403a1 ldur x1, [x29, #-192] │ │ psci_cpu_on:147.4 (psci-relay.c) Sbepe ║__hyp_pa(hyp_symbol_addr(kvm_hyp_cpu_entry)), +addr var pointer(subroutine(prototyped no type(long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8340 0x8358 (DW_OP_breg31 0x38) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:147 ~ │ │ 00008340: f0000068 adrp x8, 17000 <___kvm_hyp_init+0x3c> ~ │ │ 00008344: 9102b108 add x8, x8, #0xac ~ │ │ 00008348: f9001fe8 str x8, [sp, #56] ~ │ │ 0000834c: f9401fe8 ldr x8, [sp, #56] ~ │ │ 00008350: f9001be8 str x8, [sp, #48] ~ │ │ 00008354: f9401be8 ldr x8, [sp, #48] -addr var pointer(subroutine(prototyped no type(long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8340 0x8358 (DW_OP_breg31 0x38) lexblock:psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:147 │ │ psci_cpu_on:147.4 (psci-relay.c) sbepe ║__hyp_pa(hyp_symbol_addr(kvm_hyp_cpu_entry)), ~ │ │ 00008358: d0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ │ │ 0000835c: f9439d29 ldr x9, [x9, #1848] ~ │ │ 00008360: 8b090102 add x2, x8, x9 │ │ psci_cpu_on:148.4 (psci-relay.c) Sbepe ║__hyp_pa(init_params)); ~ │ │ 00008364: f94057e8 ldr x8, [sp, #168] ~ │ │ 00008368: 8b090103 add x3, x8, x9 │ │ psci_cpu_on:146.8 (psci-relay.c) Sbepe ret = ║psci_call(func_id, mpidr, ~ │ │ 0000836c: 94000080 bl 856c <psci_call> │ │ │ │ psci_cpu_on:146.6 (psci-relay.c) sbepe ret ║= psci_call(func_id, mpidr, ~ │ │ 00008370: b900a7e0 str w0, [sp, #164] <- 0000836c(bl-succ)<return> │ │ psci_cpu_on:151.6 (psci-relay.c) Sbepe if (║ret != PSCI_RET_SUCCESS) ~ │ │ 00008374: b940a7ea ldr w10, [sp, #164] │ │ psci_cpu_on:151.6 (psci-relay.c) sbepe if (║ret != PSCI_RET_SUCCESS) ~ │ │┌───00008378: 340004ca cbz w10, 8410 <psci_cpu_on+0x34c> │ ││ ~ │ ││ ┌─0000837c: 14000001 b 8380 <psci_cpu_on+0x2bc> <- 00008378(b.cc-succ)<fallthrough> │ ││ │ │ ││ │ psci_cpu_on:152.21 (psci-relay.c) Sbepe release_boot_args(║boot_args); ~ │ ││ └>00008380: f9405be8 ldr x8, [sp, #176] <- 0000837c(b)<psci_cpu_on+0x2bc> ~ │ ││ 00008384: f81b83a8 stur x8, [x29, #-72] l: 0x8388 0x840c release_boot_args inlined from psci_cpu_on:152 (psci-relay.c) <6ab75>: l │ ││ release_boot_args:110.22 (psci-relay.c) Sbepe atomic_set_release(&║args->lock, PSCI_BOOT_ARGS_UNLOCKED); +args param pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8388 0x840c (DW_OP_fbreg -0x48) release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~l │ ││ 00008388: f85b83a8 ldur x8, [x29, #-72] ~l │ ││ 0000838c: f81c83a8 stur x8, [x29, #-56] ~l │ ││ 00008390: 2a1f03e9 mov w9, wzr ~l │ ││ 00008394: b81c43a9 stur w9, [x29, #-60] m: 0x8398 0x840c atomic_set_release inlined from release_boot_args:110 (psci-relay.c) <6ab92>:<6ab75>: lm │ ││ atomic_set_release:54.26 (atomic-instrumented.h) Sbepe instrument_atomic_write(║v, sizeof(*v)); +v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x8398 0x840c (DW_OP_fbreg -0x38) atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +i param int (base type, DW_ATE_signed size:4) 0x8398 0x840c (DW_OP_fbreg -0x3c) atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~lm │ ││ 00008398: f85c83a8 ldur x8, [x29, #-56] ~lm │ ││ 0000839c: f81d83a8 stur x8, [x29, #-40] ~lm │ ││ 000083a0: 52800089 mov w9, #0x4 // #4 ~lm │ ││ 000083a4: 2a0903e8 mov w8, w9 ~lm │ ││ 000083a8: f81d03a8 stur x8, [x29, #-48] n: 0x83ac 0x83d4 instrument_atomic_write inlined from atomic_set_release:54 (atomic-instrumented.h) <6abb6>:<6ab92>:<6ab75>: lmn │ ││ instrument_atomic_write:86.20 (instrumented.h) Sbepe kasan_check_write(║v, size); +v param pointer(const(missing at <5bca5>/<6a434>)) 0x83ac 0x83d4 (DW_OP_fbreg -0x28) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x83ac 0x83d4 (DW_OP_fbreg -0x30) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~lmn │ ││ 000083ac: f85d83a0 ldur x0, [x29, #-40] lmn │ ││ instrument_atomic_write:86.23 (instrumented.h) sbepe kasan_check_write(v, ║size); ~lmn │ ││ 000083b0: b85d03a1 ldur w1, [x29, #-48] ~lmn │ ││ 000083b4: b9000fe9 str w9, [sp, #12] lmn │ ││ instrument_atomic_write:86.2 (instrumented.h) sbepe ║kasan_check_write(v, size); ~lmn │ ││ 000083b8: 97ffff2a bl 8060 <kasan_check_write> │ ││ lmn │ ││ instrument_atomic_write:87.2 (instrumented.h) Sbepe ║kcsan_check_atomic_write(v, size); ~lmn │ ││ 000083bc: f85d83a8 ldur x8, [x29, #-40] <- 000083b8(bl-succ)<return> ~lmn │ ││ 000083c0: f85d03a1 ldur x1, [x29, #-48] ~lmn │ ││ 000083c4: 528000a2 mov w2, #0x5 // #5 ~lmn │ ││ 000083c8: b9000be0 str w0, [sp, #8] ~lmn │ ││ 000083cc: aa0803e0 mov x0, x8 ~lmn │ ││ 000083d0: 97ffff2a bl 8078 <kcsan_check_access> -v param pointer(const(missing at <5bca5>/<6a434>)) 0x83ac 0x83d4 (DW_OP_fbreg -0x28) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -size param typedef(size_t=typedef(__kernel_size_t=typedef(__kernel_ulong_t=long unsigned int (base type, DW_ATE_unsigned size:8)))) 0x83ac 0x83d4 (DW_OP_fbreg -0x30) instrument_atomic_write(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c │ ││ lm │ ││ atomic_set_release:55.26 (atomic-instrumented.h) Sbepe arch_atomic_set_release(║v, i); ~lm │ ││ 000083d4: f85c83a8 ldur x8, [x29, #-56] <- 000083d0(bl-succ)<return> lm │ ││ atomic_set_release:55.29 (atomic-instrumented.h) sbepe arch_atomic_set_release(v, ║i); ~lm │ ││ 000083d8: b85c43a9 ldur w9, [x29, #-60] ~lm │ ││ 000083dc: f81f83a8 stur x8, [x29, #-8] ~lm │ ││ 000083e0: b81f43a9 stur w9, [x29, #-12] o: 0x83e4 0x840c arch_atomic_set_release inlined from atomic_set_release:55 (atomic-instrumented.h) <6abdb>:<6ab92>:<6ab75>: lmo │ ││ arch_atomic_set_release:163.2 (atomic-arch-fallback.h) Sbepe ║smp_store_release(&(v)->counter, i); +v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x83e4 0x840c (DW_OP_fbreg -0x8) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +i param int (base type, DW_ATE_signed size:4) 0x83e4 0x840c (DW_OP_fbreg -0xc) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +__p var pointer(int (base type, DW_ATE_signed size:4)) 0x83e4 0x840c (DW_OP_fbreg -0x18) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c +__u var union noname<5bca5>/<6a46d> 0x83e4 0x840c (DW_OP_fbreg -0x20) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~lmo │ ││ 000083e4: f85f83a8 ldur x8, [x29, #-8] ~lmo │ ││ 000083e8: f81e83a8 stur x8, [x29, #-24] ~lmo │ ││ 000083ec: b85f43a9 ldur w9, [x29, #-12] ~lmo │ ││ 000083f0: b81e03a9 stur w9, [x29, #-32] ~lmo │ ││ 000083f4: f85e83a0 ldur x0, [x29, #-24] ~lmo │ ││ 000083f8: b9400fe1 ldr w1, [sp, #12] ~lmo │ ││ 000083fc: 97ffff19 bl 8060 <kasan_check_write> │ ││ ~lmo │ ││ 00008400: f85e83a8 ldur x8, [x29, #-24] <- 000083fc(bl-succ)<return> ~lmo │ ││ 00008404: b85e03a9 ldur w9, [x29, #-32] ~lmo │ ││ 00008408: 889ffd09 stlr w9, [x8] -args param pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8388 0x840c (DW_OP_fbreg -0x48) release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x8398 0x840c (DW_OP_fbreg -0x38) atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -i param int (base type, DW_ATE_signed size:4) 0x8398 0x840c (DW_OP_fbreg -0x3c) atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -v param pointer(typedef(atomic_t=struct noname<5bca5>/<5bdea>)) 0x83e4 0x840c (DW_OP_fbreg -0x8) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -i param int (base type, DW_ATE_signed size:4) 0x83e4 0x840c (DW_OP_fbreg -0xc) arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -__p var pointer(int (base type, DW_ATE_signed size:4)) 0x83e4 0x840c (DW_OP_fbreg -0x18) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c -__u var union noname<5bca5>/<6a46d> 0x83e4 0x840c (DW_OP_fbreg -0x20) lexblock:arch_atomic_set_release(inlined):atomic_set_release(inlined):release_boot_args(inlined):psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c │ ││ psci_cpu_on:152.3 (psci-relay.c) Sbepe ║release_boot_args(boot_args); ~ │ ││ ┌─0000840c: 14000001 b 8410 <psci_cpu_on+0x34c> │ ││ │ │ ││ │ psci_cpu_on:154.9 (psci-relay.c) Sbepe return ║ret; ~ │ │└>└>00008410: b940a7e8 ldr w8, [sp, #164] <- 00008378(b.cc)<psci_cpu_on+0x34c>,0000840c(b)<psci_cpu_on+0x34c> │ │ psci_cpu_on:154.2 (psci-relay.c) sbepe ║return ret; ~ │ │ 00008414: b815c3a8 stur w8, [x29, #-164] ~ │ │ ┌─00008418: 14000001 b 841c <psci_cpu_on+0x358> │ │ │ │ │ │ psci_cpu_on:155.1 (psci-relay.c) Sbepe ║} ~ └──>└─>└>0000841c: b855c3a0 ldur w0, [x29, #-164] <- 00008124(b)<psci_cpu_on+0x358>,00008318(b)<psci_cpu_on+0x358>,00008418(b)<psci_cpu_on+0x358> ~ 00008420: f940d3fc ldr x28, [sp, #416] ~ 00008424: a9597bfd ldp x29, x30, [sp, #400] ~ 00008428: 9106c3ff add sp, sp, #0x1b0 000080d4 CFA:r29+32 r28:c-16 r29:c-32 r30:c-24 ~ 0000842c: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x80c4 0x8430 (DW_OP_fbreg -0xb0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:113 -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x80c4 0x8430 (DW_OP_fbreg -0xb8) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:113 -mpidr var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x80c4 0x8430 (DW_OP_fbreg -0xc0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:115 -pc var long unsigned int (base type, DW_ATE_unsigned size:8) 0x80c4 0x8430 (DW_OP_breg31 0xc8) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:116 -r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x80c4 0x8430 (DW_OP_breg31 0xc0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:117 -cpu_id var unsigned int (base type, DW_ATE_unsigned size:4) 0x80c4 0x8430 (DW_OP_breg31 0xbc) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 -boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x80c4 0x8430 (DW_OP_breg31 0xb0) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 -init_params var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x80c4 0x8430 (DW_OP_breg31 0xa8) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 -ret var int (base type, DW_ATE_signed size:4) 0x80c4 0x8430 (DW_OP_breg31 0xa4) psci_cpu_on:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 **00008430 <psci_cpu_suspend>: + psci_cpu_suspend params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8430 0x856c (DW_OP_fbreg -0x8) +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8430 0x856c (DW_OP_fbreg -0x10) psci_cpu_suspend:158.0 (psci-relay.c) Sbepe ║{ +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8430 0x856c (DW_OP_fbreg -0x8) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:157 +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8430 0x856c (DW_OP_fbreg -0x10) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:157 +power_state var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8430 0x856c (DW_OP_fbreg -0x18) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:159 +pc var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8430 0x856c (DW_OP_fbreg -0x20) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:160 +r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8430 0x856c (DW_OP_fbreg -0x28) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:161 +boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8430 0x856c (DW_OP_fbreg -0x30) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:163 +init_params var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8430 0x856c (DW_OP_fbreg -0x38) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:164 ~ 00008430: d10343ff sub sp, sp, #0xd0 <- 00007d58(bl)<psci_cpu_suspend>,00007f38(bl)<psci_cpu_suspend> ~ 00008434: a90c7bfd stp x29, x30, [sp, #192] 00008430 CFA:r31 r29:u r30:u ~ 00008438: 910303fd add x29, sp, #0xc0 ~ 0000843c: f81f83a0 stur x0, [x29, #-8] ~ 00008440: f81f03a1 stur x1, [x29, #-16] psci_cpu_suspend:159.2 (psci-relay.c) SbePe ║DECLARE_REG(u64, power_state, host_ctxt, 1); ~ 00008444: f85f03a8 ldur x8, [x29, #-16] ~ 00008448: f9400508 ldr x8, [x8, #8] ~ 0000844c: f81e83a8 stur x8, [x29, #-24] psci_cpu_suspend:160.2 (psci-relay.c) Sbepe ║DECLARE_REG(unsigned long, pc, host_ctxt, 2); ~ 00008450: f85f03a8 ldur x8, [x29, #-16] ~ 00008454: f9400908 ldr x8, [x8, #16] ~ 00008458: f81e03a8 stur x8, [x29, #-32] psci_cpu_suspend:161.2 (psci-relay.c) Sbepe ║DECLARE_REG(unsigned long, r0, host_ctxt, 3); ~ 0000845c: f85f03a8 ldur x8, [x29, #-16] ~ 00008460: f9400d08 ldr x8, [x8, #24] ~ 00008464: f81d83a8 stur x8, [x29, #-40] psci_cpu_suspend:166.14 (psci-relay.c) Sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ ┌─00008468: 14000001 b 846c <psci_cpu_suspend+0x3c> ~ └>0000846c: aa1f03e8 mov x8, xzr <- 00008468(b)<psci_cpu_suspend+0x3c> psci_cpu_suspend:166.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__vpp_verify var pointer(const(no type)) 0x8470 0x8478 (DW_OP_fbreg -0x40) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 ~ 00008470: f81c03a8 stur x8, [x29, #-64] ~ ┌─00008474: 14000001 b 8478 <psci_cpu_suspend+0x48> -__vpp_verify var pointer(const(no type)) 0x8470 0x8478 (DW_OP_fbreg -0x40) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 psci_cpu_suspend:166.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8478 0x84b0 (DW_OP_fbreg -0x50) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 +addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8478 0x8490 (DW_OP_fbreg -0x58) lexblock:lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 ~ └>00008478: b0000088 adrp x8, 19000 <kvm_host_data> <- 00008474(b)<psci_cpu_suspend+0x48> ~ 0000847c: 9139c108 add x8, x8, #0xe70 ~ 00008480: f81a83a8 stur x8, [x29, #-88] ~ 00008484: f85a83a8 ldur x8, [x29, #-88] ~ 00008488: f90033e8 str x8, [sp, #96] ~ 0000848c: f94033e8 ldr x8, [sp, #96] -addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8478 0x8490 (DW_OP_fbreg -0x58) lexblock:lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 psci_cpu_suspend:166.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ 00008490: f81b03a8 stur x8, [x29, #-80] ~ 00008494: f85b03a8 ldur x8, [x29, #-80] ~ 00008498: f9000be8 str x8, [sp, #16] ~ 0000849c: 97fffd64 bl 7a2c <__hyp_my_cpu_offset> ~ 000084a0: f9400be8 ldr x8, [sp, #16] <- 0000849c(bl-succ)<return> ~ 000084a4: 8b000108 add x8, x8, x0 ~ 000084a8: f9002fe8 str x8, [sp, #88] ~ 000084ac: f9402fe8 ldr x8, [sp, #88] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8478 0x84b0 (DW_OP_fbreg -0x50) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 psci_cpu_suspend:166.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__vpp_verify var pointer(const(no type)) 0x84b0 0x84b4 (DW_OP_fbreg -0x40) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 ~ 000084b0: f81b83a8 stur x8, [x29, #-72] -__vpp_verify var pointer(const(no type)) 0x84b0 0x84b4 (DW_OP_fbreg -0x40) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:166 psci_cpu_suspend:166.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ 000084b4: f85b83a8 ldur x8, [x29, #-72] psci_cpu_suspend:166.12 (psci-relay.c) sbepe boot_args ║= this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ 000084b8: f81d03a8 stur x8, [x29, #-48] psci_cpu_suspend:167.16 (psci-relay.c) Sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ ┌─000084bc: 14000001 b 84c0 <psci_cpu_suspend+0x90> ~ └>000084c0: aa1f03e8 mov x8, xzr <- 000084bc(b)<psci_cpu_suspend+0x90> psci_cpu_suspend:167.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); +__vpp_verify var pointer(const(no type)) 0x84c4 0x84cc (DW_OP_breg31 0x50) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 ~ 000084c4: f9002be8 str x8, [sp, #80] ~ ┌─000084c8: 14000001 b 84cc <psci_cpu_suspend+0x9c> -__vpp_verify var pointer(const(no type)) 0x84c4 0x84cc (DW_OP_breg31 0x50) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 psci_cpu_suspend:167.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x84cc 0x8504 (DW_OP_breg31 0x40) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 +addr var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x84cc 0x84e4 (DW_OP_breg31 0x38) lexblock:lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 ~ └>000084cc: b0000088 adrp x8, 19000 <kvm_host_data> <- 000084c8(b)<psci_cpu_suspend+0x9c> ~ 000084d0: 91386108 add x8, x8, #0xe18 ~ 000084d4: f9001fe8 str x8, [sp, #56] ~ 000084d8: f9401fe8 ldr x8, [sp, #56] ~ 000084dc: f9001be8 str x8, [sp, #48] ~ 000084e0: f9401be8 ldr x8, [sp, #48] -addr var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x84cc 0x84e4 (DW_OP_breg31 0x38) lexblock:lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 psci_cpu_suspend:167.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ 000084e4: f90023e8 str x8, [sp, #64] ~ 000084e8: f94023e8 ldr x8, [sp, #64] ~ 000084ec: f90007e8 str x8, [sp, #8] ~ 000084f0: 97fffd4f bl 7a2c <__hyp_my_cpu_offset> ~ 000084f4: f94007e8 ldr x8, [sp, #8] <- 000084f0(bl-succ)<return> ~ 000084f8: 8b000108 add x8, x8, x0 ~ 000084fc: f90017e8 str x8, [sp, #40] ~ 00008500: f94017e8 ldr x8, [sp, #40] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x84cc 0x8504 (DW_OP_breg31 0x40) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 psci_cpu_suspend:167.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); +__vpp_verify var pointer(const(no type)) 0x8504 0x8508 (DW_OP_breg31 0x50) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 ~ 00008504: f90027e8 str x8, [sp, #72] -__vpp_verify var pointer(const(no type)) 0x8504 0x8508 (DW_OP_breg31 0x50) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:167 psci_cpu_suspend:167.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ 00008508: f94027e8 ldr x8, [sp, #72] psci_cpu_suspend:167.14 (psci-relay.c) sbepe init_params ║= this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ 0000850c: f81c83a8 stur x8, [x29, #-56] psci_cpu_suspend:173.18 (psci-relay.c) Sbepe boot_args->pc = ║pc; ~ 00008510: f85e03a8 ldur x8, [x29, #-32] psci_cpu_suspend:173.2 (psci-relay.c) sbepe ║boot_args->pc = pc; ~ 00008514: f85d03a9 ldur x9, [x29, #-48] psci_cpu_suspend:173.16 (psci-relay.c) sbepe boot_args->pc ║= pc; ~ 00008518: f9000528 str x8, [x9, #8] psci_cpu_suspend:174.18 (psci-relay.c) Sbepe boot_args->r0 = ║r0; ~ 0000851c: f85d83a8 ldur x8, [x29, #-40] psci_cpu_suspend:174.2 (psci-relay.c) sbepe ║boot_args->r0 = r0; ~ 00008520: f85d03a9 ldur x9, [x29, #-48] psci_cpu_suspend:174.16 (psci-relay.c) sbepe boot_args->r0 ║= r0; ~ 00008524: f9000928 str x8, [x9, #16] psci_cpu_suspend:180.19 (psci-relay.c) Sbepe return psci_call(║func_id, power_state, ~ 00008528: f85f83a0 ldur x0, [x29, #-8] psci_cpu_suspend:180.28 (psci-relay.c) sbepe return psci_call(func_id, ║power_state, ~ 0000852c: f85e83a1 ldur x1, [x29, #-24] psci_cpu_suspend:181.5 (psci-relay.c) Sbepe ║__hyp_pa(hyp_symbol_addr(kvm_hyp_cpu_resume)), +addr var pointer(subroutine(prototyped no type(long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8530 0x8548 (DW_OP_breg31 0x20) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:181 ~ 00008530: f0000068 adrp x8, 17000 <___kvm_hyp_init+0x3c> ~ 00008534: 9102d108 add x8, x8, #0xb4 ~ 00008538: f90013e8 str x8, [sp, #32] ~ 0000853c: f94013e8 ldr x8, [sp, #32] ~ 00008540: f9000fe8 str x8, [sp, #24] ~ 00008544: f9400fe8 ldr x8, [sp, #24] -addr var pointer(subroutine(prototyped no type(long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8530 0x8548 (DW_OP_breg31 0x20) lexblock:psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:181 psci_cpu_suspend:181.5 (psci-relay.c) sbepe ║__hyp_pa(hyp_symbol_addr(kvm_hyp_cpu_resume)), ~ 00008548: d0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ 0000854c: f9439d29 ldr x9, [x9, #1848] ~ 00008550: 8b090102 add x2, x8, x9 psci_cpu_suspend:182.5 (psci-relay.c) Sbepe ║__hyp_pa(init_params)); ~ 00008554: f85c83a8 ldur x8, [x29, #-56] ~ 00008558: 8b090103 add x3, x8, x9 psci_cpu_suspend:180.9 (psci-relay.c) Sbepe return ║psci_call(func_id, power_state, ~ 0000855c: 94000004 bl 856c <psci_call> psci_cpu_suspend:180.2 (psci-relay.c) sbepe ║return psci_call(func_id, power_state, ~ 00008560: a94c7bfd ldp x29, x30, [sp, #192] <- 0000855c(bl-succ)<return> ~ 00008564: 910343ff add sp, sp, #0xd0 0000843c CFA:r29+16 r29:c-16 r30:c-8 ~ 00008568: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8430 0x856c (DW_OP_fbreg -0x8) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:157 -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8430 0x856c (DW_OP_fbreg -0x10) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:157 -power_state var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8430 0x856c (DW_OP_fbreg -0x18) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:159 -pc var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8430 0x856c (DW_OP_fbreg -0x20) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:160 -r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8430 0x856c (DW_OP_fbreg -0x28) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:161 -boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8430 0x856c (DW_OP_fbreg -0x30) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:163 -init_params var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8430 0x856c (DW_OP_fbreg -0x38) psci_cpu_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:164 **0000856c <psci_call>: + psci_call params: +fn param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xb8) +arg0 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xb0) +arg1 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xa8) +arg2 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xa0) psci_call:65.0 (psci-relay.c) Sbepe ║{ 0000856c CFA:r31 +fn param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xb8) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:63 +arg0 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xb0) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:63 +arg1 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xa8) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:64 +arg2 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xa0) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:64 +res var struct arm_smccc_res<5bca5>/<6b5c2> 0x856c 0x8650 (DW_OP_fbreg 0x80) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:66 ~ 0000856c: d10303ff sub sp, sp, #0xc0 <- 000080b4(bl)<psci_call>,0000836c(bl)<psci_call>,0000855c(bl)<psci_call>,00008cac(bl)<psci_call> ~ 00008570: f9005fe0 str x0, [sp, #184] ~ 00008574: f9005be1 str x1, [sp, #176] ~ 00008578: f90057e2 str x2, [sp, #168] ~ 0000857c: f90053e3 str x3, [sp, #160] psci_call:68.2 (psci-relay.c) SbePe ║arm_smccc_1_1_smc(fn, arg0, arg1, arg2, &res); ~ ┌─00008580: 14000001 b 8584 <psci_call+0x18> psci_call:68.2 (psci-relay.c) sbepe ║arm_smccc_1_1_smc(fn, arg0, arg1, arg2, &res); +r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x78) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +r1 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x70) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +r2 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x68) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +r3 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x60) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +__a1 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x58) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +__a2 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x50) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +__a3 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x48) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +___res var pointer(struct arm_smccc_res<5bca5>/<6b5c2>) 0x8584 0x8644 (DW_OP_fbreg 0x40) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +arg0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x38) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +arg1 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x30) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +arg2 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x28) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 +arg3 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x20) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 ~ └>00008584: f9405be8 ldr x8, [sp, #176] <- 00008580(b)<psci_call+0x18> ~ 00008588: f9002fe8 str x8, [sp, #88] ~ 0000858c: f94057e8 ldr x8, [sp, #168] ~ 00008590: f9002be8 str x8, [sp, #80] ~ 00008594: f94053e8 ldr x8, [sp, #160] ~ 00008598: f90027e8 str x8, [sp, #72] ~ 0000859c: 910203e8 add x8, sp, #0x80 ~ 000085a0: f90023e8 str x8, [sp, #64] ~ 000085a4: b940bbe9 ldr w9, [sp, #184] ~ 000085a8: 2a0903e8 mov w8, w9 ~ 000085ac: f9001fe8 str x8, [sp, #56] ~ 000085b0: f9402fe8 ldr x8, [sp, #88] ~ 000085b4: f9001be8 str x8, [sp, #48] ~ 000085b8: f9402be8 ldr x8, [sp, #80] ~ 000085bc: f90017e8 str x8, [sp, #40] ~ 000085c0: f94027e8 ldr x8, [sp, #72] ~ 000085c4: f90013e8 str x8, [sp, #32] ~ 000085c8: f9401fe0 ldr x0, [sp, #56] ~ 000085cc: f9401be1 ldr x1, [sp, #48] ~ 000085d0: f94017e2 ldr x2, [sp, #40] ~ 000085d4: f94013e3 ldr x3, [sp, #32] ~ 000085d8: d4000003 smc #0x0 ~ 000085dc: f9003fe0 str x0, [sp, #120] <- 000085d8(smc-hvc-succ)<C_smc_hvc successor> ~ 000085e0: f9003be1 str x1, [sp, #112] ~ 000085e4: f90037e2 str x2, [sp, #104] ~ 000085e8: f90033e3 str x3, [sp, #96] psci_call:68.2 (psci-relay.c) sbepe ║arm_smccc_1_1_smc(fn, arg0, arg1, arg2, &res); ~ 000085ec: f94023e8 ldr x8, [sp, #64] psci_call:68.2 (psci-relay.c) sbepe ║arm_smccc_1_1_smc(fn, arg0, arg1, arg2, &res); ~ ┌─────000085f0: b4000288 cbz x8, 8640 <psci_call+0xd4> ~ │ ┌─000085f4: 14000001 b 85f8 <psci_call+0x8c> <- 000085f0(b.cc-succ)<fallthrough> │ │ │ │ psci_call:68.2 (psci-relay.c) sbepe ║arm_smccc_1_1_smc(fn, arg0, arg1, arg2, &res); ~ │ └>000085f8: f94023e8 ldr x8, [sp, #64] <- 000085f4(b)<psci_call+0x8c> ~ 000085fc: f9403fe9 ldr x9, [sp, #120] ~ 00008600: f90003e9 str x9, [sp] ~ 00008604: f9403be9 ldr x9, [sp, #112] ~ 00008608: f90007e9 str x9, [sp, #8] ~ 0000860c: f94037e9 ldr x9, [sp, #104] ~ 00008610: f9000be9 str x9, [sp, #16] ~ 00008614: f94033e9 ldr x9, [sp, #96] ~ 00008618: f9000fe9 str x9, [sp, #24] ~ 0000861c: f94003e9 ldr x9, [sp] ~ 00008620: f94007ea ldr x10, [sp, #8] ~ 00008624: f9400beb ldr x11, [sp, #16] ~ 00008628: f9400fec ldr x12, [sp, #24] ~ 0000862c: f9000d0c str x12, [x8, #24] ~ 00008630: f900090b str x11, [x8, #16] ~ 00008634: f900050a str x10, [x8, #8] ~ 00008638: f9000109 str x9, [x8] ~ │ ┌─0000863c: 14000001 b 8640 <psci_call+0xd4> │ │ │ │ psci_call:68.2 (psci-relay.c) sbepe ║arm_smccc_1_1_smc(fn, arg0, arg1, arg2, &res); ~ └>┌─└>00008640: 14000001 b 8644 <psci_call+0xd8> <- 000085f0(b.cc)<psci_call+0xd4>,0000863c(b)<psci_call+0xd4> -r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x78) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -r1 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x70) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -r2 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x68) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -r3 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x60) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -__a1 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x58) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -__a2 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x50) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -__a3 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x48) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -___res var pointer(struct arm_smccc_res<5bca5>/<6b5c2>) 0x8584 0x8644 (DW_OP_fbreg 0x40) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -arg0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x38) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -arg1 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x30) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -arg2 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x28) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 -arg3 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8584 0x8644 (DW_OP_fbreg 0x20) lexblock:psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:68 psci_call:69.13 (psci-relay.c) Sbepe return res.║a0; ~ └──>00008644: f94043e0 ldr x0, [sp, #128] <- 00008640(b)<psci_call+0xd8> psci_call:69.2 (psci-relay.c) sbepe ║return res.a0; ~ 00008648: 910303ff add sp, sp, #0xc0 00008570 CFA:r31+192 ~ 0000864c: d65f03c0 ret -fn param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xb8) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:63 -arg0 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xb0) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:63 -arg1 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xa8) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:64 -arg2 param long unsigned int (base type, DW_ATE_unsigned size:8) 0x856c 0x8650 (DW_OP_fbreg 0xa0) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:64 -res var struct arm_smccc_res<5bca5>/<6b5c2> 0x856c 0x8650 (DW_OP_fbreg 0x80) psci_call:arch/arm64/kvm/hyp/nvhe/psci-relay.c:66 **00008650 <find_cpu_id>: + find_cpu_id params: +mpidr param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8650 0x86f4 (DW_OP_breg31 0x10) find_cpu_id:85.0 (psci-relay.c) Sbepe ║{ +mpidr param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8650 0x86f4 (DW_OP_breg31 0x10) find_cpu_id:arch/arm64/kvm/hyp/nvhe/psci-relay.c:84 +i var unsigned int (base type, DW_ATE_unsigned size:4) 0x8650 0x86f4 (DW_OP_breg31 0xc) find_cpu_id:arch/arm64/kvm/hyp/nvhe/psci-relay.c:86 ~ 00008650: d100c3ff sub sp, sp, #0x30 <- 00008104(bl)<find_cpu_id> ~ 00008654: a9027bfd stp x29, x30, [sp, #32] 00008650 CFA:r31 r29:u r30:u ~ 00008658: 910083fd add x29, sp, #0x20 ~ 0000865c: f9000be0 str x0, [sp, #16] find_cpu_id:89.6 (psci-relay.c) SbePe if (║mpidr & ~MPIDR_HWID_BITMASK) ~ 00008660: f9400be8 ldr x8, [sp, #16] ~ 00008664: b2585fe9 mov x9, #0xffffff0000000000 // #-1099511627776 ~ 00008668: f2bfe009 movk x9, #0xff00, lsl #16 find_cpu_id:89.12 (psci-relay.c) sbepe if (mpidr ║& ~MPIDR_HWID_BITMASK) ~ 0000866c: 8a090108 and x8, x8, x9 find_cpu_id:89.6 (psci-relay.c) sbepe if (║mpidr & ~MPIDR_HWID_BITMASK) ~ ┌──00008670: b40000a8 cbz x8, 8684 <find_cpu_id+0x34> ~ │┌─00008674: 14000001 b 8678 <find_cpu_id+0x28> <- 00008670(b.cc-succ)<fallthrough> ││ ~ │└>00008678: 12800008 mov w8, #0xffffffff // #-1 <- 00008674(b)<find_cpu_id+0x28> find_cpu_id:90.3 (psci-relay.c) Sbepe ║return INVALID_CPU_ID; ~ 0000867c: b81fc3a8 stur w8, [x29, #-4] ~ ┌────┼──00008680: 14000019 b 86e4 <find_cpu_id+0x94> │ │ ~ │ └─>00008684: 2a1f03e8 mov w8, wzr <- 00008670(b.cc)<find_cpu_id+0x34> find_cpu_id:92.9 (psci-relay.c) Sbepe for (i ║= 0; i < NR_CPUS; i++) { ~ 00008688: b9000fe8 str w8, [sp, #12] find_cpu_id:92.7 (psci-relay.c) sbepe for (║i = 0; i < NR_CPUS; i++) { ~ │ ┌─0000868c: 14000001 b 8690 <find_cpu_id+0x40> │ │ │ │ find_cpu_id:92.14 (psci-relay.c) sbepe for (i = 0; ║i < NR_CPUS; i++) { ~ │╔═══>└>00008690: b9400fe8 ldr w8, [sp, #12] <- 0000868c(b)<find_cpu_id+0x40>,v000086d4(b)<find_cpu_id+0x40> │║ find_cpu_id:92.2 (psci-relay.c) sbepe ║for (i = 0; i < NR_CPUS; i++) { ~ │║ 00008694: 7103fd08 subs w8, w8, #0xff ~ │║┌─────00008698: 54000208 b.hi 86d8 <find_cpu_id+0x88> // b.pmore │║│ ~ │║│ ┌─0000869c: 14000001 b 86a0 <find_cpu_id+0x50> <- 00008698(b.cc-succ)<fallthrough> │║│ │ │║│ │ find_cpu_id:93.23 (psci-relay.c) Sbepe if (cpu_logical_map(║i) == mpidr) ~ │║│ └>000086a0: b9400fe0 ldr w0, [sp, #12] <- 0000869c(b)<find_cpu_id+0x50> │║│ find_cpu_id:93.7 (psci-relay.c) sbepe if (║cpu_logical_map(i) == mpidr) ~ │║│ 000086a4: 97fffc28 bl 7744 <cpu_logical_map> │║│ │║│ find_cpu_id:93.29 (psci-relay.c) sbepe if (cpu_logical_map(i) == ║mpidr) ~ │║│ 000086a8: f9400be8 ldr x8, [sp, #16] <- 000086a4(bl-succ)<return> │║│ find_cpu_id:93.7 (psci-relay.c) sbepe if (║cpu_logical_map(i) == mpidr) ~ │║│ 000086ac: eb080008 subs x8, x0, x8 ~ │║│ ┌───000086b0: 540000a1 b.ne 86c4 <find_cpu_id+0x74> // b.any │║│ │ ~ │║│ │ ┌─000086b4: 14000001 b 86b8 <find_cpu_id+0x68> <- 000086b0(b.cc-succ)<fallthrough> │║│ │ │ │║│ │ │ find_cpu_id:94.11 (psci-relay.c) Sbepe return i; ~ │║│ │ └>000086b8: b9400fe8 ldr w8, [sp, #12] <- 000086b4(b)<find_cpu_id+0x68> │║│ │ find_cpu_id:94.4 (psci-relay.c) sbepe ║return i; ~ │║│ │ 000086bc: b81fc3a8 stur w8, [x29, #-4] ~ │║│┌┼───000086c0: 14000009 b 86e4 <find_cpu_id+0x94> │║│││ │║│││ find_cpu_id:95.2 (psci-relay.c) Sbepe } ~ │║││└>┌─000086c4: 14000001 b 86c8 <find_cpu_id+0x78> <- 000086b0(b.cc)<find_cpu_id+0x74> │║││ │ │║││ │ find_cpu_id:92.28 (psci-relay.c) Sbepe for (i = 0; i < NR_CPUS; i║++) { ~ │║││ └>000086c8: b9400fe8 ldr w8, [sp, #12] <- 000086c4(b)<find_cpu_id+0x78> ~ │║││ 000086cc: 11000508 add w8, w8, #0x1 ~ │║││ 000086d0: b9000fe8 str w8, [sp, #12] │║││ find_cpu_id:92.2 (psci-relay.c) sbepe ║for (i = 0; i < NR_CPUS; i++) { ~ │╚╪╪════000086d4: 17ffffef b 8690 <find_cpu_id+0x40> │ ││ ~ │ └┼───>000086d8: 12800008 mov w8, #0xffffffff // #-1 <- 00008698(b.cc)<find_cpu_id+0x88> │ │ find_cpu_id:97.2 (psci-relay.c) Sbepe ║return INVALID_CPU_ID; ~ │ │ 000086dc: b81fc3a8 stur w8, [x29, #-4] ~ │ │ ┌─000086e0: 14000001 b 86e4 <find_cpu_id+0x94> │ │ │ │ │ │ find_cpu_id:98.1 (psci-relay.c) Sbepe ║} ~ └─>└─>└>000086e4: b85fc3a0 ldur w0, [x29, #-4] <- 00008680(b)<find_cpu_id+0x94>,000086c0(b)<find_cpu_id+0x94>,000086e0(b)<find_cpu_id+0x94> ~ 000086e8: a9427bfd ldp x29, x30, [sp, #32] ~ 000086ec: 9100c3ff add sp, sp, #0x30 0000865c CFA:r29+16 r29:c-16 r30:c-8 ~ 000086f0: d65f03c0 ret -mpidr param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8650 0x86f4 (DW_OP_breg31 0x10) find_cpu_id:arch/arm64/kvm/hyp/nvhe/psci-relay.c:84 -i var unsigned int (base type, DW_ATE_unsigned size:4) 0x8650 0x86f4 (DW_OP_breg31 0xc) find_cpu_id:arch/arm64/kvm/hyp/nvhe/psci-relay.c:86 **000086f4 <__cmpxchg_case_acq_8>: + __cmpxchg_case_acq_8 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x86f4 0x87bc (DW_OP_breg31 0x10) +old param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x86f4 0x87bc (DW_OP_breg31 0xc) +new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x86f4 0x87bc (DW_OP_breg31 0x8) __cmpxchg_case_acq_8:119.0 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 8) +ptr param pointer(missing at <5bca5>/<6a434>) 0x86f4 0x87bc (DW_OP_breg31 0x10) __cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 +old param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x86f4 0x87bc (DW_OP_breg31 0xc) __cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 +new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x86f4 0x87bc (DW_OP_breg31 0x8) __cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 ~ 000086f4: d10143ff sub sp, sp, #0x50 <- 00008288(bl)<__cmpxchg_case_acq_8> ~ 000086f8: a9047bfd stp x29, x30, [sp, #64] 000086f4 CFA:r31 r29:u r30:u ~ 000086fc: 910103fd add x29, sp, #0x40 ~ 00008700: f9000be0 str x0, [sp, #16] ~ 00008704: 390033e1 strb w1, [sp, #12] ~ 00008708: 390023e2 strb w2, [sp, #8] __cmpxchg_case_acq_8:119.1 (cmpxchg.h) SbePe ║__CMPXCHG_CASE(acq_, 8) ~ 0000870c: 940000bd bl 8a00 <system_uses_lse_atomics> ~ ┌──00008710: 360003a0 tbz w0, #0, 8784 <__cmpxchg_case_acq_8+0x90> <- 0000870c(bl-succ)<return> ~ │┌─00008714: 14000001 b 8718 <__cmpxchg_case_acq_8+0x24> <- 00008710(b.cc-succ)<fallthrough> ││ ~ │└>00008718: f9400be8 ldr x8, [sp, #16] <- 00008714(b)<__cmpxchg_case_acq_8+0x24> ~ 0000871c: 394033e9 ldrb w9, [sp, #12] ~ 00008720: 394023ea ldrb w10, [sp, #8] ~ 00008724: f81f83a8 stur x8, [x29, #-8] ~ 00008728: 381f43a9 sturb w9, [x29, #-12] ~ 0000872c: 381f03aa sturb w10, [x29, #-16] p: 0x8730 0x8780 __lse__cmpxchg_case_acq_8 inlined from __cmpxchg_case_acq_8:119 (cmpxchg.h) <6af53>: p __lse__cmpxchg_case_acq_8:368.1 (atomic_lse.h) Sbepe ║__CMPXCHG_CASE(w, b, acq_, 8, a, "memory") +ptr param pointer(missing at <5bca5>/<6a434>) 0x8730 0x8780 (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c +old param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_fbreg -0xc) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c +new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8730 0x8780 (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x1 var typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_fbreg -0x1c) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x2 var typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_breg31 0x20) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8730 0x8780 (DW_OP_breg31 0x18) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~p 00008730: f85f83a8 ldur x8, [x29, #-8] ~p 00008734: f81e83a8 stur x8, [x29, #-24] ~p 00008738: 385f43a9 ldurb w9, [x29, #-12] ~p 0000873c: 381e43a9 sturb w9, [x29, #-28] ~p 00008740: 385f03a9 ldurb w9, [x29, #-16] ~p 00008744: 390083e9 strb w9, [sp, #32] ~p 00008748: f85e83a8 ldur x8, [x29, #-24] ~p 0000874c: f85f83ab ldur x11, [x29, #-8] ~p 00008750: 385e43a9 ldurb w9, [x29, #-28] ~p 00008754: 2a0903e1 mov w1, w9 ~p 00008758: 394083e9 ldrb w9, [sp, #32] ~p 0000875c: 2a0903e2 mov w2, w9 ~p 00008760: aa0803e0 mov x0, x8 ~p 00008764: 2a0103e8 mov w8, w1 ~p 00008768: 08e87d62 casab w8, w2, [x11] ~p 0000876c: 2a0803e0 mov w0, w8 ~p 00008770: f81e83a0 stur x0, [x29, #-24] ~p 00008774: f9000fe8 str x8, [sp, #24] ~p 00008778: 385e83a9 ldurb w9, [x29, #-24] ~p 0000877c: b90003e9 str w9, [sp] -ptr param pointer(missing at <5bca5>/<6a434>) 0x8730 0x8780 (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c -old param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_fbreg -0xc) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c -new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8730 0x8780 (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x1 var typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_fbreg -0x1c) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x2 var typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8730 0x8780 (DW_OP_breg31 0x20) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8730 0x8780 (DW_OP_breg31 0x18) __lse__cmpxchg_case_acq_8(inlined):__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c __cmpxchg_case_acq_8:119.1 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 8) ~ ┌┼──00008780: 14000009 b 87a4 <__cmpxchg_case_acq_8+0xb0> ││ ~ │└─>00008784: f9400be0 ldr x0, [sp, #16] <- 00008710(b.cc)<__cmpxchg_case_acq_8+0x90> ~ 00008788: 394033e8 ldrb w8, [sp, #12] ~ 0000878c: 2a0803e1 mov w1, w8 ~ 00008790: 394023e2 ldrb w2, [sp, #8] ~ 00008794: 940000bc bl 8a84 <__ll_sc__cmpxchg_case_acq_8> ~ 00008798: 12001c08 and w8, w0, #0xff <- 00008794(bl-succ)<return> ~ 0000879c: b90003e8 str w8, [sp] ~ │ ┌─000087a0: 14000001 b 87a4 <__cmpxchg_case_acq_8+0xb0> │ │ ~ └>└>000087a4: b94003e8 ldr w8, [sp] <- 00008780(b)<__cmpxchg_case_acq_8+0xb0>,000087a0(b)<__cmpxchg_case_acq_8+0xb0> __cmpxchg_case_acq_8:119.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 8) ~ 000087a8: b90007e8 str w8, [sp, #4] __cmpxchg_case_acq_8:119.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 8) ~ 000087ac: b94007e0 ldr w0, [sp, #4] __cmpxchg_case_acq_8:119.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 8) ~ 000087b0: a9447bfd ldp x29, x30, [sp, #64] ~ 000087b4: 910143ff add sp, sp, #0x50 00008700 CFA:r29+16 r29:c-16 r30:c-8 ~ 000087b8: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x86f4 0x87bc (DW_OP_breg31 0x10) __cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 -old param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x86f4 0x87bc (DW_OP_breg31 0xc) __cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 -new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x86f4 0x87bc (DW_OP_breg31 0x8) __cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:119 **000087bc <__cmpxchg_case_acq_16>: + __cmpxchg_case_acq_16 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x87bc 0x8884 (DW_OP_breg31 0x10) +old param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87bc 0x8884 (DW_OP_breg31 0xc) +new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87bc 0x8884 (DW_OP_breg31 0x8) __cmpxchg_case_acq_16:120.0 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 16) +ptr param pointer(missing at <5bca5>/<6a434>) 0x87bc 0x8884 (DW_OP_breg31 0x10) __cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 +old param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87bc 0x8884 (DW_OP_breg31 0xc) __cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 +new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87bc 0x8884 (DW_OP_breg31 0x8) __cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 ~ 000087bc: d10143ff sub sp, sp, #0x50 <- 000082a8(bl)<__cmpxchg_case_acq_16> ~ 000087c0: a9047bfd stp x29, x30, [sp, #64] 000087bc CFA:r31 r29:u r30:u ~ 000087c4: 910103fd add x29, sp, #0x40 ~ 000087c8: f9000be0 str x0, [sp, #16] ~ 000087cc: 79001be1 strh w1, [sp, #12] ~ 000087d0: 790013e2 strh w2, [sp, #8] __cmpxchg_case_acq_16:120.1 (cmpxchg.h) SbePe ║__CMPXCHG_CASE(acq_, 16) ~ 000087d4: 9400008b bl 8a00 <system_uses_lse_atomics> ~ ┌──000087d8: 360003a0 tbz w0, #0, 884c <__cmpxchg_case_acq_16+0x90> <- 000087d4(bl-succ)<return> ~ │┌─000087dc: 14000001 b 87e0 <__cmpxchg_case_acq_16+0x24> <- 000087d8(b.cc-succ)<fallthrough> ││ ~ │└>000087e0: f9400be8 ldr x8, [sp, #16] <- 000087dc(b)<__cmpxchg_case_acq_16+0x24> ~ 000087e4: 79401be9 ldrh w9, [sp, #12] ~ 000087e8: 794013ea ldrh w10, [sp, #8] ~ 000087ec: f81f83a8 stur x8, [x29, #-8] ~ 000087f0: 781f43a9 sturh w9, [x29, #-12] ~ 000087f4: 781f03aa sturh w10, [x29, #-16] q: 0x87f8 0x8848 __lse__cmpxchg_case_acq_16 inlined from __cmpxchg_case_acq_16:120 (cmpxchg.h) <6b046>: q __lse__cmpxchg_case_acq_16:369.1 (atomic_lse.h) Sbepe ║__CMPXCHG_CASE(w, h, acq_, 16, a, "memory") +ptr param pointer(missing at <5bca5>/<6a434>) 0x87f8 0x8848 (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c +old param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_fbreg -0xc) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c +new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x87f8 0x8848 (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x1 var typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_fbreg -0x1c) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x2 var typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_breg31 0x20) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x87f8 0x8848 (DW_OP_breg31 0x18) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~q 000087f8: f85f83a8 ldur x8, [x29, #-8] ~q 000087fc: f81e83a8 stur x8, [x29, #-24] ~q 00008800: 785f43a9 ldurh w9, [x29, #-12] ~q 00008804: 781e43a9 sturh w9, [x29, #-28] ~q 00008808: 785f03a9 ldurh w9, [x29, #-16] ~q 0000880c: 790043e9 strh w9, [sp, #32] ~q 00008810: f85e83a8 ldur x8, [x29, #-24] ~q 00008814: f85f83ab ldur x11, [x29, #-8] ~q 00008818: 785e43a9 ldurh w9, [x29, #-28] ~q 0000881c: 2a0903e1 mov w1, w9 ~q 00008820: 794043e9 ldrh w9, [sp, #32] ~q 00008824: 2a0903e2 mov w2, w9 ~q 00008828: aa0803e0 mov x0, x8 ~q 0000882c: 2a0103e8 mov w8, w1 ~q 00008830: 48e87d62 casah w8, w2, [x11] ~q 00008834: 2a0803e0 mov w0, w8 ~q 00008838: f81e83a0 stur x0, [x29, #-24] ~q 0000883c: f9000fe8 str x8, [sp, #24] ~q 00008840: 785e83a9 ldurh w9, [x29, #-24] ~q 00008844: b90003e9 str w9, [sp] -ptr param pointer(missing at <5bca5>/<6a434>) 0x87f8 0x8848 (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c -old param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_fbreg -0xc) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c -new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x87f8 0x8848 (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x1 var typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_fbreg -0x1c) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x2 var typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87f8 0x8848 (DW_OP_breg31 0x20) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x87f8 0x8848 (DW_OP_breg31 0x18) __lse__cmpxchg_case_acq_16(inlined):__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c __cmpxchg_case_acq_16:120.1 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 16) ~ ┌┼──00008848: 14000009 b 886c <__cmpxchg_case_acq_16+0xb0> ││ ~ │└─>0000884c: f9400be0 ldr x0, [sp, #16] <- 000087d8(b.cc)<__cmpxchg_case_acq_16+0x90> ~ 00008850: 79401be8 ldrh w8, [sp, #12] ~ 00008854: 2a0803e1 mov w1, w8 ~ 00008858: 794013e2 ldrh w2, [sp, #8] ~ 0000885c: 9400009a bl 8ac4 <__ll_sc__cmpxchg_case_acq_16> ~ 00008860: 12003c08 and w8, w0, #0xffff <- 0000885c(bl-succ)<return> ~ 00008864: b90003e8 str w8, [sp] ~ │ ┌─00008868: 14000001 b 886c <__cmpxchg_case_acq_16+0xb0> │ │ ~ └>└>0000886c: b94003e8 ldr w8, [sp] <- 00008848(b)<__cmpxchg_case_acq_16+0xb0>,00008868(b)<__cmpxchg_case_acq_16+0xb0> __cmpxchg_case_acq_16:120.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 16) ~ 00008870: b90007e8 str w8, [sp, #4] __cmpxchg_case_acq_16:120.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 16) ~ 00008874: b94007e0 ldr w0, [sp, #4] __cmpxchg_case_acq_16:120.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 16) ~ 00008878: a9447bfd ldp x29, x30, [sp, #64] ~ 0000887c: 910143ff add sp, sp, #0x50 000087c8 CFA:r29+16 r29:c-16 r30:c-8 ~ 00008880: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x87bc 0x8884 (DW_OP_breg31 0x10) __cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 -old param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87bc 0x8884 (DW_OP_breg31 0xc) __cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 -new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x87bc 0x8884 (DW_OP_breg31 0x8) __cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:120 **00008884 <__cmpxchg_case_acq_32>: + __cmpxchg_case_acq_32 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x8884 0x8948 (DW_OP_breg31 0x10) +old param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8884 0x8948 (DW_OP_breg31 0xc) +new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8884 0x8948 (DW_OP_breg31 0x8) __cmpxchg_case_acq_32:121.0 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 32) +ptr param pointer(missing at <5bca5>/<6a434>) 0x8884 0x8948 (DW_OP_breg31 0x10) __cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 +old param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8884 0x8948 (DW_OP_breg31 0xc) __cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 +new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8884 0x8948 (DW_OP_breg31 0x8) __cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 ~ 00008884: d10143ff sub sp, sp, #0x50 <- 000082c8(bl)<__cmpxchg_case_acq_32> ~ 00008888: a9047bfd stp x29, x30, [sp, #64] 00008884 CFA:r31 r29:u r30:u ~ 0000888c: 910103fd add x29, sp, #0x40 ~ 00008890: f9000be0 str x0, [sp, #16] ~ 00008894: b9000fe1 str w1, [sp, #12] ~ 00008898: b9000be2 str w2, [sp, #8] __cmpxchg_case_acq_32:121.1 (cmpxchg.h) SbePe ║__CMPXCHG_CASE(acq_, 32) ~ 0000889c: 94000059 bl 8a00 <system_uses_lse_atomics> ~ ┌──000088a0: 360003a0 tbz w0, #0, 8914 <__cmpxchg_case_acq_32+0x90> <- 0000889c(bl-succ)<return> ~ │┌─000088a4: 14000001 b 88a8 <__cmpxchg_case_acq_32+0x24> <- 000088a0(b.cc-succ)<fallthrough> ││ ~ │└>000088a8: f9400be8 ldr x8, [sp, #16] <- 000088a4(b)<__cmpxchg_case_acq_32+0x24> ~ 000088ac: b9400fe9 ldr w9, [sp, #12] ~ 000088b0: b9400bea ldr w10, [sp, #8] ~ 000088b4: f81f83a8 stur x8, [x29, #-8] ~ 000088b8: b81f43a9 stur w9, [x29, #-12] ~ 000088bc: b81f03aa stur w10, [x29, #-16] r: 0x88c0 0x8910 __lse__cmpxchg_case_acq_32 inlined from __cmpxchg_case_acq_32:121 (cmpxchg.h) <6b139>: r __lse__cmpxchg_case_acq_32:370.1 (atomic_lse.h) Sbepe ║__CMPXCHG_CASE(w, , acq_, 32, a, "memory") +ptr param pointer(missing at <5bca5>/<6a434>) 0x88c0 0x8910 (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c +old param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_fbreg -0xc) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c +new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x88c0 0x8910 (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x1 var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_fbreg -0x1c) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x2 var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_breg31 0x20) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x88c0 0x8910 (DW_OP_breg31 0x18) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~r 000088c0: f85f83a8 ldur x8, [x29, #-8] ~r 000088c4: f81e83a8 stur x8, [x29, #-24] ~r 000088c8: b85f43a9 ldur w9, [x29, #-12] ~r 000088cc: b81e43a9 stur w9, [x29, #-28] ~r 000088d0: b85f03a9 ldur w9, [x29, #-16] ~r 000088d4: b90023e9 str w9, [sp, #32] ~r 000088d8: f85e83a8 ldur x8, [x29, #-24] ~r 000088dc: f85f83ab ldur x11, [x29, #-8] ~r 000088e0: b85e43a9 ldur w9, [x29, #-28] ~r 000088e4: 2a0903e1 mov w1, w9 ~r 000088e8: b94023e9 ldr w9, [sp, #32] ~r 000088ec: 2a0903e2 mov w2, w9 ~r 000088f0: aa0803e0 mov x0, x8 ~r 000088f4: 2a0103e8 mov w8, w1 ~r 000088f8: 88e87d62 casa w8, w2, [x11] ~r 000088fc: 2a0803e0 mov w0, w8 ~r 00008900: f81e83a0 stur x0, [x29, #-24] ~r 00008904: f9000fe8 str x8, [sp, #24] ~r 00008908: b85e83a9 ldur w9, [x29, #-24] ~r 0000890c: b90003e9 str w9, [sp] -ptr param pointer(missing at <5bca5>/<6a434>) 0x88c0 0x8910 (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c -old param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_fbreg -0xc) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c -new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x88c0 0x8910 (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x1 var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_fbreg -0x1c) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x2 var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x88c0 0x8910 (DW_OP_breg31 0x20) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x88c0 0x8910 (DW_OP_breg31 0x18) __lse__cmpxchg_case_acq_32(inlined):__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c __cmpxchg_case_acq_32:121.1 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 32) ~ ┌┼──00008910: 14000008 b 8930 <__cmpxchg_case_acq_32+0xac> ││ ~ │└─>00008914: f9400be0 ldr x0, [sp, #16] <- 000088a0(b.cc)<__cmpxchg_case_acq_32+0x90> ~ 00008918: b9400fe8 ldr w8, [sp, #12] ~ 0000891c: 2a0803e1 mov w1, w8 ~ 00008920: b9400be2 ldr w2, [sp, #8] ~ 00008924: 94000078 bl 8b04 <__ll_sc__cmpxchg_case_acq_32> ~ 00008928: b90003e0 str w0, [sp] <- 00008924(bl-succ)<return> ~ │ ┌─0000892c: 14000001 b 8930 <__cmpxchg_case_acq_32+0xac> │ │ ~ └>└>00008930: b94003e8 ldr w8, [sp] <- 00008910(b)<__cmpxchg_case_acq_32+0xac>,0000892c(b)<__cmpxchg_case_acq_32+0xac> __cmpxchg_case_acq_32:121.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 32) ~ 00008934: b90007e8 str w8, [sp, #4] __cmpxchg_case_acq_32:121.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 32) ~ 00008938: b94007e0 ldr w0, [sp, #4] __cmpxchg_case_acq_32:121.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 32) ~ 0000893c: a9447bfd ldp x29, x30, [sp, #64] ~ 00008940: 910143ff add sp, sp, #0x50 00008890 CFA:r29+16 r29:c-16 r30:c-8 ~ 00008944: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x8884 0x8948 (DW_OP_breg31 0x10) __cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 -old param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8884 0x8948 (DW_OP_breg31 0xc) __cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 -new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8884 0x8948 (DW_OP_breg31 0x8) __cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:121 **00008948 <__cmpxchg_case_acq_64>: + __cmpxchg_case_acq_64 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x8948 0x8a00 (DW_OP_breg31 0x20) +old param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8948 0x8a00 (DW_OP_breg31 0x18) +new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8948 0x8a00 (DW_OP_breg31 0x10) __cmpxchg_case_acq_64:122.0 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 64) +ptr param pointer(missing at <5bca5>/<6a434>) 0x8948 0x8a00 (DW_OP_breg31 0x20) __cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 +old param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8948 0x8a00 (DW_OP_breg31 0x18) __cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 +new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8948 0x8a00 (DW_OP_breg31 0x10) __cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 ~ 00008948: d101c3ff sub sp, sp, #0x70 <- 000082e8(bl)<__cmpxchg_case_acq_64> ~ 0000894c: a9067bfd stp x29, x30, [sp, #96] 00008948 CFA:r31 r29:u r30:u ~ 00008950: 910183fd add x29, sp, #0x60 ~ 00008954: f90013e0 str x0, [sp, #32] ~ 00008958: f9000fe1 str x1, [sp, #24] ~ 0000895c: f9000be2 str x2, [sp, #16] __cmpxchg_case_acq_64:122.1 (cmpxchg.h) SbePe ║__CMPXCHG_CASE(acq_, 64) ~ 00008960: 94000028 bl 8a00 <system_uses_lse_atomics> ~ ┌──00008964: 36000360 tbz w0, #0, 89d0 <__cmpxchg_case_acq_64+0x88> <- 00008960(bl-succ)<return> ~ │┌─00008968: 14000001 b 896c <__cmpxchg_case_acq_64+0x24> <- 00008964(b.cc-succ)<fallthrough> ││ ~ │└>0000896c: f94013e8 ldr x8, [sp, #32] <- 00008968(b)<__cmpxchg_case_acq_64+0x24> ~ 00008970: f9400fe9 ldr x9, [sp, #24] ~ 00008974: f9400bea ldr x10, [sp, #16] ~ 00008978: f81f83a8 stur x8, [x29, #-8] ~ 0000897c: f81f03a9 stur x9, [x29, #-16] ~ 00008980: f81e83aa stur x10, [x29, #-24] s: 0x8984 0x89cc __lse__cmpxchg_case_acq_64 inlined from __cmpxchg_case_acq_64:122 (cmpxchg.h) <6b22c>: s __lse__cmpxchg_case_acq_64:371.1 (atomic_lse.h) Sbepe ║__CMPXCHG_CASE(x, , acq_, 64, a, "memory") +ptr param pointer(missing at <5bca5>/<6a434>) 0x8984 0x89cc (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c +old param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c +new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8984 0x89cc (DW_OP_fbreg -0x20) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x1 var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_fbreg -0x28) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c +x2 var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_breg31 0x30) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8984 0x89cc (DW_OP_breg31 0x28) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c ~s 00008984: f85f83a8 ldur x8, [x29, #-8] ~s 00008988: f81e03a8 stur x8, [x29, #-32] ~s 0000898c: f85f03a8 ldur x8, [x29, #-16] ~s 00008990: f81d83a8 stur x8, [x29, #-40] ~s 00008994: f85e83a8 ldur x8, [x29, #-24] ~s 00008998: f9001be8 str x8, [sp, #48] ~s 0000899c: f85e03a8 ldur x8, [x29, #-32] ~s 000089a0: f85f83a9 ldur x9, [x29, #-8] ~s 000089a4: f85d83a1 ldur x1, [x29, #-40] ~s 000089a8: f9401be2 ldr x2, [sp, #48] ~s 000089ac: aa0803e0 mov x0, x8 ~s 000089b0: aa0103e8 mov x8, x1 ~s 000089b4: c8e87d22 casa x8, x2, [x9] ~s 000089b8: aa0803e0 mov x0, x8 ~s 000089bc: f81e03a0 stur x0, [x29, #-32] ~s 000089c0: f90017e8 str x8, [sp, #40] ~s 000089c4: f85e03a8 ldur x8, [x29, #-32] ~s 000089c8: f90003e8 str x8, [sp] -ptr param pointer(missing at <5bca5>/<6a434>) 0x8984 0x89cc (DW_OP_fbreg -0x8) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c -old param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_fbreg -0x10) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c -new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_fbreg -0x18) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8984 0x89cc (DW_OP_fbreg -0x20) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x1 var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_fbreg -0x28) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c -x2 var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8984 0x89cc (DW_OP_breg31 0x30) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8984 0x89cc (DW_OP_breg31 0x28) __lse__cmpxchg_case_acq_64(inlined):__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c __cmpxchg_case_acq_64:122.1 (cmpxchg.h) Sbepe ║__CMPXCHG_CASE(acq_, 64) ~ ┌┼──000089cc: 14000007 b 89e8 <__cmpxchg_case_acq_64+0xa0> ││ ~ │└─>000089d0: f94013e0 ldr x0, [sp, #32] <- 00008964(b.cc)<__cmpxchg_case_acq_64+0x88> ~ 000089d4: f9400fe1 ldr x1, [sp, #24] ~ 000089d8: f9400be2 ldr x2, [sp, #16] ~ 000089dc: 94000057 bl 8b38 <__ll_sc__cmpxchg_case_acq_64> ~ 000089e0: f90003e0 str x0, [sp] <- 000089dc(bl-succ)<return> ~ │ ┌─000089e4: 14000001 b 89e8 <__cmpxchg_case_acq_64+0xa0> │ │ ~ └>└>000089e8: f94003e8 ldr x8, [sp] <- 000089cc(b)<__cmpxchg_case_acq_64+0xa0>,000089e4(b)<__cmpxchg_case_acq_64+0xa0> __cmpxchg_case_acq_64:122.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 64) ~ 000089ec: f90007e8 str x8, [sp, #8] __cmpxchg_case_acq_64:122.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 64) ~ 000089f0: f94007e0 ldr x0, [sp, #8] __cmpxchg_case_acq_64:122.1 (cmpxchg.h) sbepe ║__CMPXCHG_CASE(acq_, 64) ~ 000089f4: a9467bfd ldp x29, x30, [sp, #96] ~ 000089f8: 9101c3ff add sp, sp, #0x70 00008954 CFA:r29+16 r29:c-16 r30:c-8 ~ 000089fc: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x8948 0x8a00 (DW_OP_breg31 0x20) __cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 -old param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8948 0x8a00 (DW_OP_breg31 0x18) __cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 -new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8948 0x8a00 (DW_OP_breg31 0x10) __cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:122 **00008a00 <system_uses_lse_atomics>: + system_uses_lse_atomics params: none system_uses_lse_atomics:23.0 (lse.h) Sbepe ║{ 00008a00 CFA:r31 ~ 00008a00: d100c3ff sub sp, sp, #0x30 <- 0000870c(bl)<system_uses_lse_atomics>,000087d4(bl)<system_uses_lse_atomics>,0000889c(bl)<system_uses_lse_atomics>,00008960(bl)<system_uses_lse_atomics> system_uses_lse_atomics:24.10 (lse.h) SbePe return (║static_branch_likely(&arm64_const_caps_ready)) && +branch var typedef(bool=_Bool (base type, DW_ATE_boolean size:1)) 0x8a04 0x8a34 (DW_OP_fbreg 0x2c) lexblock:system_uses_lse_atomics:arch/arm64/kvm/hyp/nvhe/psci-relay.c:24 ~ 00008a04: f0000088 adrp x8, 1b000 <hyp_memory+0x460> ~ 00008a08: b9479909 ldr w9, [x8, #1944] ~ 00008a0c: 71000129 subs w9, w9, #0x0 ~ 00008a10: 1a9f07ea cset w10, ne // ne = any ~ 00008a14: 3900b3ea strb w10, [sp, #44] system_uses_lse_atomics:24.10 (lse.h) sbepe return (║static_branch_likely(&arm64_const_caps_ready)) && ~ 00008a18: 3940b3ea ldrb w10, [sp, #44] ~ 00008a1c: 2a0a03e8 mov w8, w10 ~ 00008a20: 92400108 and x8, x8, #0x1 system_uses_lse_atomics:24.10 (lse.h) sbepe return (║static_branch_likely(&arm64_const_caps_ready)) && ~ 00008a24: f90013e8 str x8, [sp, #32] system_uses_lse_atomics:24.10 (lse.h) sbepe return (║static_branch_likely(&arm64_const_caps_ready)) && ~ 00008a28: f94013e8 ldr x8, [sp, #32] ~ 00008a2c: 2a1f03e0 mov w0, wzr ~ 00008a30: b9000fe0 str w0, [sp, #12] -branch var typedef(bool=_Bool (base type, DW_ATE_boolean size:1)) 0x8a04 0x8a34 (DW_OP_fbreg 0x2c) lexblock:system_uses_lse_atomics:arch/arm64/kvm/hyp/nvhe/psci-relay.c:24 system_uses_lse_atomics:24.57 (lse.h) sbepe return (static_branch_likely(&arm64_const_caps_ready)) && ~ ┌───00008a34: b4000208 cbz x8, 8a74 <system_uses_lse_atomics+0x74> ~ │ ┌─00008a38: 14000001 b 8a3c <system_uses_lse_atomics+0x3c> <- 00008a34(b.cc-succ)<fallthrough> │ │ │ │ system_uses_lse_atomics:25.3 (lse.h) Sbepe ║static_branch_likely(&cpu_hwcap_keys[ARM64_HAS_LSE_ATOMICS]); +branch var typedef(bool=_Bool (base type, DW_ATE_boolean size:1)) 0x8a3c 0x8a64 (DW_OP_fbreg 0x1c) lexblock:system_uses_lse_atomics:arch/arm64/kvm/hyp/nvhe/psci-relay.c:25 ~ │ └>00008a3c: f0000088 adrp x8, 1b000 <hyp_memory+0x460> <- 00008a38(b)<system_uses_lse_atomics+0x3c> ~ 00008a40: b947f109 ldr w9, [x8, #2032] ~ 00008a44: 71000129 subs w9, w9, #0x0 ~ 00008a48: 1a9f07ea cset w10, ne // ne = any ~ 00008a4c: 390073ea strb w10, [sp, #28] system_uses_lse_atomics:25.3 (lse.h) sbepe ║static_branch_likely(&cpu_hwcap_keys[ARM64_HAS_LSE_ATOMICS]); ~ 00008a50: 394073ea ldrb w10, [sp, #28] ~ 00008a54: 2a0a03e8 mov w8, w10 ~ 00008a58: 92400108 and x8, x8, #0x1 system_uses_lse_atomics:25.3 (lse.h) sbepe ║static_branch_likely(&cpu_hwcap_keys[ARM64_HAS_LSE_ATOMICS]); ~ 00008a5c: f9000be8 str x8, [sp, #16] system_uses_lse_atomics:25.3 (lse.h) sbepe ║static_branch_likely(&cpu_hwcap_keys[ARM64_HAS_LSE_ATOMICS]); ~ 00008a60: f9400be8 ldr x8, [sp, #16] -branch var typedef(bool=_Bool (base type, DW_ATE_boolean size:1)) 0x8a3c 0x8a64 (DW_OP_fbreg 0x1c) lexblock:system_uses_lse_atomics:arch/arm64/kvm/hyp/nvhe/psci-relay.c:25 system_uses_lse_atomics:24.57 (lse.h) Sbepe return (static_branch_likely(&arm64_const_caps_ready)) && ~ 00008a64: f1000108 subs x8, x8, #0x0 ~ 00008a68: 1a9f07ea cset w10, ne // ne = any ~ 00008a6c: b9000fea str w10, [sp, #12] ~ │ ┌─00008a70: 14000001 b 8a74 <system_uses_lse_atomics+0x74> │ │ ~ └>└>00008a74: b9400fe8 ldr w8, [sp, #12] <- 00008a34(b.cc)<system_uses_lse_atomics+0x74>,00008a70(b)<system_uses_lse_atomics+0x74> system_uses_lse_atomics:24.2 (lse.h) sbepe ║return (static_branch_likely(&arm64_const_caps_ready)) && ~ 00008a78: 12000100 and w0, w8, #0x1 ~ 00008a7c: 9100c3ff add sp, sp, #0x30 00008a04 CFA:r31+48 ~ 00008a80: d65f03c0 ret **00008a84 <__ll_sc__cmpxchg_case_acq_8>: + __ll_sc__cmpxchg_case_acq_8 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x8a84 0x8ac4 (DW_OP_fbreg 0x28) +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8a84 0x8ac4 (DW_OP_fbreg 0x20) +new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8a84 0x8ac4 (DW_OP_fbreg 0x1c) __ll_sc__cmpxchg_case_acq_8:303.0 (atomic_ll_sc.h) Sbepe ║__CMPXCHG_CASE(w, b, acq_, 8, , a, , "memory", K) 00008a84 CFA:r31 +ptr param pointer(missing at <5bca5>/<6a434>) 0x8a84 0x8ac4 (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8a84 0x8ac4 (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 +new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8a84 0x8ac4 (DW_OP_fbreg 0x1c) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8a84 0x8ac4 (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 +oldval var typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8a84 0x8ac4 (DW_OP_fbreg 0xc) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 ~ 00008a84: d100c3ff sub sp, sp, #0x30 <- 00008794(bl)<__ll_sc__cmpxchg_case_acq_8> ~ 00008a88: f90017e0 str x0, [sp, #40] ~ 00008a8c: f90013e1 str x1, [sp, #32] ~ 00008a90: 390073e2 strb w2, [sp, #28] __ll_sc__cmpxchg_case_acq_8:303.1 (atomic_ll_sc.h) SbePe ║__CMPXCHG_CASE(w, b, acq_, 8, , a, , "memory", K) ~ 00008a94: 394083e8 ldrb w8, [sp, #32] ~ 00008a98: 2a0803e9 mov w9, w8 ~ 00008a9c: f90013e9 str x9, [sp, #32] __ll_sc__cmpxchg_case_acq_8:303.1 (atomic_ll_sc.h) sbepe ║__CMPXCHG_CASE(w, b, acq_, 8, , a, , "memory", K) ~ 00008aa0: f94017e9 ldr x9, [sp, #40] ~ 00008aa4: f94013ea ldr x10, [sp, #32] ~ 00008aa8: 394073e8 ldrb w8, [sp, #28] ~ ┌──00008aac: 14000085 b 8cc0 <psci_system_suspend+0x134> ~ ╔══════>│ 00008ab0: f9000beb str x11, [sp, #16] <- v00008cd8(b)<__ll_sc__cmpxchg_case_acq_8+0x2c> ~ ║ │ 00008ab4: 390033ec strb w12, [sp, #12] ~ ║ │ 00008ab8: 394033e0 ldrb w0, [sp, #12] ~ ║ │ 00008abc: 9100c3ff add sp, sp, #0x30 ║ │ 00008a88 CFA:r31+48 ~ ║ │ 00008ac0: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x8a84 0x8ac4 (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 -old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8a84 0x8ac4 (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 -new param typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8a84 0x8ac4 (DW_OP_fbreg 0x1c) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8a84 0x8ac4 (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 -oldval var typedef(u8=typedef(__u8=unsigned char (base type, DW_ATE_unsigned_char size:1))) 0x8a84 0x8ac4 (DW_OP_fbreg 0xc) __ll_sc__cmpxchg_case_acq_8:arch/arm64/kvm/hyp/nvhe/psci-relay.c:303 ║ │ **00008ac4 <__ll_sc__cmpxchg_case_acq_16>: + __ll_sc__cmpxchg_case_acq_16 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x8ac4 0x8b04 (DW_OP_fbreg 0x28) +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8ac4 0x8b04 (DW_OP_fbreg 0x20) +new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x8ac4 0x8b04 (DW_OP_fbreg 0x1c) ║ │ __ll_sc__cmpxchg_case_acq_16:304.0 (atomic_ll_sc.h) Sbepe ║__CMPXCHG_CASE(w, h, acq_, 16, , a, , "memory", K) ║ │ 00008ac4 CFA:r31 +ptr param pointer(missing at <5bca5>/<6a434>) 0x8ac4 0x8b04 (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8ac4 0x8b04 (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 +new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x8ac4 0x8b04 (DW_OP_fbreg 0x1c) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8ac4 0x8b04 (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 +oldval var typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x8ac4 0x8b04 (DW_OP_fbreg 0xc) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 ~ ║ │ 00008ac4: d100c3ff sub sp, sp, #0x30 <- 0000885c(bl)<__ll_sc__cmpxchg_case_acq_16> ~ ║ │ 00008ac8: f90017e0 str x0, [sp, #40] ~ ║ │ 00008acc: f90013e1 str x1, [sp, #32] ~ ║ │ 00008ad0: 79003be2 strh w2, [sp, #28] ║ │ __ll_sc__cmpxchg_case_acq_16:304.1 (atomic_ll_sc.h) SbePe ║__CMPXCHG_CASE(w, h, acq_, 16, , a, , "memory", K) ~ ║ │ 00008ad4: 794043e8 ldrh w8, [sp, #32] ~ ║ │ 00008ad8: 2a0803e9 mov w9, w8 ~ ║ │ 00008adc: f90013e9 str x9, [sp, #32] ║ │ __ll_sc__cmpxchg_case_acq_16:304.1 (atomic_ll_sc.h) sbepe ║__CMPXCHG_CASE(w, h, acq_, 16, , a, , "memory", K) ~ ║ │ 00008ae0: f94017e9 ldr x9, [sp, #40] ~ ║ │ 00008ae4: f94013ea ldr x10, [sp, #32] ~ ║ │ 00008ae8: 79403be8 ldrh w8, [sp, #28] ~ ┌╫───────┼──00008aec: 1400007c b 8cdc <psci_system_suspend+0x150> │║ │ ~ │║ ╔═══╪═>00008af0: f9000beb str x11, [sp, #16] <- v00008cf4(b)<__ll_sc__cmpxchg_case_acq_16+0x2c> ~ │║ ║ │ 00008af4: 79001bec strh w12, [sp, #12] ~ │║ ║ │ 00008af8: 79401be0 ldrh w0, [sp, #12] ~ │║ ║ │ 00008afc: 9100c3ff add sp, sp, #0x30 │║ ║ │ 00008ac8 CFA:r31+48 ~ │║ ║ │ 00008b00: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x8ac4 0x8b04 (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 -old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8ac4 0x8b04 (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 -new param typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x8ac4 0x8b04 (DW_OP_fbreg 0x1c) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8ac4 0x8b04 (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 -oldval var typedef(u16=typedef(__u16=unsigned short (base type, DW_ATE_unsigned size:2))) 0x8ac4 0x8b04 (DW_OP_fbreg 0xc) __ll_sc__cmpxchg_case_acq_16:arch/arm64/kvm/hyp/nvhe/psci-relay.c:304 │║ ║ │ **00008b04 <__ll_sc__cmpxchg_case_acq_32>: + __ll_sc__cmpxchg_case_acq_32 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x8b04 0x8b38 (DW_OP_fbreg 0x28) +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b04 0x8b38 (DW_OP_fbreg 0x20) +new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8b04 0x8b38 (DW_OP_fbreg 0x1c) │║ ║ │ __ll_sc__cmpxchg_case_acq_32:305.0 (atomic_ll_sc.h) Sbepe ║__CMPXCHG_CASE(w, , acq_, 32, , a, , "memory", K) │║ ║ │ 00008b04 CFA:r31 +ptr param pointer(missing at <5bca5>/<6a434>) 0x8b04 0x8b38 (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b04 0x8b38 (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 +new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8b04 0x8b38 (DW_OP_fbreg 0x1c) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b04 0x8b38 (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 +oldval var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8b04 0x8b38 (DW_OP_fbreg 0xc) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 ~ │║ ║ │ 00008b04: d100c3ff sub sp, sp, #0x30 <- 00008924(bl)<__ll_sc__cmpxchg_case_acq_32> ~ │║ ║ │ 00008b08: f90017e0 str x0, [sp, #40] ~ │║ ║ │ 00008b0c: f90013e1 str x1, [sp, #32] ~ │║ ║ │ 00008b10: b9001fe2 str w2, [sp, #28] │║ ║ │ __ll_sc__cmpxchg_case_acq_32:305.1 (atomic_ll_sc.h) SbePe ║__CMPXCHG_CASE(w, , acq_, 32, , a, , "memory", K) ~ │║ ║ │ 00008b14: f94017e8 ldr x8, [sp, #40] ~ │║ ║ │ 00008b18: f94013e9 ldr x9, [sp, #32] ~ │║ ║ │ 00008b1c: b9401fea ldr w10, [sp, #28] ~ │║ ┌╫───┼──00008b20: 14000076 b 8cf8 <psci_system_suspend+0x16c> │║ │║ │ ~ │║╔>│║ │ 00008b24: f9000beb str x11, [sp, #16] <- v00008d10(b)<__ll_sc__cmpxchg_case_acq_32+0x20> ~ │║║ │║ │ 00008b28: b9000fec str w12, [sp, #12] ~ │║║ │║ │ 00008b2c: b9400fe0 ldr w0, [sp, #12] ~ │║║ │║ │ 00008b30: 9100c3ff add sp, sp, #0x30 │║║ │║ │ 00008b08 CFA:r31+48 ~ │║║ │║ │ 00008b34: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x8b04 0x8b38 (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 -old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b04 0x8b38 (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 -new param typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8b04 0x8b38 (DW_OP_fbreg 0x1c) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b04 0x8b38 (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 -oldval var typedef(u32=typedef(__u32=unsigned int (base type, DW_ATE_unsigned size:4))) 0x8b04 0x8b38 (DW_OP_fbreg 0xc) __ll_sc__cmpxchg_case_acq_32:arch/arm64/kvm/hyp/nvhe/psci-relay.c:305 │║║ │║ │ **00008b38 <__ll_sc__cmpxchg_case_acq_64>: + __ll_sc__cmpxchg_case_acq_64 params: +ptr param pointer(missing at <5bca5>/<6a434>) 0x8b38 0x8b6c (DW_OP_fbreg 0x28) +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b38 0x8b6c (DW_OP_fbreg 0x20) +new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b38 0x8b6c (DW_OP_fbreg 0x18) │║║ │║ │ __ll_sc__cmpxchg_case_acq_64:306.0 (atomic_ll_sc.h) Sbepe ║__CMPXCHG_CASE( , , acq_, 64, , a, , "memory", L) │║║ │║ │ 00008b38 CFA:r31 +ptr param pointer(missing at <5bca5>/<6a434>) 0x8b38 0x8b6c (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 +old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b38 0x8b6c (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 +new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b38 0x8b6c (DW_OP_fbreg 0x18) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 +tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b38 0x8b6c (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 +oldval var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b38 0x8b6c (DW_OP_fbreg 0x8) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 ~ │║║ │║ │ 00008b38: d100c3ff sub sp, sp, #0x30 <- 000089dc(bl)<__ll_sc__cmpxchg_case_acq_64> ~ │║║ │║ │ 00008b3c: f90017e0 str x0, [sp, #40] ~ │║║ │║ │ 00008b40: f90013e1 str x1, [sp, #32] ~ │║║ │║ │ 00008b44: f9000fe2 str x2, [sp, #24] │║║ │║ │ __ll_sc__cmpxchg_case_acq_64:306.1 (atomic_ll_sc.h) SbePe ║__CMPXCHG_CASE( , , acq_, 64, , a, , "memory", L) ~ │║║ │║ │ 00008b48: f94017e8 ldr x8, [sp, #40] ~ │║║ │║ │ 00008b4c: f94013e9 ldr x9, [sp, #32] ~ │║║ │║ │ 00008b50: f9400fea ldr x10, [sp, #24] ~ │║║ │║ ┌┼──00008b54: 14000070 b 8d14 <psci_system_suspend+0x188> │║║ │║ ││ ~ │║║ │║╔>││ 00008b58: f9000beb str x11, [sp, #16] <- v00008d2c(b)<__ll_sc__cmpxchg_case_acq_64+0x20> ~ │║║ │║║ ││ 00008b5c: f90007ec str x12, [sp, #8] ~ │║║ │║║ ││ 00008b60: f94007e0 ldr x0, [sp, #8] ~ │║║ │║║ ││ 00008b64: 9100c3ff add sp, sp, #0x30 │║║ │║║ ││ 00008b3c CFA:r31+48 ~ │║║ │║║ ││ 00008b68: d65f03c0 ret -ptr param pointer(missing at <5bca5>/<6a434>) 0x8b38 0x8b6c (DW_OP_fbreg 0x28) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 -old param long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b38 0x8b6c (DW_OP_fbreg 0x20) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 -new param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b38 0x8b6c (DW_OP_fbreg 0x18) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 -tmp var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b38 0x8b6c (DW_OP_fbreg 0x10) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 -oldval var typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b38 0x8b6c (DW_OP_fbreg 0x8) __ll_sc__cmpxchg_case_acq_64:arch/arm64/kvm/hyp/nvhe/psci-relay.c:306 │║║ │║║ ││ **00008b6c <psci_forward_noreturn>: + psci_forward_noreturn params: +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8b6c 0x8b8c (DW_OP_breg31 0x8) │║║ │║║ ││ psci_forward_noreturn:79.0 (psci-relay.c) Sbepe ║{ +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8b6c 0x8b8c (DW_OP_breg31 0x8) psci_forward_noreturn:arch/arm64/kvm/hyp/nvhe/psci-relay.c:78 ~ │║║ │║║ ││ 00008b6c: d10083ff sub sp, sp, #0x20 <- 00007f2c(bl)<psci_forward_noreturn> ~ │║║ │║║ ││ 00008b70: a9017bfd stp x29, x30, [sp, #16] │║║ │║║ ││ 00008b6c CFA:r31 r29:u r30:u ~ │║║ │║║ ││ 00008b74: 910043fd add x29, sp, #0x10 ~ │║║ │║║ ││ 00008b78: f90007e0 str x0, [sp, #8] │║║ │║║ ││ psci_forward_noreturn:80.15 (psci-relay.c) SbePe psci_forward(║host_ctxt); ~ │║║ │║║ ││ 00008b7c: f94007e0 ldr x0, [sp, #8] │║║ │║║ ││ psci_forward_noreturn:80.2 (psci-relay.c) sbepe ║psci_forward(host_ctxt); ~ │║║ │║║ ││ 00008b80: 97fffd44 bl 8090 <psci_forward> │║║ │║║ ││ ~ │║║ │║║ ││ 00008b84: f90003e0 str x0, [sp] <- 00008b80(bl-succ)<return> │║║ │║║ ││ psci_forward_noreturn:81.2 (psci-relay.c) Sbepe ║hyp_panic(); /* unreachable */ │║║ │║║ ││ 00008b78 CFA:r29+16 r29:c-16 r30:c-8 ~ │║║ │║║ ││ 00008b88: 97ffeacc bl 36b8 <hyp_panic> -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8b6c 0x8b8c (DW_OP_breg31 0x8) psci_forward_noreturn:arch/arm64/kvm/hyp/nvhe/psci-relay.c:78 │║║ │║║ ││ **00008b8c <psci_system_suspend>: + psci_system_suspend params: +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b8c 0x8cbc (DW_OP_fbreg -0x8) +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8b8c 0x8cbc (DW_OP_fbreg -0x10) │║║ │║║ ││ psci_system_suspend:186.0 (psci-relay.c) Sbepe ║{ +func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b8c 0x8cbc (DW_OP_fbreg -0x8) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:185 +host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8b8c 0x8cbc (DW_OP_fbreg -0x10) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:185 +pc var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b8c 0x8cbc (DW_OP_fbreg -0x18) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:187 +r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b8c 0x8cbc (DW_OP_fbreg -0x20) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:188 +boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8b8c 0x8cbc (DW_OP_fbreg -0x28) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:190 +init_params var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8b8c 0x8cbc (DW_OP_fbreg -0x30) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:191 ~ │║║ │║║ ││ 00008b8c: d10303ff sub sp, sp, #0xc0 <- 00008028(bl)<psci_system_suspend>,00008b88(bl-succ)<return> ~ │║║ │║║ ││ 00008b90: a90b7bfd stp x29, x30, [sp, #176] │║║ │║║ ││ 00008b8c CFA:r31 r29:u r30:u ~ │║║ │║║ ││ 00008b94: 9102c3fd add x29, sp, #0xb0 ~ │║║ │║║ ││ 00008b98: f81f83a0 stur x0, [x29, #-8] ~ │║║ │║║ ││ 00008b9c: f81f03a1 stur x1, [x29, #-16] │║║ │║║ ││ psci_system_suspend:187.2 (psci-relay.c) SbePe ║DECLARE_REG(unsigned long, pc, host_ctxt, 1); ~ │║║ │║║ ││ 00008ba0: f85f03a8 ldur x8, [x29, #-16] ~ │║║ │║║ ││ 00008ba4: f9400508 ldr x8, [x8, #8] ~ │║║ │║║ ││ 00008ba8: f81e83a8 stur x8, [x29, #-24] │║║ │║║ ││ psci_system_suspend:188.2 (psci-relay.c) Sbepe ║DECLARE_REG(unsigned long, r0, host_ctxt, 2); ~ │║║ │║║ ││ 00008bac: f85f03a8 ldur x8, [x29, #-16] ~ │║║ │║║ ││ 00008bb0: f9400908 ldr x8, [x8, #16] ~ │║║ │║║ ││ 00008bb4: f81e03a8 stur x8, [x29, #-32] │║║ │║║ ││ psci_system_suspend:193.14 (psci-relay.c) Sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ │║║ │║║ ││┌─00008bb8: 14000001 b 8bbc <psci_system_suspend+0x30> │║║ │║║ │││ ~ │║║ │║║ ││└>00008bbc: aa1f03e8 mov x8, xzr <- 00008bb8(b)<psci_system_suspend+0x30> │║║ │║║ ││ psci_system_suspend:193.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__vpp_verify var pointer(const(no type)) 0x8bc0 0x8bc8 (DW_OP_fbreg -0x38) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 ~ │║║ │║║ ││ 00008bc0: f81c83a8 stur x8, [x29, #-56] ~ │║║ │║║ ││┌─00008bc4: 14000001 b 8bc8 <psci_system_suspend+0x3c> -__vpp_verify var pointer(const(no type)) 0x8bc0 0x8bc8 (DW_OP_fbreg -0x38) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 │║║ │║║ │││ │║║ │║║ │││ psci_system_suspend:193.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8bc8 0x8c00 (DW_OP_fbreg -0x48) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 +addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8bc8 0x8be0 (DW_OP_fbreg -0x50) lexblock:lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 ~ │║║ │║║ ││└>00008bc8: b0000088 adrp x8, 19000 <kvm_host_data> <- 00008bc4(b)<psci_system_suspend+0x3c> ~ │║║ │║║ ││ 00008bcc: 9139c108 add x8, x8, #0xe70 ~ │║║ │║║ ││ 00008bd0: f81b03a8 stur x8, [x29, #-80] ~ │║║ │║║ ││ 00008bd4: f85b03a8 ldur x8, [x29, #-80] ~ │║║ │║║ ││ 00008bd8: f9002fe8 str x8, [sp, #88] ~ │║║ │║║ ││ 00008bdc: f9402fe8 ldr x8, [sp, #88] -addr var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8bc8 0x8be0 (DW_OP_fbreg -0x50) lexblock:lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 │║║ │║║ ││ psci_system_suspend:193.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ │║║ │║║ ││ 00008be0: f81b83a8 stur x8, [x29, #-72] ~ │║║ │║║ ││ 00008be4: f85b83a8 ldur x8, [x29, #-72] ~ │║║ │║║ ││ 00008be8: f90007e8 str x8, [sp, #8] ~ │║║ │║║ ││ 00008bec: 97fffb90 bl 7a2c <__hyp_my_cpu_offset> │║║ │║║ ││ ~ │║║ │║║ ││ 00008bf0: f94007e8 ldr x8, [sp, #8] <- 00008bec(bl-succ)<return> ~ │║║ │║║ ││ 00008bf4: 8b000108 add x8, x8, x0 ~ │║║ │║║ ││ 00008bf8: f9002be8 str x8, [sp, #80] ~ │║║ │║║ ││ 00008bfc: f9402be8 ldr x8, [sp, #80] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8bc8 0x8c00 (DW_OP_fbreg -0x48) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 │║║ │║║ ││ psci_system_suspend:193.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); +__vpp_verify var pointer(const(no type)) 0x8c00 0x8c04 (DW_OP_fbreg -0x38) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 ~ │║║ │║║ ││ 00008c00: f81c03a8 stur x8, [x29, #-64] -__vpp_verify var pointer(const(no type)) 0x8c00 0x8c04 (DW_OP_fbreg -0x38) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:193 │║║ │║║ ││ psci_system_suspend:193.14 (psci-relay.c) sbepe boot_args = ║this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ │║║ │║║ ││ 00008c04: f85c03a8 ldur x8, [x29, #-64] │║║ │║║ ││ psci_system_suspend:193.12 (psci-relay.c) sbepe boot_args ║= this_cpu_ptr(hyp_symbol_addr(suspend_args)); ~ │║║ │║║ ││ 00008c08: f81d83a8 stur x8, [x29, #-40] │║║ │║║ ││ psci_system_suspend:194.16 (psci-relay.c) Sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ │║║ │║║ ││┌─00008c0c: 14000001 b 8c10 <psci_system_suspend+0x84> │║║ │║║ │││ ~ │║║ │║║ ││└>00008c10: aa1f03e8 mov x8, xzr <- 00008c0c(b)<psci_system_suspend+0x84> │║║ │║║ ││ psci_system_suspend:194.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); +__vpp_verify var pointer(const(no type)) 0x8c14 0x8c1c (DW_OP_breg31 0x48) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 ~ │║║ │║║ ││ 00008c14: f90027e8 str x8, [sp, #72] ~ │║║ │║║ ││┌─00008c18: 14000001 b 8c1c <psci_system_suspend+0x90> -__vpp_verify var pointer(const(no type)) 0x8c14 0x8c1c (DW_OP_breg31 0x48) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 │║║ │║║ │││ │║║ │║║ │││ psci_system_suspend:194.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); +__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8c1c 0x8c54 (DW_OP_breg31 0x38) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 +addr var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8c1c 0x8c34 (DW_OP_breg31 0x30) lexblock:lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 ~ │║║ │║║ ││└>00008c1c: b0000088 adrp x8, 19000 <kvm_host_data> <- 00008c18(b)<psci_system_suspend+0x90> ~ │║║ │║║ ││ 00008c20: 91386108 add x8, x8, #0xe18 ~ │║║ │║║ ││ 00008c24: f9001be8 str x8, [sp, #48] ~ │║║ │║║ ││ 00008c28: f9401be8 ldr x8, [sp, #48] ~ │║║ │║║ ││ 00008c2c: f90017e8 str x8, [sp, #40] ~ │║║ │║║ ││ 00008c30: f94017e8 ldr x8, [sp, #40] -addr var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8c1c 0x8c34 (DW_OP_breg31 0x30) lexblock:lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 │║║ │║║ ││ psci_system_suspend:194.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ │║║ │║║ ││ 00008c34: f9001fe8 str x8, [sp, #56] ~ │║║ │║║ ││ 00008c38: f9401fe8 ldr x8, [sp, #56] ~ │║║ │║║ ││ 00008c3c: f90003e8 str x8, [sp] ~ │║║ │║║ ││ 00008c40: 97fffb7b bl 7a2c <__hyp_my_cpu_offset> │║║ │║║ ││ ~ │║║ │║║ ││ 00008c44: f94003e8 ldr x8, [sp] <- 00008c40(bl-succ)<return> ~ │║║ │║║ ││ 00008c48: 8b000108 add x8, x8, x0 ~ │║║ │║║ ││ 00008c4c: f90013e8 str x8, [sp, #32] ~ │║║ │║║ ││ 00008c50: f94013e8 ldr x8, [sp, #32] -__ptr var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8c1c 0x8c54 (DW_OP_breg31 0x38) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 │║║ │║║ ││ psci_system_suspend:194.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); +__vpp_verify var pointer(const(no type)) 0x8c54 0x8c58 (DW_OP_breg31 0x48) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 ~ │║║ │║║ ││ 00008c54: f90023e8 str x8, [sp, #64] -__vpp_verify var pointer(const(no type)) 0x8c54 0x8c58 (DW_OP_breg31 0x48) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:194 │║║ │║║ ││ psci_system_suspend:194.16 (psci-relay.c) sbepe init_params = ║this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ │║║ │║║ ││ 00008c58: f94023e8 ldr x8, [sp, #64] │║║ │║║ ││ psci_system_suspend:194.14 (psci-relay.c) sbepe init_params ║= this_cpu_ptr(hyp_symbol_addr(kvm_init_params)); ~ │║║ │║║ ││ 00008c5c: f81d03a8 stur x8, [x29, #-48] │║║ │║║ ││ psci_system_suspend:200.18 (psci-relay.c) Sbepe boot_args->pc = ║pc; ~ │║║ │║║ ││ 00008c60: f85e83a8 ldur x8, [x29, #-24] │║║ │║║ ││ psci_system_suspend:200.2 (psci-relay.c) sbepe ║boot_args->pc = pc; ~ │║║ │║║ ││ 00008c64: f85d83a9 ldur x9, [x29, #-40] │║║ │║║ ││ psci_system_suspend:200.16 (psci-relay.c) sbepe boot_args->pc ║= pc; ~ │║║ │║║ ││ 00008c68: f9000528 str x8, [x9, #8] │║║ │║║ ││ psci_system_suspend:201.18 (psci-relay.c) Sbepe boot_args->r0 = ║r0; ~ │║║ │║║ ││ 00008c6c: f85e03a8 ldur x8, [x29, #-32] │║║ │║║ ││ psci_system_suspend:201.2 (psci-relay.c) sbepe ║boot_args->r0 = r0; ~ │║║ │║║ ││ 00008c70: f85d83a9 ldur x9, [x29, #-40] │║║ │║║ ││ psci_system_suspend:201.16 (psci-relay.c) sbepe boot_args->r0 ║= r0; ~ │║║ │║║ ││ 00008c74: f9000928 str x8, [x9, #16] │║║ │║║ ││ psci_system_suspend:204.19 (psci-relay.c) Sbepe return psci_call(║func_id, ~ │║║ │║║ ││ 00008c78: f85f83a0 ldur x0, [x29, #-8] │║║ │║║ ││ psci_system_suspend:205.5 (psci-relay.c) Sbepe ║__hyp_pa(hyp_symbol_addr(kvm_hyp_cpu_resume)), +addr var pointer(subroutine(prototyped no type(long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8c7c 0x8c94 (DW_OP_breg31 0x18) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:205 ~ │║║ │║║ ││ 00008c7c: f0000068 adrp x8, 17000 <___kvm_hyp_init+0x3c> ~ │║║ │║║ ││ 00008c80: 9102d108 add x8, x8, #0xb4 ~ │║║ │║║ ││ 00008c84: f9000fe8 str x8, [sp, #24] ~ │║║ │║║ ││ 00008c88: f9400fe8 ldr x8, [sp, #24] ~ │║║ │║║ ││ 00008c8c: f9000be8 str x8, [sp, #16] ~ │║║ │║║ ││ 00008c90: f9400be8 ldr x8, [sp, #16] -addr var pointer(subroutine(prototyped no type(long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8c7c 0x8c94 (DW_OP_breg31 0x18) lexblock:psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:205 │║║ │║║ ││ psci_system_suspend:205.5 (psci-relay.c) sbepe ║__hyp_pa(hyp_symbol_addr(kvm_hyp_cpu_resume)), ~ │║║ │║║ ││ 00008c94: d0000089 adrp x9, 1a000 <hyp_cpu_logical_map+0xe0> ~ │║║ │║║ ││ 00008c98: f9439d29 ldr x9, [x9, #1848] ~ │║║ │║║ ││ 00008c9c: 8b090101 add x1, x8, x9 │║║ │║║ ││ psci_system_suspend:206.5 (psci-relay.c) Sbepe ║__hyp_pa(init_params), 0); ~ │║║ │║║ ││ 00008ca0: f85d03a8 ldur x8, [x29, #-48] ~ │║║ │║║ ││ 00008ca4: 8b090102 add x2, x8, x9 ~ │║║ │║║ ││ 00008ca8: aa1f03e3 mov x3, xzr │║║ │║║ ││ psci_system_suspend:204.9 (psci-relay.c) Sbepe return ║psci_call(func_id, ~ │║║ │║║ ││ 00008cac: 97fffe30 bl 856c <psci_call> │║║ │║║ ││ │║║ │║║ ││ psci_system_suspend:204.2 (psci-relay.c) sbepe ║return psci_call(func_id, ~ │║║ │║║ ││ 00008cb0: a94b7bfd ldp x29, x30, [sp, #176] <- 00008cac(bl-succ)<return> ~ │║║ │║║ ││ 00008cb4: 910303ff add sp, sp, #0xc0 ~ │║║ │║║ ││ 00008cb8: d65f03c0 ret -func_id param typedef(u64=typedef(__u64=long long unsigned int (base type, DW_ATE_unsigned size:8))) 0x8b8c 0x8cbc (DW_OP_fbreg -0x8) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:185 -host_ctxt param pointer(struct kvm_cpu_context<5bca5>/<5c116>) 0x8b8c 0x8cbc (DW_OP_fbreg -0x10) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:185 -pc var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b8c 0x8cbc (DW_OP_fbreg -0x18) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:187 -r0 var long unsigned int (base type, DW_ATE_unsigned size:8) 0x8b8c 0x8cbc (DW_OP_fbreg -0x20) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:188 -boot_args var pointer(struct psci_boot_args<5bca5>/<5bdb2>) 0x8b8c 0x8cbc (DW_OP_fbreg -0x28) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:190 -init_params var pointer(struct kvm_nvhe_init_params<5bca5>/<6a351>) 0x8b8c 0x8cbc (DW_OP_fbreg -0x30) psci_system_suspend:arch/arm64/kvm/hyp/nvhe/psci-relay.c:191 ~ │║║ │║║ ││ 00008cbc: d5184028 msr elr_el1, x8 │║║ │║║ ││ ~ │║║ │║║ │└─>00008cc0: f9800131 prfm pstl1strm, [x9] <- 00008aac(b)<psci_system_suspend+0x134> │║║ │║║ │ ~ │║║ │║║ │╔═>00008cc4: 085ffd2c ldaxrb w12, [x9] <- v00008cd4(b.cc)<psci_system_suspend+0x138> ~ │║║ │║║ │║ 00008cc8: 4a0a018b eor w11, w12, w10 ~ │║║ │║║ │║┌─00008ccc: 3500006b cbnz w11, 8cd8 <psci_system_suspend+0x14c> │║║ │║║ │║│ ~ │║║ │║║ │║│ 00008cd0: 080b7d28 stxrb w11, w8, [x9] <- 00008ccc(b.cc-succ)<fallthrough> ~ │║║ │║║ │╚╪═00008cd4: 35ffff8b cbnz w11, 8cc4 <psci_system_suspend+0x138> │║║ │║║ │ │ ~ │╚╬═╪╬╬═╪═└>00008cd8: 17ffff76 b 8ab0 <__ll_sc__cmpxchg_case_acq_8+0x2c> <- 00008ccc(b.cc)<psci_system_suspend+0x14c>,00008cd4(b.cc-succ)<fallthrough> │ ║ │║║ │ ~ └>║ │║║ │ 00008cdc: f9800131 prfm pstl1strm, [x9] <- 00008aec(b)<psci_system_suspend+0x150> ║ │║║ │ ~ ║ │║║ │╔═>00008ce0: 485ffd2c ldaxrh w12, [x9] <- v00008cf0(b.cc)<psci_system_suspend+0x154> ~ ║ │║║ │║ 00008ce4: 4a0a018b eor w11, w12, w10 ~ ║ │║║ │║┌─00008ce8: 3500006b cbnz w11, 8cf4 <psci_system_suspend+0x168> ║ │║║ │║│ ~ ║ │║║ │║│ 00008cec: 480b7d28 stxrh w11, w8, [x9] <- 00008ce8(b.cc-succ)<fallthrough> ~ ║ │║║ │╚╪═00008cf0: 35ffff8b cbnz w11, 8ce0 <psci_system_suspend+0x154> ║ │║║ │ │ ~ ║ │╚╬═╪═└>00008cf4: 17ffff7f b 8af0 <__ll_sc__cmpxchg_case_acq_16+0x2c> <- 00008ce8(b.cc)<psci_system_suspend+0x168>,00008cf0(b.cc-succ)<fallthrough> ║ │ ║ │ ~ ║ └>║ │ 00008cf8: f9800111 prfm pstl1strm, [x8] <- 00008b20(b)<psci_system_suspend+0x16c> ║ ║ │ ~ ║ ║ │╔═>00008cfc: 885ffd0c ldaxr w12, [x8] <- v00008d0c(b.cc)<psci_system_suspend+0x170> ~ ║ ║ │║ 00008d00: 4a09018b eor w11, w12, w9 ~ ║ ║ │║┌─00008d04: 3500006b cbnz w11, 8d10 <psci_system_suspend+0x184> ║ ║ │║│ ~ ║ ║ │║│ 00008d08: 880b7d0a stxr w11, w10, [x8] <- 00008d04(b.cc-succ)<fallthrough> ~ ║ ║ │╚╪═00008d0c: 35ffff8b cbnz w11, 8cfc <psci_system_suspend+0x170> ║ ║ │ │ ~ ╚═══╬═╪═└>00008d10: 17ffff85 b 8b24 <__ll_sc__cmpxchg_case_acq_32+0x20> <- 00008d04(b.cc)<psci_system_suspend+0x184>,00008d0c(b.cc-succ)<fallthrough> ║ │ ~ ║ └──>00008d14: f9800111 prfm pstl1strm, [x8] <- 00008b54(b)<psci_system_suspend+0x188> ~ ║ ╔═>00008d18: c85ffd0c ldaxr x12, [x8] <- v00008d28(b.cc)<psci_system_suspend+0x18c> ~ ║ ║ 00008d1c: ca09018b eor x11, x12, x9 ~ ║ ║┌─00008d20: b500006b cbnz x11, 8d2c <psci_system_suspend+0x1a0> ║ ║│ ~ ║ ║│ 00008d24: c80b7d0a stxr w11, x10, [x8] <- 00008d20(b.cc-succ)<fallthrough> ~ ║ ╚╪═00008d28: 35ffff8b cbnz w11, 8d18 <psci_system_suspend+0x18c> ║ │ ║ │ 00008b98 CFA:r29+16 r29:c-16 r30:c-8 ~ ╚═══└>00008d2c: 17ffff8b b 8b58 <__ll_sc__cmpxchg_case_acq_64+0x20> <- 00008d20(b.cc)<psci_system_suspend+0x1a0>,00008d28(b.cc-succ)<fallthrough>