Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751458AbdGRDmf (ORCPT ); Mon, 17 Jul 2017 23:42:35 -0400 Received: from mail-pg0-f43.google.com ([74.125.83.43]:34787 "EHLO mail-pg0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751346AbdGRDmc (ORCPT ); Mon, 17 Jul 2017 23:42:32 -0400 From: Frank Rowand Subject: panic, bisect to commit 7f1d4e58dabb "spmi: pmic-arb: optimize table lookups" To: Kiran Gunda , Abhijeet Dharmapurikar Cc: Greg Kroah-Hartman , Christophe JAILLET , "linux-kernel@vger.kernel.org" , Timur Tabi , linux-arm-msm , adharmap@quicinc.com, aghayal@qti.qualcomm.com Message-ID: <596D839C.2030907@gmail.com> Date: Mon, 17 Jul 2017 20:42:20 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 8125 Lines: 146 Hi Abhijeet, My qcom-apq8074-dragonboard panics on boot on v4.13-rc1. I bisected the problem to commit 7f1d4e58dabb, "spmi: pmic-arb: optimize table lookups". The panic occurs at the top of pmic_arb_ppid_to_apid_v1(), due to pa->ppid_to_apid being null. A little more information that might help you narrow down the root cause -- pa->ppid is not initialized to non-null in spmi_pmic_arb_probe() because the device is version 1. I didn't chase the cause any further. The configuration is qcom_defconfig, plus the following changes: HWSPINLOCK n -> y OF_OVERLAY n -> y OF_UNITTEST n -> y QCOM_COINCELL n -> y REGULATOR_QCOM_SPMI n -> y +HWSPINLOCK_QCOM y +OF_DYNAMIC y +OF_RESOLVE y +QCOM_ADSP_PIL n +QCOM_CLK_SMD_RPM n +QCOM_Q6V5_PIL n +QCOM_SMD_RPM y +QCOM_SMEM y +QCOM_SMP2P n +QCOM_SMSM n +QCOM_WCNSS_CTRL n +QCOM_WCNSS_PIL n +REGULATOR_QCOM_SMD_RPM y +RPMSG y +RPMSG_CHAR n +RPMSG_QCOM_SMD y The panic message is: spmi spmi-0: PMIC arbiter version v1 (0x20000002) Unable to handle kernel NULL pointer dereference at virtual address 00000940 pgd = c0204000 [00000940] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.13.0-rc1-dirty #1 Hardware name: Generic DT based system task: ee8a0000 task.stack: ee89c000 PC is at pmic_arb_ppid_to_apid_v1+0x20/0xd8 LR is at qpnpint_irq_domain_dt_translate+0xac/0x19c pc : [] lr : [] psr: 80000013 sp : ee89da80 ip : c0730478 fp : ee89dab6 r10: 00000004 r9 : 00000940 r8 : ee834010 r7 : c0eaa748 r6 : c2514ec0 r5 : 000004a0 r4 : ee8331a8 r3 : ee89dab6 r2 : 00000000 r1 : 00000400 r0 : ee8331a8 Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 10c5787d Table: 0020406a DAC: 00000051 Process swapper/0 (pid: 1, stack limit = 0xee89c210) Stack: (0xee89da80 to 0xee89e000) da80: ee89dab6 ee89db08 ee8331a8 c2514ec0 c0eaa748 eefeda14 ee89dae8 00000004 daa0: c2515a00 c07301e8 00000000 c096c878 00000000 ffffffff c2514ec0 ee89db00 dac0: c073013c 00000000 c252f200 00000004 c252ee00 c03695ec ee89dae8 ee89daec dae0: ffffffff ffffffff ffffffff 00000000 eefeda24 c2515a20 eefede80 c03697b8 db00: eefeda24 00000004 00000004 000000a0 00000000 00000000 00000000 c07ef054 db20: ee89db50 c07e7414 ee89db88 00000010 c2514ec0 c0367e54 eefeda24 c2515a20 db40: eefede80 00000000 c252f200 c07ef1a0 eefeda14 00000004 00000004 000000a0 db60: 00000000 00000000 c252ee00 c096cb80 c252ee00 c096c878 00000000 c07e73a8 db80: eefede80 ee89dbd0 c0eaebd0 ffffffea ee89dbd0 c0eaebd0 eefeda24 00000000 dba0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dbc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dbe0: c2515a00 c07ef1fc c252ee00 c07edfd4 00000200 00000000 00000000 c2515a20 dc00: eefede80 00000004 c252f200 c07ef2e8 c0ea0c8c 00000000 00000004 eefede80 dc20: eefeded4 c07e9a80 00000001 00000000 00000800 00000002 c0a33b80 ee833000 dc40: eefede80 c0ef2b44 60000013 c07e80bc eefede80 eefede80 00000000 00000000 dc60: eefeded4 c252ee00 00000000 00000000 c252ee00 c07e9d10 eefede80 00000000 dc80: 00000000 00000001 00000000 c07e9ebc c252f000 00000000 00000001 00000001 dca0: 00000103 c06d08dc eefede80 c07eb8ac eefede80 c07e7134 c0d69724 eefede80 dcc0: eefedcfc 00000000 c252ee00 00000000 00000000 00000001 c0d69724 c07ea258 dce0: 00000001 00000000 c252ee00 c2517190 c252f000 00000000 00000000 00000000 dd00: c0e7b7ec c07ea32c c252ee00 c0a722e4 c252f000 c06dd71c ee833074 c252ee74 dd20: c252ee74 60000013 c0d69724 00000000 00000001 00000002 00000051 00000002 dd40: c252ee00 c252eed4 c0e7b7ec c072dc94 c252ee00 c0ef0dfc c0ea9920 c06b61ec dd60: ee89dda8 c072f730 c072f718 ee89dda8 00000000 c06b64ec c0ef0dd8 ee833000 dd80: 00000000 c0a81be0 c0d69724 c06b4598 ee93436c eebc1eb8 c252ee00 c252ee34 dda0: 00000001 c06b5e1c c252ee00 00000001 c0d69724 c252ee00 c252ee00 c0e821d4 ddc0: c0ef0dd8 c06b532c c252ee00 c252ee08 00000000 c06b3660 c252ee00 c0957448 dde0: c252ee00 ee833000 c252ee00 ee833000 c0eaa6d0 00000000 00000000 00000000 de00: c252ee00 c072fad8 00000004 eefedcfc ee833000 c072fbf4 00000000 ee9e8700 de20: 00000004 00000000 ee8331a8 ee8331a8 ee833000 ee9d6400 ee9d6410 00000000 de40: 00000001 c0730868 c0a81d00 ee8331a8 00000000 00000000 c0ef0dfc ee9d6410 de60: c0730550 c0e82644 00000000 00000000 c0e82644 c06b7ef0 ee9d6410 c0ef0dfc de80: c0ea9920 c06b61ec c0a81d5c ee9d6410 c0e82644 ee9d6444 ee9d6410 c0e82644 dea0: c0ea9848 00000000 000000c2 c0d005ac c0d69724 c06b6498 c0e82644 00000000 dec0: c06b63ac c06b4624 ee839e58 ee9c1534 c0e82644 c2515880 c0e7a110 c06b55dc dee0: c0c44e58 c0e82644 c0e82644 00000006 00000000 c0eb9040 c0d2ff84 c06b7100 df00: c06b7a48 c0d5a850 00000006 c0301770 000000c2 efffc440 c0cc3b00 efffc440 df20: 000000c2 c033bdd8 00000001 00000003 c0cc2c0c 00000000 00000006 00000006 df40: efffc440 efffc455 c0e0c1e4 c0d5a84c 00000006 c0d5a830 c0d5a850 00000006 df60: c0d5a830 c0eb9040 00000000 c0d00d6c 00000006 00000006 00000000 c0d005ac df80: c0966cdc 00000000 c0966cdc 00000000 00000000 00000000 00000000 00000000 dfa0: 00000000 c0966ce4 00000000 c03080b8 00000000 00000000 00000000 00000000 dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 6f9750d2 e55ff751 [] (pmic_arb_ppid_to_apid_v1) from [] (qpnpint_irq_domain_dt_translate+0xac/0x19c) [] (qpnpint_irq_domain_dt_translate) from [] (irq_create_fwspec_mapping+0x14c/0x2cc) [] (irq_create_fwspec_mapping) from [] (irq_create_of_mapping+0x4c/0x54) [] (irq_create_of_mapping) from [] (of_irq_get+0x58/0x60) [] (of_irq_get) from [] (of_irq_to_resource+0x18/0xc8) [] (of_irq_to_resource) from [] (of_irq_to_resource_table+0x3c/0x4c) [] (of_irq_to_resource_table) from [] (of_device_alloc+0xd0/0x184) [] (of_device_alloc) from [] (of_platform_device_create_pdata+0x50/0xa8) [] (of_platform_device_create_pdata) from [] (of_platform_bus_create+0x154/0x460) [] (of_platform_bus_create) from [] (of_platform_populate+0x90/0x11c) [] (of_platform_populate) from [] (devm_of_platform_populate+0x48/0x7c) [] (devm_of_platform_populate) from [] (pmic_spmi_probe+0x40/0x188) [] (pmic_spmi_probe) from [] (spmi_drv_probe+0x44/0xac) [] (spmi_drv_probe) from [] (driver_probe_device+0x2ec/0x4ac) [] (driver_probe_device) from [] (bus_for_each_drv+0x5c/0x88) [] (bus_for_each_drv) from [] (__device_attach+0x9c/0x128) [] (__device_attach) from [] (bus_probe_device+0x84/0x8c) [] (bus_probe_device) from [] (device_add+0x30c/0x560) [] (device_add) from [] (spmi_device_add+0x24/0x9c) [] (spmi_device_add) from [] (spmi_controller_add+0xa4/0x1f0) [] (spmi_controller_add) from [] (spmi_pmic_arb_probe+0x318/0x3f8) [] (spmi_pmic_arb_probe) from [] (platform_drv_probe+0x50/0xa0) [] (platform_drv_probe) from [] (driver_probe_device+0x2ec/0x4ac) [] (driver_probe_device) from [] (__driver_attach+0xec/0x110) [] (__driver_attach) from [] (bus_for_each_dev+0x60/0x94) [] (bus_for_each_dev) from [] (bus_add_driver+0x180/0x258) [] (bus_add_driver) from [] (driver_register+0x78/0xf4) [] (driver_register) from [] (do_one_initcall+0x40/0x160) [] (do_one_initcall) from [] (kernel_init_freeable+0x10c/0x1d0) [] (kernel_init_freeable) from [] (kernel_init+0x8/0x10c) [] (kernel_init) from [] (ret_from_fork+0x14/0x3c) Code: e1a0b003 e1a09085 e1a04000 e590802c (e19230b9) ---[ end trace 6d8cadb333cb01dc ]--- Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b Please let me know if you need any further information. -Frank