openbmc / linux

OpenBMC Linux kernel source tree

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

irq 32: nobody cared

zevweiss opened this issue · comments

Booting OpenBMC on a system I'm currently working on a port to, I get this (at least sometimes) during boot:

[    0.339726] irq 32: nobody cared (try booting with the "irqpoll" option)
[    0.339772] CPU: 0 PID: 1 Comm: swapper Not tainted 5.14.11-aee45db-dirty-571424b #1
[    0.339809] Hardware name: Generic DT based system
[    0.339832] Backtrace:
[    0.339866] [<807e66a4>] (dump_backtrace) from [<807e68f8>] (show_stack+0x20/0x24)
[    0.339960]  r7:00000000 r6:00000008 r5:00000000 r4:80902df4
[    0.339982] [<807e68d8>] (show_stack) from [<807f0b00>] (dump_stack+0x28/0x30)
[    0.340041] [<807f0ad8>] (dump_stack) from [<807e7880>] (__report_bad_irq+0x40/0xc0)
[    0.340094]  r5:00000000 r4:80d43180
[    0.340112] [<807e7840>] (__report_bad_irq) from [<80159c10>] (note_interrupt+0x284/0x2dc)
[    0.340193]  r9:80cbc000 r8:00000020 r7:00000000 r6:00000008 r5:00000000 r4:80d43180
[    0.340214] [<8015998c>] (note_interrupt) from [<801569d4>] (handle_irq_event+0xb4/0xc0)
[    0.340274]  r10:00000000 r9:80cbc000 r8:80d43228 r7:00000000 r6:00000008 r5:00000000
[    0.340297]  r4:80d43180 r3:00000000
[    0.340314] [<80156920>] (handle_irq_event) from [<8015acd0>] (handle_level_irq+0xac/0x180)
[    0.340374]  r5:00000000 r4:80d43180
[    0.340392] [<8015ac24>] (handle_level_irq) from [<80155fa4>] (handle_domain_irq+0x60/0x7c)
[    0.340448]  r5:00000000 r4:80b8e868
[    0.340466] [<80155f44>] (handle_domain_irq) from [<8010121c>] (avic_handle_irq+0x64/0x6c)
[    0.340530]  r7:80cbdc74 r6:ffffffff r5:80cbdc40 r4:80c02420
[    0.340549] [<801011b8>] (avic_handle_irq) from [<80100aec>] (__irq_svc+0x6c/0x90)
[    0.340595] Exception stack(0x80cbdc40 to 0x80cbdc88)
[    0.340630] dc40: 00000000 00000000 00000000 00000000 80d43180 00000000 8529db00 00000020
[    0.340664] dc60: 80d43228 60000053 00000000 80cbdcbc 00000000 80cbdc90 8015a520 80157d4c
[    0.340687] dc80: 40000053 ffffffff
[    0.340710]  r5:40000053 r4:80157d4c
[    0.340727] [<80157a0c>] (__setup_irq) from [<8015844c>] (request_threaded_irq+0xe8/0x16c)
[    0.340792]  r9:80d8cc20 r8:00000020 r7:80d43190 r6:80d43180 r5:00000000 r4:8529db00
[    0.340813] [<80158364>] (request_threaded_irq) from [<8015bd80>] (devm_request_threaded_irq+0x78/0xd0)
[    0.340884]  r10:80d40660 r9:00000000 r8:80d8cc20 r7:80d42e10 r6:00000020 r5:8044fd50
[    0.340907]  r4:8529d5a0 r3:00000080
[    0.340923] [<8015bd08>] (devm_request_threaded_irq) from [<804505c8>] (aspeed_kcs_probe+0x244/0x598)
[    0.341004]  r10:80d8cc54 r9:80833650 r8:00000000 r7:80d42e10 r6:80d8cc20 r5:00000020
[    0.341024]  r4:80d42e00
[    0.341038] [<80450384>] (aspeed_kcs_probe) from [<804e68a0>] (platform_probe+0x54/0x9c)
[    0.341115]  r10:80bab000 r9:80983e28 r8:00000000 r7:80d42e10 r6:80b6e7b0 r5:80b6e7b0
[    0.341134]  r4:80d42e10
[    0.341150] [<804e684c>] (platform_probe) from [<804e442c>] (really_probe+0x1c4/0x46c)
[    0.341206]  r5:00000000 r4:80d42e10
[    0.341225] [<804e4268>] (really_probe) from [<804e47a8>] (__driver_probe_device+0xd4/0x1bc)
[    0.341280]  r7:80d42e10 r6:80d42e10 r5:80bcb44c r4:80b6e7b0
[    0.341299] [<804e46d4>] (__driver_probe_device) from [<804e48d0>] (driver_probe_device+0x40/0xd8)
[    0.341360]  r9:80983e28 r8:00000000 r7:80d42e10 r6:80b6e7b0 r4:80bcb340
[    0.341378] [<804e4890>] (driver_probe_device) from [<804e4c34>] (__driver_attach+0xa4/0x1c8)
[    0.341438]  r9:80983e28 r8:80a2c838 r7:80b71638 r6:80b6e7b0 r5:80d42e54 r4:80d42e10
[    0.341459] [<804e4b90>] (__driver_attach) from [<804e2044>] (bus_for_each_dev+0x84/0xd0)
[    0.341517]  r7:80b71638 r6:804e4b90 r5:80b6e7b0 r4:00000000
[    0.341536] [<804e1fc0>] (bus_for_each_dev) from [<804e5360>] (driver_attach+0x28/0x30)
[    0.341590]  r6:00000000 r5:80d55000 r4:80b6e7b0
[    0.341607] [<804e5338>] (driver_attach) from [<804e29e0>] (bus_add_driver+0x114/0x200)
[    0.341660] [<804e28cc>] (bus_add_driver) from [<804e59fc>] (driver_register+0x98/0x128)
[    0.341712]  r7:00000000 r6:00000007 r5:00000000 r4:80b6e7b0
[    0.341731] [<804e5964>] (driver_register) from [<804e7b4c>] (__platform_driver_register+0x2c/0x34)
[    0.341791]  r5:80c046c0 r4:80a18c04
[    0.341809] [<804e7b20>] (__platform_driver_register) from [<80a18c24>] (ast_kcs_bmc_driver_init+0x20/0x28)
[    0.341867] [<80a18c04>] (ast_kcs_bmc_driver_init) from [<80a01408>] (do_one_initcall+0x64/0x144)
[    0.341940] [<80a013a4>] (do_one_initcall) from [<80a016e4>] (kernel_init_freeable+0x198/0x218)
[    0.342011]  r7:80a2c858 r6:00000007 r5:80c046c0 r4:80a4c8d8
[    0.342031] [<80a0154c>] (kernel_init_freeable) from [<807f0d58>] (kernel_init+0x20/0x134)
[    0.342098]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:807f0d38
[    0.342119]  r4:00000000
[    0.342134] [<807f0d38>] (kernel_init) from [<80100130>] (ret_from_fork+0x14/0x24)
[    0.342183] Exception stack(0x80cbdfb0 to 0x80cbdff8)
[    0.342214] dfa0:                                     00000000 00000000 00000000 00000000
[    0.342245] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    0.342272] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    0.342293]  r5:807f0d38 r4:00000000
[    0.342309] handlers:
[    0.342324] [<(ptrval)>] aspeed_kcs_irq
[    0.342373] Disabling IRQ #32
[    0.488475] ast-kcs-bmc 1e78902c.kcs: Initialised raw client for channel 3
[    0.489012] ast-kcs-bmc 1e78902c.kcs: Initialised IPMI client for channel 3
[    0.489086] ast-kcs-bmc 1e78902c.kcs: Initialised channel 3 at 0xca2
[    0.788903] irq 32: nobody cared (try booting with the "irqpoll" option)
[    0.788980] CPU: 0 PID: 1 Comm: swapper Not tainted 5.14.11-aee45db-dirty-571424b #1
[    0.789026] Hardware name: Generic DT based system
[    0.789049] Backtrace:
[    0.789082] [<807e66a4>] (dump_backtrace) from [<807e68f8>] (show_stack+0x20/0x24)
[    0.789170]  r7:00000000 r6:00000008 r5:00000000 r4:80902df4
[    0.789191] [<807e68d8>] (show_stack) from [<807f0b00>] (dump_stack+0x28/0x30)
[    0.789250] [<807f0ad8>] (dump_stack) from [<807e7880>] (__report_bad_irq+0x40/0xc0)
[    0.789309]  r5:00000000 r4:80d43180
[    0.789326] [<807e7840>] (__report_bad_irq) from [<80159c10>] (note_interrupt+0x284/0x2dc)
[    0.789408]  r9:80cbc000 r8:00000020 r7:00000000 r6:00000008 r5:00000000 r4:80d43180
[    0.789428] [<8015998c>] (note_interrupt) from [<801569d4>] (handle_irq_event+0xb4/0xc0)
[    0.789490]  r10:00000000 r9:80cbc000 r8:80d43228 r7:00000000 r6:00000008 r5:00000000
[    0.789514]  r4:80d43180 r3:00000400
[    0.789529] [<80156920>] (handle_irq_event) from [<8015acd0>] (handle_level_irq+0xac/0x180)
[    0.789589]  r5:00000000 r4:80d43180
[    0.789605] [<8015ac24>] (handle_level_irq) from [<80155fa4>] (handle_domain_irq+0x60/0x7c)
[    0.789662]  r5:00000000 r4:80b8e868
[    0.789682] [<80155f44>] (handle_domain_irq) from [<8010121c>] (avic_handle_irq+0x64/0x6c)
[    0.789745]  r7:80cbdc94 r6:ffffffff r5:80cbdc60 r4:80c02420
[    0.789765] [<801011b8>] (avic_handle_irq) from [<80100aec>] (__irq_svc+0x6c/0x90)
[    0.789809] Exception stack(0x80cbdc60 to 0x80cbdca8)
[    0.789844] dc60: 00000000 00000000 00000000 00000000 80d43180 8529db00 8529d1c0 00000020
[    0.789878] dc80: 80d43228 a0000053 00000000 80cbdcdc 00000400 80cbdcb0 8015a520 80157d4c
[    0.789901] dca0: 40000053 ffffffff
[    0.789923]  r5:40000053 r4:80157d4c
[    0.789940] [<80157a0c>] (__setup_irq) from [<8015844c>] (request_threaded_irq+0xe8/0x16c)
[    0.790001]  r9:8531a560 r8:00000020 r7:80d43190 r6:80d43180 r5:00000000 r4:8529d1c0
[    0.790021] [<80158364>] (request_threaded_irq) from [<8015bd80>] (devm_request_threaded_irq+0x78/0xd0)
[    0.790091]  r10:8092efe4 r9:00000000 r8:8531a560 r7:80d42c10 r6:00000020 r5:8045feb8
[    0.790114]  r4:8529dfe0 r3:00000080
[    0.790132] [<8015bd08>] (devm_request_threaded_irq) from [<804603bc>] (aspeed_lpc_snoop_probe+0x110/0x2e0)
[    0.790219]  r10:80bab000 r9:80d42c10 r8:8529d040 r7:00000000 r6:80d42c00 r5:8531a560
[    0.790239]  r4:00000000
[    0.790254] [<804602ac>] (aspeed_lpc_snoop_probe) from [<804e68a0>] (platform_probe+0x54/0x9c)
[    0.790335]  r9:80983e28 r8:00000000 r7:80d42c10 r6:80b6f3dc r5:80b6f3dc r4:80d42c10
[    0.790357] [<804e684c>] (platform_probe) from [<804e442c>] (really_probe+0x1c4/0x46c)
[    0.790409]  r5:00000000 r4:80d42c10
[    0.790426] [<804e4268>] (really_probe) from [<804e47a8>] (__driver_probe_device+0xd4/0x1bc)
[    0.790479]  r7:80d42c10 r6:80d42c10 r5:80bcb44c r4:80b6f3dc
[    0.790498] [<804e46d4>] (__driver_probe_device) from [<804e48d0>] (driver_probe_device+0x40/0xd8)
[    0.790557]  r9:80983e28 r8:00000000 r7:80d42c10 r6:80b6f3dc r4:80bcb340
[    0.790579] [<804e4890>] (driver_probe_device) from [<804e4c34>] (__driver_attach+0xa4/0x1c8)
[    0.790638]  r9:80983e28 r8:80a2c838 r7:80b71638 r6:80b6f3dc r5:80d42c54 r4:80d42c10
[    0.790660] [<804e4b90>] (__driver_attach) from [<804e2044>] (bus_for_each_dev+0x84/0xd0)
[    0.790719]  r7:80b71638 r6:804e4b90 r5:80b6f3dc r4:00000000
[    0.790737] [<804e1fc0>] (bus_for_each_dev) from [<804e5360>] (driver_attach+0x28/0x30)
[    0.790791]  r6:00000000 r5:85317a20 r4:80b6f3dc
[    0.790809] [<804e5338>] (driver_attach) from [<804e29e0>] (bus_add_driver+0x114/0x200)
[    0.790857] [<804e28cc>] (bus_add_driver) from [<804e59fc>] (driver_register+0x98/0x128)
[    0.790911]  r7:00000000 r6:00000007 r5:00000000 r4:80b6f3dc
[    0.790930] [<804e5964>] (driver_register) from [<804e7b4c>] (__platform_driver_register+0x2c/0x34)
[    0.790991]  r5:80c046c0 r4:80a1997c
[    0.791008] [<804e7b20>] (__platform_driver_register) from [<80a1999c>] (aspeed_lpc_snoop_driver_init+0x20/0x28)
[    0.791067] [<80a1997c>] (aspeed_lpc_snoop_driver_init) from [<80a01408>] (do_one_initcall+0x64/0x144)
[    0.791146] [<80a013a4>] (do_one_initcall) from [<80a016e4>] (kernel_init_freeable+0x198/0x218)
[    0.791213]  r7:80a2c858 r6:00000007 r5:80c046c0 r4:80a4c8f0
[    0.791232] [<80a0154c>] (kernel_init_freeable) from [<807f0d58>] (kernel_init+0x20/0x134)
[    0.791299]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:807f0d38
[    0.791321]  r4:00000000
[    0.791338] [<807f0d38>] (kernel_init) from [<80100130>] (ret_from_fork+0x14/0x24)
[    0.791388] Exception stack(0x80cbdfb0 to 0x80cbdff8)
[    0.791420] dfa0:                                     00000000 00000000 00000000 00000000
[    0.791452] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    0.791480] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    0.791505]  r5:807f0d38 r4:00000000
[    0.791522] handlers:
[    0.791538] [<eb36fe7a>] aspeed_kcs_irq
[    0.791599] [<49718d48>] aspeed_lpc_snoop_irq
[    0.791662] Disabling IRQ #32

I haven't dug into it at all thus far; perhaps @amboar might have some insight as to the cause?

This happens when the lpc devices are probed in a specific order. They can enable the LPC IRQ before a handler is registered.

This is the same bug as #130

Jae has posted a series that should resolve this issue. Please review and test!

https://lore.kernel.org/all/20211101233751.49222-1-jae.hyun.yoo@intel.com/