next-20170125 hangs on aarch64

Yury Norov ynorov at caviumnetworks.com
Sun Jan 29 04:21:25 PST 2017


On Sun, Jan 29, 2017 at 03:42:55PM +0530, Yury Norov wrote:
> Hi all,
> 
> I pulled next-20170125 kernel, and found it hanged on boot. The exact reason is
> panic on dereferencing of the 0xffffffc8 address, which is most probably the
> attempt to dereference the ENOSYS error code as the address. next-20170124 works
> fine, at least it boots.
> 
> Does anyone have details on that?
> 
> Yury

UPD:

I run qemu for testing.

The true failure backtrace is like below. The bad dereference happens for me in
arm_smccc_hvc() function in macro SMCCC.

Yury

Backtrace:

#0  0xffff00000808f7a8 in arm_smccc_hvc () at
arch/arm64/kernel/smccc-call.S:50
#1  0xffff000008745ea0 in __invoke_psci_fn_hvc (function_id=<optimized out>, arg0=<optimized out>,
    arg1=<optimized out>, arg2=<optimized out>) at drivers/firmware/psci.c:119
#2  0xffff000008745d18 in psci_migrate_info_type () at drivers/firmware/psci.c:204
#3  0xffff000008ca150c in psci_init_migrate () at drivers/firmware/psci.c:465
#4  psci_probe () at drivers/firmware/psci.c:539
#5  0xffff000008ca1684 in psci_0_2_init (np=<optimized out>) at drivers/firmware/psci.c:571
#6  0xffff000008ca16d8 in psci_dt_init () at drivers/firmware/psci.c:637
#7  0xffff000008c62914 in setup_arch (cmdline_p=<optimized out>) at arch/arm64/kernel/setup.c:287
#8  0xffff000008c6082c in start_kernel () at init/main.c:509
#9  0xffff000008c601e0 in __primary_switched () at arch/arm64/kernel/head.S:452

Listing:

 │0xffff00000808f790 <arm_smccc_hvc>        hvc    #0x0
 │0xffff00000808f794 <arm_smccc_hvc+4>      ldr    x4, [sp]
 │0xffff00000808f798 <arm_smccc_hvc+8>      stp    x0, x1, [x4]          
 │0xffff00000808f79c <arm_smccc_hvc+12>     stp x2, x3, [x4,#16]
 │0xffff00000808f7a0 <arm_smccc_hvc+16>     ldr x4, [sp,#8] 
 │0xffff00000808f7a4 <arm_smccc_hvc+20>     cbz x4, 0xffff00000808f7b8 <arm_smccc_hvc+40>
>│0xffff00000808f7a8 <arm_smccc_hvc+24      ldr    x9, [x4]
 │0xffff00000808f7ac <arm_smccc_hvc+28>     cmp    x9, #0x1
 │0xffff00000808f7b0 <arm_smccc_hvc+32>     b.ne   0xffff00000808f7b8 <arm_smccc_hvc+40>
 │0xffff00000808f7b4 <arm_smccc_hvc+36>     str    x6, [x4,#8]
 │0xffff00000808f7b8 <arm_smccc_hvc+40>     ret



More information about the linux-arm-kernel mailing list