Bug 215588

Summary: UBSAN: invalid-load in drivers/mailbox/pcc.c:684:22 - AMD Ryzen 9 5950X
Product: ACPI Reporter: Erhard F. (erhard_f)
Component: Config-TablesAssignee: acpi_config-tables
Status: RESOLVED OBSOLETE    
Severity: normal CC: mario.limonciello, rui.zhang
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 5.17-rc3 Subsystem:
Regression: No Bisected commit-id:
Attachments: kernel dmesg (kernel 5.17-rc3, AMD Ryzen 9 5950X)
kernel .config (kernel 5.17-rc3, AMD Ryzen 9 5950X)
dmesg (kernel 5.17-rc3, AMD Ryzen 9 5950X)

Description Erhard F. 2022-02-10 19:05:44 UTC
Created attachment 300428 [details]
kernel dmesg (kernel 5.17-rc3, AMD Ryzen 9 5950X)

Shows up at on my Ryzen 5950X when UBSAN is enabled.

[...]
UBSAN: invalid-load in drivers/mailbox/pcc.c:684:22
load of value 107 is not a valid value for type 'bool' (aka '_Bool')
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.17.0-rc3-Zen3 #1
Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B450M Steel Legend, BIOS P4.20 08/03/2021
Call Trace:
 <TASK>
 dump_stack_lvl+0x16c/0x218
 ? extent_err+0x43f/0x43f
 ? panic+0x5ba/0x5ba
 ? _raw_spin_unlock+0x23/0x23
 ubsan_epilogue+0x5/0x44
 __ubsan_handle_load_invalid_value+0x9e/0xa0
 pcc_mbox_probe+0x1423/0x1856
 ? pcc_chan_reg_read_modify_write+0x149/0x149
 ? kernfs_create_link+0x126/0x1a5
 ? acpi_dev_pm_attach+0x40/0x13a
 platform_probe+0xdc/0x13f
 really_probe+0x32d/0x738
 __driver_probe_device+0x147/0x22f
 driver_probe_device+0x44/0xb8
 __driver_attach+0x17b/0x1ba
 ? driver_attach+0x3a/0x3a
 bus_for_each_dev+0x157/0x1af
 ? bus_remove_file+0x98/0x98
 ? do_raw_spin_unlock+0x46/0x23c
 bus_add_driver+0x2b7/0x477
 driver_register+0x173/0x29c
 __platform_driver_probe+0x101/0x300
 __platform_create_bundle+0x9b/0xda
 ? pcc_chan_reg_read_modify_write+0x149/0x149
 pcc_init+0x59/0x88
 ? pmc_atom_init+0x5e5/0x5e5
 do_one_initcall+0x181/0x384
 ? __kmalloc+0x277/0x351
 ? do_initcalls+0x23/0x76
 ? pmc_atom_init+0x5e5/0x5e5
 ? efi_enabled+0x48/0x48
 ? rcu_read_lock_sched_held+0xc2/0x1a7
 ? perf_trace_rcu_stall_warning+0x34c/0x34c
 do_initcall_level+0x136/0x1bf
 do_initcalls+0x46/0x76
 kernel_init_freeable+0x399/0x4e6
 ? _raw_spin_unlock_irq+0x1f/0x29
 ? report_meminit+0x4a/0x4a
 ? lockdep_hardirqs_on_prepare+0x22e/0x4cd
 ? print_irqtrace_events+0x214/0x214
 ? finish_task_switch+0x116/0x4e0
 ? rest_init+0x23d/0x23d
 kernel_init+0x14/0x150
 ? rest_init+0x23d/0x23d
 ret_from_fork+0x22/0x30
 </TASK>
================================================================================
Detected 1 PCC Subspaces
Registering PCC driver as Mailbox controller
================================================================================
UBSAN: invalid-load in drivers/mailbox/mailbox.c:486:12
load of value 107 is not a valid value for type 'bool' (aka '_Bool')
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.17.0-rc3-Zen3 #1
Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B450M Steel Legend, BIOS P4.20 08/03/2021
Call Trace:
 <TASK>
 dump_stack_lvl+0x16c/0x218
 ? extent_err+0x43f/0x43f
 ? panic+0x5ba/0x5ba
 ? vprintk_emit+0x6e/0xa6
 ? _printk+0xcd/0x10d
 ubsan_epilogue+0x5/0x44
 __ubsan_handle_load_invalid_value+0x9e/0xa0
 mbox_controller_register+0x4dc/0x509
 pcc_mbox_probe+0x160d/0x1856
 ? pcc_chan_reg_read_modify_write+0x149/0x149
 ? kernfs_create_link+0x126/0x1a5
 ? acpi_dev_pm_attach+0x40/0x13a
 platform_probe+0xdc/0x13f
 really_probe+0x32d/0x738
 __driver_probe_device+0x147/0x22f
 driver_probe_device+0x44/0xb8
 __driver_attach+0x17b/0x1ba
 ? driver_attach+0x3a/0x3a
 bus_for_each_dev+0x157/0x1af
 ? bus_remove_file+0x98/0x98
 ? do_raw_spin_unlock+0x46/0x23c
 bus_add_driver+0x2b7/0x477
 driver_register+0x173/0x29c
 __platform_driver_probe+0x101/0x300
 __platform_create_bundle+0x9b/0xda
 ? pcc_chan_reg_read_modify_write+0x149/0x149
 pcc_init+0x59/0x88
 ? pmc_atom_init+0x5e5/0x5e5
 do_one_initcall+0x181/0x384
 ? __kmalloc+0x277/0x351
 ? do_initcalls+0x23/0x76
 ? pmc_atom_init+0x5e5/0x5e5
 ? efi_enabled+0x48/0x48
 ? rcu_read_lock_sched_held+0xc2/0x1a7
 ? perf_trace_rcu_stall_warning+0x34c/0x34c
 do_initcall_level+0x136/0x1bf
 do_initcalls+0x46/0x76
 kernel_init_freeable+0x399/0x4e6
 ? _raw_spin_unlock_irq+0x1f/0x29
 ? report_meminit+0x4a/0x4a
 ? lockdep_hardirqs_on_prepare+0x22e/0x4cd
 ? print_irqtrace_events+0x214/0x214
 ? finish_task_switch+0x116/0x4e0
 ? rest_init+0x23d/0x23d
 kernel_init+0x14/0x150
 ? rest_init+0x23d/0x23d
 ret_from_fork+0x22/0x30
 </TASK>
