Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pinctrl: rockchip: fix NULL pointer exception
This patch is more tolerant to the typo errors on the rockchip,pins property (eg. rockchip-pins, rockchip-pin...) and provides a nice error message instead of raising a NULL pointer exception. Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0004000 [00000000] *pgd=00000000 Internal error: Oops: 5 [#1] SMP ARM Modules linked in: CPU: 2 PID: 1 Comm: swapper/0 Not tainted 3.17.0-rc6-next-20140925+ torvalds#118 task: ee0379c0 ti: ee05c000 task.ti: ee05c000 PC is at rockchip_pinctrl_probe+0xbd0/0xe3c LR is at devres_add+0x3c/0x40 pc : [<c0201bd4>] lr : [<c0258228>] psr: 80000113 sp : ee05dc80 ip : ee05dc48 fp : ee05dcfc r10: 00000000 r9 : 00000000 r8 : ee7ed334 r7 : 0000002f r6 : ee197f00 r5 : ee7ed290 r4 : ee124210 r3 : 00000004 r2 : c0bc4250 r1 : 40000113 r0 : ee1ac990 Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c5387d Table: 6000404a DAC: 00000015 Process swapper/0 (pid: 1, stack limit = 0xee05c240) Stack: (0xee05dc80 to 0xee05e000) dc80: ee7ed474 00001c00 00000000 00000001 ee11cb78 00000000 00000001 00000017 dca0: ee196f18 ee12f400 ee7e822c ee12f410 00000000 00000004 200800ff ee7e8c18 dcc0: 00000200 00000000 00000000 00000000 ee12f418 ee12f410 ffffffed c0bc3994 dce0: c0bdcc88 c0c2766c 00000000 00000000 ee05dd1c ee05dd00 c0256f80 c0201010 dd00: c0256f30 ee12f410 c0bc3994 00000000 ee05dd4c ee05dd20 c025555c c0256f3c dd20: ee05dd4c ee05dd30 c0bc3994 ee12f410 c025577 00000000 00000000 00000000 dd40: ee05dd64 ee05dd50 c02557a0 c025542c 00000000 ee12f410 ee05dd8c ee05dd68 dd60: c0253a38 c025577c ee038770 ee124fb8 c0482a58 ee12f410 c0bca028 ee12f444 dd80: ee05ddac ee05dd90 c02553a8 c02539c4 00000001 ee12f410 c0bca028 ee12f410 dda0: ee05ddcc ee05ddb0 c0254918 c0255348 00000000 ee12f410 00000000 ee12f418 ddc0: ee05de04 ee05ddd0 c0252c48 c02548f4 ee05de14 ee05dde0 c0327e9c c0329ad4 dde0: ee12f400 ee7e827c 00000000 00000000 00000000 00000001 ee05de14 ee05de08 de00: c0327a64 c0252814 ee05de3c ee05de18 c03282d0 c0327a34 00000000 ee7e822c de20: 00000000 00000000 00000000 c04b9da4 ee05de9c ee05de40 c0328590 c0328268 de40: 00000001 ffffffff 00000000 00000000 ff0a0005 ffffffff ee05de84 ee05ded8 de60: ee05de9c ee05de70 c0326910 c01e24e8 ee05de9c ee7e822c ee7e099c c04b9da4 de80: 00000000 00000000 00000001 00000000 ee05decc ee05dea0 c0328800 c0328324 dea0: 00000001 c05f16b0 ee125340 c0bb7ba0 c0bb7ba0 c0be36c0 c05f16b0 0000009a dec0: ee05dedc ee05ded0 c05f16e8 c03287a0 ee05df5c ee05dee0 c0008ab0 c05f16bc dee0: c0113df0 c0113adc ee05df0c ee05def8 c0038400 c00383f4 ef7fccfb 00000000 df00: ee05df5c ee05df10 c0038730 c05ee60 c004db80 c0484378 00000000 c05ec86c df20: 00000003 00000003 0000009a c05ebecc 00000000 00000003 c06216dc c062d2e4 df40: c0be36c0 c0be36c0 0000009a 00000000 ee05df94 ee05df60 c05eee10 c000899c df60: 00000003 00000003 c05ee5f4 ee0379c0 00000000 c047d8a8 00000000 00000000 df80: 00000000 00000000 ee05dfac ee05df98 c047d8b8 c05eed00 ee05c000 00000000 dfa0: 00000000 ee05dfb0 c000e958 c047d8b4 00000000 00000000 00000000 00000000 dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 13048395 9f284081 Backtrace: [<c0201004>] (rockchip_pinctrl_probe) from [<c0256f80>] (platform_drv_probe+0x50/0x9c) r10:00000000 r9:00000000 r8:c0c2766c r7:c0bdcc88 r6:c0bc3994 r5:ffffffed r4:ee12f410 [<c0256f30>] (platform_drv_probe) from [<c025555c>] (driver_probe_device+0x13c/0x350) r6:00000000 r5:c0bc3994 r4:ee12f410 r3:c0256f30 [<c0255420>] (driver_probe_device) from [<c02557a0>] (__device_attach+0x30/0x4c) r9:00000000 r8:00000000 r7:00000000 r6:c0255770 r5:ee12f410 r4:c0bc3994 [<c0255770>] (__device_attach) from [<c0253a38>] (bus_for_each_drv+0x80/0x94) r5:ee12f410 r4:00000000 [<c02539b8>] (bus_for_each_drv) from [<c02553a8>] (device_attach+0x6c/0x90) r6:ee12f444 r5:c0bca028 r4:ee12f410 [<c025533c>] (device_attach) from [<c0254918>] (bus_probe_device+0x30/0xa0) r6:ee12f410 r5:c0bca028 r4:ee12f410 r3:00000001 [<c02548e8>] (bus_probe_device) from [<c0252c48>] (device_add+0x440/0x52c) r6:ee12f418 r5:00000000 r4:ee12f410 r3:00000000 [<c0252808>] (device_add) from [<c0327a64>] (of_device_add+0x3c/0x40) r9:00000001 r8:00000000 r7:00000000 r6:00000000 r5:ee7e827c r4:ee12f400 [<c0327a28>] (of_device_add) from [<c03282d0>] (of_platform_device_create_pdata+0x74/0xa0) [<c032825c>] (of_platform_device_create_pdata) from [<c0328590>] (of_platform_bus_create+0x278/0x368) r8:c04b9da4 r7:00000000 r6:00000000 r5:00000000 r4:ee7e822c r3:00000000 [<c0328318>] (of_platform_bus_create) from [<c0328800>] (of_platform_populate+0x6c/0x98) r10:00000000 r9:00000001 r8:00000000 r7:00000000 r6:c04b9da4 r5:ee7e099c r4:ee7e822c [<c0328794>] (of_platform_populate) from [<c05f16e8>] (customize_machine+0x38/0x48) r9:0000009a r8:c05f16b0 r7:c0be36c0 r6:c0bb7ba0 r5:c0bb7ba0 r4:ee125340 [<c05f16b0>] (customize_machine) from [<c0008ab0>] (do_one_initcall+0x120/0x1d4) [<c0008990>] (do_one_initcall) from [<c05eee10>] (kernel_init_freeable+0x11c/0x1e4) r10:00000000 r9:0000009a r8:c0be36c0 r7:c0be36c0 r6:c062d2e4 r5:c06216dc r4:00000003 [<c05eecf4>] (kernel_init_freeable) from [<c047d8b8>] (kernel_init+0x10/0xec) r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c047d8a8 r4:00000000 [<c047d8a8>] (kernel_init) from [<c000e958>] (ret_from_fork+0x14/0x3c) r4:00000000 r3:ee05c000 Code: e51b304 e15a0003 aa000031 e5942014 (e5990000) ---[ end trace a350fda3a1974f25 ]---
- Loading branch information