aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/kernel-docs.txt
diff options
context:
space:
mode:
authorRobin Gong <b38343@freescale.com>2014-04-03 05:10:24 -0400
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 09:58:16 -0400
commit4bde963732964c65b2e03deac1657f9963eb2da6 (patch)
treeff0a84dd9f22fa52da6737f0ee1ab09239e106bd /Documentation/kernel-docs.txt
parent9c8d7d6c0469c9101c07b12b920b6e272afed0cc (diff)
ENGR00307017: input: keyboard: snvs_pwrkey: fix system crash sometimes during boot
If there is one ONOFF power key interrupt pending before RESET key pushed. system will crash as below in the next boot cycle, because the pending interrupt will be serviced after devm_request_irq while the driver probe has not finished and the drvdata is NULL. So clear the meaningless irq status in the probe. ousedev: PS/2 mouse device common for all mice Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = 80004000 [00000000] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.17-01631-g6b7b681-dirty #343 task: a806c000 ti: a806e000 task.ti: a806e000 PC is at imx_snvs_pwrkey_interrupt+0x10/0x4c LR is at imx_snvs_pwrkey_interrupt+0xc/0x4c pc : [<803f0594>] lr : [<803f0590>] psr: a0000193 sp : a806fd10 ip : fffffffa fp : 00000001 r10: 80cb630e r9 : a8006b40 r8 : 00000024 r7 : 00000000 r6 : 00000000 r5 : a8006b90 r4 : a83b5340 r3 : 803f0584 r2 : a806fd48 r1 : a80ad000 r0 : 00000000 Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel Control: 10c53c7d Table: 8000404a DAC: 00000015 Process swapper/0 (pid: 1, stack limit = 0xa806e238) Stack: (0xa806fd10 to 0xa8070000) fd00: a83b5340 a8006b90 00000000 8007363c fd20: 80cb6000 80090604 00000001 a8006b40 a8006b90 a83b5340 c0802100 60000113 fd40: a8006b70 00000000 00000000 800737a0 a8006b40 a8006b90 00000000 8007646c fd60: 800763e8 00000024 00000024 80072e04 80c5fef0 8000e948 c080210c 80c6a904 fd80: a806fda0 80008558 80074b94 8063c75c 60000113 ffffffff a806fdd4 8000dc80 fda0: a8006b90 60000113 a806fdb8 00000007 a8006b40 a83b5340 a8006b90 00000024 fdc0: 60000113 a8006b70 00000000 00000000 000000ff a806fde8 80074b94 8063c75c fde0: 60000113 ffffffff 00000000 80074b94 80c6f688 020cc000 00000000 00000001 fe00: a83b5340 a8006b40 803f0584 00000004 00000024 a80ad000 00000000 80074f50 fe20: a83b5310 a80ad000 00000024 803f0584 00000000 a80ad010 80c53804 80076a40 fe40: a80ab880 a80ad000 a836e990 a836e990 a80ad010 8152696c a80ad000 80cb6480 fe60: 80c44f90 803f0774 00000004 a80ab880 a80ad000 00000000 80d0ba0c a80ad010 fe80: 00000000 80c9a1f0 80cb6480 803099c0 803099a8 8030876c 00000000 a80ad010 fea0: 80c9a1f0 a80ad044 00000000 80308958 00000000 80c9a1f0 803088cc 80306c88 fec0: a804055c a80ac1b4 80c9a1f0 a836e680 80c89a30 80307f30 80b82af4 80c9a1f0 fee0: 00000006 80c9a1f0 00000006 80cb6480 80cb6480 80308f34 80c5e688 00000006 ff00: 80cb6480 80cb6480 80cb6480 80008704 000000f2 80041d60 80c537dc a806e010 ff20: 80b81e6c 80be5e54 00000006 00000006 800415cc 80041624 00000000 80c5e688 ff40: 00000006 80cb6480 80cb6480 80c194dc 000000f2 80c53804 80c537f8 80c19be0 ff60: 00000006 00000006 80c194dc 900ff07c ab86ff79 08012008 a806ff9c 00000000 ff80: 80631050 00000000 00000000 00000000 00000000 00000000 00000000 80631058 ffa0: 00000000 00000000 80631050 8000e118 00000000 00000000 00000000 00000000 ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 fdfe5bba dbfe26ba [<803f0594>] (imx_snvs_pwrkey_interrupt+0x10/0x4c) from [<8007363c>] (handle_irq_event_percpu+0x54/0x17c) [<8007363c>] (handle_irq_event_percpu+0x54/0x17c) from [<800737a0>] (handle_irq_event+0x3c/0x5c) [<800737a0>] (handle_irq_event+0x3c/0x5c) from [<8007646c>] (handle_fasteoi_irq+0x84/0x14c) [<8007646c>] (handle_fasteoi_irq+0x84/0x14c) from [<80072e04>] (generic_handle_irq+0x2c/0x3c) [<80072e04>] (generic_handle_irq+0x2c/0x3c) from [<8000e948>] (handle_IRQ+0x40/0x90) [<8000e948>] (handle_IRQ+0x40/0x90) from [<80008558>] (gic_handle_irq+0x2c/0x5c) [<80008558>] (gic_handle_irq+0x2c/0x5c) from [<8000dc80>] (__irq_svc+0x40/0x70) Exception stack(0xa806fda0 to 0xa806fde8) fda0: a8006b90 60000113 a806fdb8 00000007 a8006b40 a83b5340 a8006b90 00000024 fdc0: 60000113 a8006b70 00000000 00000000 000000ff a806fde8 80074b94 8063c75c fde0: 60000113 ffffffff [<8000dc80>] (__irq_svc+0x40/0x70) from [<8063c75c>] (_raw_spin_unlock_irqrestore+0x20/0x48) [<8063c75c>] (_raw_spin_unlock_irqrestore+0x20/0x48) from [<80074b94>] (__setup_irq+0x1b4/0x440) [<80074b94>] (__setup_irq+0x1b4/0x440) from [<80074f50>] (request_threaded_irq+0xa8/0x128) [<80074f50>] (request_threaded_irq+0xa8/0x128) from [<80076a40>] (devm_request_threaded_irq+0x58/0x9c) [<80076a40>] (devm_request_threaded_irq+0x58/0x9c) from [<803f0774>] (imx_snvs_pwrkey_probe+0x118/0x250) [<803f0774>] (imx_snvs_pwrkey_probe+0x118/0x250) from [<803099c0>] (platform_drv_probe+0x18/0x1c) [<803099c0>] (platform_drv_probe+0x18/0x1c) from [<8030876c>] (driver_probe_device+0x10c/0x228) [<8030876c>] (driver_probe_device+0x10c/0x228) from [<80308958>] (__driver_attach+0x8c/0x90) [<80308958>] (__driver_attach+0x8c/0x90) from [<80306c88>] (bus_for_each_dev+0x60/0x94) [<80306c88>] (bus_for_each_dev+0x60/0x94) from [<80307f30>] (bus_add_driver+0x1c0/0x24c) [<80307f30>] (bus_add_driver+0x1c0/0x24c) from [<80308f34>] (driver_register+0x78/0x140) [<80308f34>] (driver_register+0x78/0x140) from [<80008704>] (do_one_initcall+0x108/0x158) [<80008704>] (do_one_initcall+0x108/0x158) from [<80c19be0>] (kernel_init_freeable+0x138/0x1d8) [<80c19be0>] (kernel_init_freeable+0x138/0x1d8) from [<80631058>] (kernel_init+0x8/0x158) [<80631058>] (kernel_init+0x8/0x158) from [<8000e118>] (ret_from_fork+0x14/0x3c) Code: e92d4070 e2810010 ebfc5ebe e1a06000 (e5904000) ---[ end trace bd5e3234432334c1 ]--- Kernel panic - not syncing: Fatal exception in interrupt Signed-off-by: Robin Gong <b38343@freescale.com>
Diffstat (limited to 'Documentation/kernel-docs.txt')
0 files changed, 0 insertions, 0 deletions