[...]
Comment 1 Erhard F. 2022-02-10 19:06:05 UTC
Created attachment 300429 [details]
kernel .config (kernel 5.17-rc3, AMD Ryzen 9 5950X)
Comment 2 Erhard F. 2022-04-18 11:51:42 UTC
Created attachment 300772 [details]
dmesg (kernel 5.17-rc3, AMD Ryzen 9 5950X)

5.18-rc3 still affected.
[...]
UBSAN: invalid-load in drivers/mailbox/pcc.c:684:22
load of value 107 is not a valid value for type 'bool' (aka '_Bool')
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.18.0-rc3-Zen3 #1
Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B450M Steel Legend, BIOS P4.20 08/03/2021
Call Trace:
 <TASK>
 dump_stack_lvl+0xe5/0x154
 __ubsan_handle_load_invalid_value+0xd2/0x110
 pcc_mbox_probe+0x20c3/0x2610
 platform_probe+0xdc/0x150
 really_probe+0x3fb/0x820
 __driver_probe_device+0x147/0x240
 driver_probe_device+0x4b/0x320
 __driver_attach+0x263/0x4f0
 ? driver_attach+0x40/0x40
 bus_for_each_dev+0xff/0x140
 bus_add_driver+0x2b7/0x480
 driver_register+0x1f5/0x330
 __platform_driver_probe+0x101/0x300
 __platform_create_bundle+0x1d8/0x210
 ? pcc_chan_reg_write+0xe0/0xe0
 pcc_init+0x59/0x88
 ? pmc_atom_init+0x4e5/0x4e5
 do_one_initcall+0x12b/0x2d0
 ? pmc_atom_init+0x4e5/0x4e5
 do_initcall_level+0x136/0x1bf
 ? kernel_init+0x14/0x1d0
 do_initcalls+0x46/0x76
 kernel_init_freeable+0x334/0x456
 ? rest_init+0x240/0x240
 kernel_init+0x14/0x1d0
 ? rest_init+0x240/0x240
 ret_from_fork+0x22/0x30
 </TASK>
================================================================================
Detected 1 PCC Subspaces
Registering PCC driver as Mailbox controller
================================================================================
UBSAN: invalid-load in drivers/mailbox/mailbox.c:486:12
load of value 107 is not a valid value for type 'bool' (aka '_Bool')
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.18.0-rc3-Zen3 #1
Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B450M Steel Legend, BIOS P4.20 08/03/2021
Call Trace:
 <TASK>
 dump_stack_lvl+0xe5/0x154
 __ubsan_handle_load_invalid_value+0xd2/0x110
 ? _printk+0x74/0x94
 mbox_controller_register+0x4e5/0x520
 pcc_mbox_probe+0x238f/0x2610
 platform_probe+0xdc/0x150
 really_probe+0x3fb/0x820
 __driver_probe_device+0x147/0x240
 driver_probe_device+0x4b/0x320
 __driver_attach+0x263/0x4f0
 ? driver_attach+0x40/0x40
 bus_for_each_dev+0xff/0x140
 bus_add_driver+0x2b7/0x480
 driver_register+0x1f5/0x330
 __platform_driver_probe+0x101/0x300
 __platform_create_bundle+0x1d8/0x210
 ? pcc_chan_reg_write+0xe0/0xe0
 pcc_init+0x59/0x88
 ? pmc_atom_init+0x4e5/0x4e5
 do_one_initcall+0x12b/0x2d0
 ? pmc_atom_init+0x4e5/0x4e5
 do_initcall_level+0x136/0x1bf
 ? kernel_init+0x14/0x1d0
 do_initcalls+0x46/0x76
 kernel_init_freeable+0x334/0x456
 ? rest_init+0x240/0x240
 kernel_init+0x14/0x1d0
 ? rest_init+0x240/0x240
 ret_from_fork+0x22/0x30
 </TASK>
Comment 3 Mario Limonciello (AMD) 2022-05-04 18:20:48 UTC
I think the same patch attached to https://bugzilla.kernel.org/show_bug.cgi?id=215587 should fix this issue too.
Comment 4 Erhard F. 2022-05-09 10:59:07 UTC
Just applied your patch on top of v5.18-rc6 and can confirm the error is fixed. Thanks!

I'll close here as soon as it lands in -rc.
Comment 5 Erhard F. 2022-06-17 14:18:15 UTC
Re-tried with v5.19-rc2. The issue is gone now. Thanks!