* [CXL] There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10
@ 2024-08-06 2:07 Pengfei Xu
2024-08-06 5:19 ` Li, Ming4
0 siblings, 1 reply; 3+ messages in thread
From: Pengfei Xu @ 2024-08-06 2:07 UTC (permalink / raw)
To: rrichter; +Cc: linux-cxl, dave.jiang, Jonathan.Cameron, dan.j.williams
Hi Robert Richter and CXL experts,
There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10 when
boot up CXL qemu environment.
It's a kernel tools/testing/cxl testing in qemu simulated CXL environment.
Related kconfig and dmesg are in attached of link:
https://bugzilla.kernel.org/show_bug.cgi?id=219127
It seems to be related to commit:
f05fd10d138d cxl/pci: Add RCH downstream port AER register discovery
KASAN and CXL kconfig could trigger this problem:
"
CONFIG_KASAN=y
CONFIG_KASAN_GENERIC=y
CONFIG_KASAN_INLINE=y
CONFIG_KASAN_STACK=y
CONFIG_CXL_BUS=m
CONFIG_CXL_PCI=m
CONFIG_CXL_MEM_RAW_COMMANDS=y
CONFIG_CXL_ACPI=m
CONFIG_CXL_PMEM=m
CONFIG_CXL_MEM=m
CONFIG_CXL_PORT=y
CONFIG_CXL_SUSPEND=y
CONFIG_CXL_REGION_INVALIDATION_TEST=y
CONFIG_NVDIMM_SECURITY_TEST=y
"
Dmesg info:
"
[ 24.413405] ==================================================================
[ 24.416332] BUG: KASAN: slab-out-of-bounds in cxl_setup_parent_dport+0x480/0x530 [cxl_core]
[ 24.419291] Read of size 1 at addr ff110000676014f8 by task (udev-worker)/676[ 24.424403] CPU: 2 PID: 676 Comm: (udev-worker) Tainted: G O N 6.10.0-qemucxl #1
[ 24.427232] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20240214-2.el9 02/14/2024
[ 24.430089] Call Trace:
[ 24.432534] <TASK>
[ 24.434891] dump_stack_lvl+0xea/0x150
[ 24.438131] print_report+0xce/0x610
[ 24.440498] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
[ 24.443129] ? kasan_complete_mode_report_info+0x40/0x200
[ 24.445602] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
[ 24.448221] kasan_report+0xcc/0x110
[ 24.450527] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
[ 24.453140] __asan_report_load1_noabort+0x18/0x20
[ 24.455455] cxl_setup_parent_dport+0x480/0x530 [cxl_core]
[ 24.457986] cxl_mem_probe+0x49b/0xaa0 [cxl_mem]
[ 24.460285] ? __pfx_cxl_mem_probe+0x10/0x10 [cxl_mem]
[ 24.462592] ? sysfs_create_link+0x75/0xd0
[ 24.464775] cxl_bus_probe+0x5e/0xc0 [cxl_core]
[ 24.467153] ? __pfx_cxl_bus_probe+0x10/0x10 [cxl_core]
[ 24.469632] really_probe+0x27c/0xac0
[ 24.471750] ? __sanitizer_cov_trace_const_cmp1+0x1e/0x30
[ 24.474087] __driver_probe_device+0x1f3/0x460
[ 24.476288] ? parse_option_str+0x149/0x190
[ 24.478435] driver_probe_device+0x56/0x1b0
[ 24.480543] __device_attach_driver+0x1e7/0x300
[ 24.482682] bus_for_each_drv+0x159/0x1e0
[ 24.484818] ? __pfx___device_attach_driver+0x10/0x10
[ 24.486935] ? __pfx_bus_for_each_drv+0x10/0x10
[ 24.489037] ? _raw_spin_unlock_irqrestore+0x45/0x70
[ 24.491097] __device_attach+0x215/0x4f0
[ 24.493055] ? __pfx___device_attach+0x10/0x10
[ 24.495032] ? do_raw_spin_unlock+0x15c/0x210
[ 24.497020] device_initial_probe+0x24/0x30
[ 24.498922] bus_probe_device+0x18e/0x1d0
[ 24.500732] device_add+0x11b6/0x1b60
[ 24.502485] ? __pfx_device_add+0x10/0x10
[ 24.504275] ? __pfx_exact_lock+0x10/0x10
[ 24.506063] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
[ 24.507931] ? kobject_get+0xc5/0x160
[ 24.509619] cdev_device_add+0x13c/0x280
[ 24.511319] devm_cxl_add_memdev+0x547/0x6f0 [cxl_core]
[ 24.513287] cxl_mock_mem_probe+0xf1d/0x1d30 [cxl_mock_mem]
[ 24.515133] ? __pfx_cxl_mock_mem_probe+0x10/0x10 [cxl_mock_mem]
[ 24.516998] platform_probe+0x10a/0x200
[ 24.518813] ? __pfx_platform_probe+0x10/0x10
[ 24.520638] really_probe+0x27c/0xac0
[ 24.522340] ? __sanitizer_cov_trace_const_cmp1+0x1e/0x30
[ 24.524194] __driver_probe_device+0x1f3/0x460
[ 24.525972] ? parse_option_str+0x149/0x190
[ 24.527763] driver_probe_device+0x56/0x1b0
[ 24.529555] __driver_attach+0x277/0x570
[ 24.531278] ? __pfx___driver_attach+0x10/0x10
[ 24.532912] bus_for_each_dev+0x142/0x1e0
[ 24.534474] ? __pfx_bus_for_each_dev+0x10/0x10
[ 24.536094] ? _raw_spin_unlock+0x31/0x60
[ 24.537676] driver_attach+0x49/0x60
[ 24.539220] bus_add_driver+0x2f3/0x6b0
[ 24.540781] driver_register+0x170/0x4b0
[ 24.542334] ? __pfx_cxl_mock_mem_driver_init+0x10/0x10 [cxl_mock_mem]
[ 24.544104] __platform_driver_register+0x66/0x80
[ 24.545782] ? __pfx_cxl_mock_mem_driver_init+0x10/0x10 [cxl_mock_mem]
[ 24.547579] cxl_mock_mem_driver_init+0x25/0xff0 [cxl_mock_mem]
[ 24.549362] do_one_initcall+0x114/0x5d0
[ 24.550991] ? __pfx_do_one_initcall+0x10/0x10
[ 24.552593] ? __kasan_kmalloc+0x88/0xa0
[ 24.554089] ? kasan_poison+0x3e/0x60
[ 24.555511] ? kasan_unpoison+0x2c/0x60
[ 24.557076] ? kasan_poison+0x3e/0x60
[ 24.558573] ? __asan_register_globals+0x62/0x80
[ 24.560188] ? __pfx_cxl_mock_mem_driver_init+0x10/0x10 [cxl_mock_mem]
[ 24.562019] do_init_module+0x277/0x750
[ 24.563556] load_module+0x5d1d/0x74f0
[ 24.565124] ? __pfx_load_module+0x10/0x10
[ 24.566656] ? __pfx_ima_post_read_file+0x10/0x10
[ 24.568235] ? __sanitizer_cov_trace_const_cmp8+0x1c/0x30
[ 24.569875] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
[ 24.571521] ? security_kernel_post_read_file+0xa2/0xd0
[ 24.573189] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
[ 24.574851] ? kernel_read_file+0x503/0x820
[ 24.576441] ? __pfx_kernel_read_file+0x10/0x10
[ 24.577887] ? __pfx___lock_acquire+0x10/0x10
[ 24.579390] init_module_from_file+0x12c/0x1a0
[ 24.580988] ? init_module_from_file+0x12c/0x1a0
[ 24.582575] ? __pfx_init_module_from_file+0x10/0x10
[ 24.584234] ? __this_cpu_preempt_check+0x21/0x30
[ 24.585831] ? do_raw_spin_unlock+0x15c/0x210
[ 24.587460] idempotent_init_module+0x3f1/0x690
[ 24.589126] ? __pfx_idempotent_init_module+0x10/0x10
[ 24.590808] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
[ 24.592513] ? __fget_light+0x17d/0x210
[ 24.594058] __x64_sys_finit_module+0x10e/0x1a0
[ 24.595643] x64_sys_call+0x137a/0x20d0
[ 24.597160] do_syscall_64+0x6d/0x140
[ 24.598688] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 24.600350] RIP: 0033:0x7fbac6f3185d
[ 24.601923] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d a3 45 0c 00 f7 d8 64 89 01 48
[ 24.606145] RSP: 002b:00007ffd13414db8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 24.608143] RAX: ffffffffffffffda RBX: 0000564200192ca0 RCX: 00007fbac6f3185d
[ 24.610130] RDX: 0000000000000000 RSI: 00007fbac758707d RDI: 0000000000000006
[ 24.612106] RBP: 00007ffd13414e70 R08: 0000000000000000 R09: 00007ffd13414e00
[ 24.614112] R10: 0000000000000006 R11: 0000000000000246 R12: 00007fbac758707d
[ 24.616113] R13: 0000000000020000 R14: 0000564200159890 R15: 0000564200195a20
[ 24.618182] </TASK>[ 24.621370] Allocated by task 615:
[ 24.623062] kasan_save_stack+0x2c/0x60
[ 24.624851] kasan_save_track+0x18/0x40
[ 24.626603] kasan_save_alloc_info+0x3c/0x50
[ 24.628411] __kasan_kmalloc+0x88/0xa0
[ 24.630155] __kmalloc_noprof+0x1dd/0x4a0
[ 24.631899] platform_device_alloc+0x3a/0x230
[ 24.633595] fq_codel_reset+0x6c/0x370 [sch_fq_codel]
[ 24.635477] do_one_initcall+0x114/0x5d0
[ 24.637164] do_init_module+0x277/0x750
[ 24.638818] load_module+0x5d1d/0x74f0
[ 24.640483] init_module_from_file+0x12c/0x1a0
[ 24.642214] idempotent_init_module+0x3f1/0x690
[ 24.644013] __x64_sys_finit_module+0x10e/0x1a0
[ 24.645772] x64_sys_call+0x137a/0x20d0
[ 24.647459] do_syscall_64+0x6d/0x140
[ 24.649117] entry_SYSCALL_64_after_hwframe+0x76/0x7e[ 24.652407] The buggy address belongs to the object at ff11000067601000
which belongs to the cache kmalloc-2k of size 2048
[ 24.656105] The buggy address is located 23 bytes to the right of
allocated 1249-byte region [ff11000067601000, ff110000676014e1)[ 24.661503] The buggy address belongs to the physical page:
[ 24.663371] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x67600
[ 24.665505] head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
[ 24.667605] flags: 0xfffffc0000040(head|node=0|zone=1|lastcpupid=0x1fffff)
[ 24.669656] page_type: 0xffffefff(slab)
[ 24.671471] raw: 000fffffc0000040 ff1100000d83d200 dead000000000122 0000000000000000
[ 24.673568] raw: 0000000000000000 0000000000080008 00000001ffffefff 0000000000000000
[ 24.675767] head: 000fffffc0000040 ff1100000d83d200 dead000000000122 0000000000000000
[ 24.678014] head: 0000000000000000 0000000000080008 00000001ffffefff 0000000000000000
[ 24.680121] head: 000fffffc0000003 ffd40000019d8001 ffffffffffffffff 0000000000000000
[ 24.682313] head: 0000000000000008 0000000000000000 00000000ffffffff 0000000000000000
[ 24.684465] page dumped because: kasan: bad access detected[ 24.688127] Memory state around the buggy address:
[ 24.690046] ff11000067601380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 24.692171] ff11000067601400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 24.694384] >ff11000067601480: 00 00 00 00 00 00 00 00 00 00 00 00 01 fc fc fc
[ 24.696415] ^
[ 24.698485] ff11000067601500: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 24.700609] ff11000067601580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 24.702598] ==================================================================
"
I hope it's helpful.
Best Regards,
Thanks!
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [CXL] There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10
2024-08-06 2:07 [CXL] There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10 Pengfei Xu
@ 2024-08-06 5:19 ` Li, Ming4
2024-08-06 7:38 ` Pengfei Xu
0 siblings, 1 reply; 3+ messages in thread
From: Li, Ming4 @ 2024-08-06 5:19 UTC (permalink / raw)
To: Pengfei Xu, rrichter
Cc: linux-cxl, dave.jiang, Jonathan.Cameron, dan.j.williams
On 8/6/2024 10:07 AM, Pengfei Xu wrote:
> Hi Robert Richter and CXL experts,
>
> There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10 when
> boot up CXL qemu environment.
>
> It's a kernel tools/testing/cxl testing in qemu simulated CXL environment.
>
> Related kconfig and dmesg are in attached of link:
> https://bugzilla.kernel.org/show_bug.cgi?id=219127
>
> It seems to be related to commit:
> f05fd10d138d cxl/pci: Add RCH downstream port AER register discovery
>
> KASAN and CXL kconfig could trigger this problem:
> "
> CONFIG_KASAN=y
> CONFIG_KASAN_GENERIC=y
> CONFIG_KASAN_INLINE=y
> CONFIG_KASAN_STACK=y
>
> CONFIG_CXL_BUS=m
> CONFIG_CXL_PCI=m
> CONFIG_CXL_MEM_RAW_COMMANDS=y
> CONFIG_CXL_ACPI=m
> CONFIG_CXL_PMEM=m
> CONFIG_CXL_MEM=m
> CONFIG_CXL_PORT=y
> CONFIG_CXL_SUSPEND=y
> CONFIG_CXL_REGION_INVALIDATION_TEST=y
> CONFIG_NVDIMM_SECURITY_TEST=y
> "
>
> Dmesg info:
> "
> [ 24.413405] ==================================================================
> [ 24.416332] BUG: KASAN: slab-out-of-bounds in cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> [ 24.419291] Read of size 1 at addr ff110000676014f8 by task (udev-worker)/676[ 24.424403] CPU: 2 PID: 676 Comm: (udev-worker) Tainted: G O N 6.10.0-qemucxl #1
> [ 24.427232] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20240214-2.el9 02/14/2024
> [ 24.430089] Call Trace:
> [ 24.432534] <TASK>
> [ 24.434891] dump_stack_lvl+0xea/0x150
> [ 24.438131] print_report+0xce/0x610
> [ 24.440498] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> [ 24.443129] ? kasan_complete_mode_report_info+0x40/0x200
> [ 24.445602] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> [ 24.448221] kasan_report+0xcc/0x110
> [ 24.450527] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> [ 24.453140] __asan_report_load1_noabort+0x18/0x20
> [ 24.455455] cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> [ 24.457986] cxl_mem_probe+0x49b/0xaa0 [cxl_mem]
> [ 24.460285] ? __pfx_cxl_mem_probe+0x10/0x10 [cxl_mem]
> [ 24.462592] ? sysfs_create_link+0x75/0xd0
> [ 24.464775] cxl_bus_probe+0x5e/0xc0 [cxl_core]
> [ 24.467153] ? __pfx_cxl_bus_probe+0x10/0x10 [cxl_core]
> [ 24.469632] really_probe+0x27c/0xac0
> [ 24.471750] ? __sanitizer_cov_trace_const_cmp1+0x1e/0x30
> [ 24.474087] __driver_probe_device+0x1f3/0x460
> [ 24.476288] ? parse_option_str+0x149/0x190
> [ 24.478435] driver_probe_device+0x56/0x1b0
> [ 24.480543] __device_attach_driver+0x1e7/0x300
> [ 24.482682] bus_for_each_drv+0x159/0x1e0
> [ 24.484818] ? __pfx___device_attach_driver+0x10/0x10
> [ 24.486935] ? __pfx_bus_for_each_drv+0x10/0x10
> [ 24.489037] ? _raw_spin_unlock_irqrestore+0x45/0x70
> [ 24.491097] __device_attach+0x215/0x4f0
> [ 24.493055] ? __pfx___device_attach+0x10/0x10
> [ 24.495032] ? do_raw_spin_unlock+0x15c/0x210
> [ 24.497020] device_initial_probe+0x24/0x30
> [ 24.498922] bus_probe_device+0x18e/0x1d0
> [ 24.500732] device_add+0x11b6/0x1b60
> [ 24.502485] ? __pfx_device_add+0x10/0x10
> [ 24.504275] ? __pfx_exact_lock+0x10/0x10
> [ 24.506063] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
> [ 24.507931] ? kobject_get+0xc5/0x160
> [ 24.509619] cdev_device_add+0x13c/0x280
> [ 24.511319] devm_cxl_add_memdev+0x547/0x6f0 [cxl_core]
> [ 24.513287] cxl_mock_mem_probe+0xf1d/0x1d30 [cxl_mock_mem]
> [ 24.515133] ? __pfx_cxl_mock_mem_probe+0x10/0x10 [cxl_mock_mem]
> [ 24.516998] platform_probe+0x10a/0x200
> [ 24.518813] ? __pfx_platform_probe+0x10/0x10
> [ 24.520638] really_probe+0x27c/0xac0
> [ 24.522340] ? __sanitizer_cov_trace_const_cmp1+0x1e/0x30
> [ 24.524194] __driver_probe_device+0x1f3/0x460
> [ 24.525972] ? parse_option_str+0x149/0x190
> [ 24.527763] driver_probe_device+0x56/0x1b0
> [ 24.529555] __driver_attach+0x277/0x570
> [ 24.531278] ? __pfx___driver_attach+0x10/0x10
> [ 24.532912] bus_for_each_dev+0x142/0x1e0
> [ 24.534474] ? __pfx_bus_for_each_dev+0x10/0x10
> [ 24.536094] ? _raw_spin_unlock+0x31/0x60
> [ 24.537676] driver_attach+0x49/0x60
> [ 24.539220] bus_add_driver+0x2f3/0x6b0
> [ 24.540781] driver_register+0x170/0x4b0
> [ 24.542334] ? __pfx_cxl_mock_mem_driver_init+0x10/0x10 [cxl_mock_mem]
> [ 24.544104] __platform_driver_register+0x66/0x80
> [ 24.545782] ? __pfx_cxl_mock_mem_driver_init+0x10/0x10 [cxl_mock_mem]
> [ 24.547579] cxl_mock_mem_driver_init+0x25/0xff0 [cxl_mock_mem]
> [ 24.549362] do_one_initcall+0x114/0x5d0
> [ 24.550991] ? __pfx_do_one_initcall+0x10/0x10
> [ 24.552593] ? __kasan_kmalloc+0x88/0xa0
> [ 24.554089] ? kasan_poison+0x3e/0x60
> [ 24.555511] ? kasan_unpoison+0x2c/0x60
> [ 24.557076] ? kasan_poison+0x3e/0x60
> [ 24.558573] ? __asan_register_globals+0x62/0x80
> [ 24.560188] ? __pfx_cxl_mock_mem_driver_init+0x10/0x10 [cxl_mock_mem]
> [ 24.562019] do_init_module+0x277/0x750
> [ 24.563556] load_module+0x5d1d/0x74f0
> [ 24.565124] ? __pfx_load_module+0x10/0x10
> [ 24.566656] ? __pfx_ima_post_read_file+0x10/0x10
> [ 24.568235] ? __sanitizer_cov_trace_const_cmp8+0x1c/0x30
> [ 24.569875] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
> [ 24.571521] ? security_kernel_post_read_file+0xa2/0xd0
> [ 24.573189] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
> [ 24.574851] ? kernel_read_file+0x503/0x820
> [ 24.576441] ? __pfx_kernel_read_file+0x10/0x10
> [ 24.577887] ? __pfx___lock_acquire+0x10/0x10
> [ 24.579390] init_module_from_file+0x12c/0x1a0
> [ 24.580988] ? init_module_from_file+0x12c/0x1a0
> [ 24.582575] ? __pfx_init_module_from_file+0x10/0x10
> [ 24.584234] ? __this_cpu_preempt_check+0x21/0x30
> [ 24.585831] ? do_raw_spin_unlock+0x15c/0x210
> [ 24.587460] idempotent_init_module+0x3f1/0x690
> [ 24.589126] ? __pfx_idempotent_init_module+0x10/0x10
> [ 24.590808] ? __sanitizer_cov_trace_const_cmp4+0x1a/0x20
> [ 24.592513] ? __fget_light+0x17d/0x210
> [ 24.594058] __x64_sys_finit_module+0x10e/0x1a0
> [ 24.595643] x64_sys_call+0x137a/0x20d0
> [ 24.597160] do_syscall_64+0x6d/0x140
> [ 24.598688] entry_SYSCALL_64_after_hwframe+0x76/0x7e
> [ 24.600350] RIP: 0033:0x7fbac6f3185d
> [ 24.601923] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d a3 45 0c 00 f7 d8 64 89 01 48
> [ 24.606145] RSP: 002b:00007ffd13414db8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
> [ 24.608143] RAX: ffffffffffffffda RBX: 0000564200192ca0 RCX: 00007fbac6f3185d
> [ 24.610130] RDX: 0000000000000000 RSI: 00007fbac758707d RDI: 0000000000000006
> [ 24.612106] RBP: 00007ffd13414e70 R08: 0000000000000000 R09: 00007ffd13414e00
> [ 24.614112] R10: 0000000000000006 R11: 0000000000000246 R12: 00007fbac758707d
> [ 24.616113] R13: 0000000000020000 R14: 0000564200159890 R15: 0000564200195a20
> [ 24.618182] </TASK>[ 24.621370] Allocated by task 615:
> [ 24.623062] kasan_save_stack+0x2c/0x60
> [ 24.624851] kasan_save_track+0x18/0x40
> [ 24.626603] kasan_save_alloc_info+0x3c/0x50
> [ 24.628411] __kasan_kmalloc+0x88/0xa0
> [ 24.630155] __kmalloc_noprof+0x1dd/0x4a0
> [ 24.631899] platform_device_alloc+0x3a/0x230
> [ 24.633595] fq_codel_reset+0x6c/0x370 [sch_fq_codel]
> [ 24.635477] do_one_initcall+0x114/0x5d0
> [ 24.637164] do_init_module+0x277/0x750
> [ 24.638818] load_module+0x5d1d/0x74f0
> [ 24.640483] init_module_from_file+0x12c/0x1a0
> [ 24.642214] idempotent_init_module+0x3f1/0x690
> [ 24.644013] __x64_sys_finit_module+0x10e/0x1a0
> [ 24.645772] x64_sys_call+0x137a/0x20d0
> [ 24.647459] do_syscall_64+0x6d/0x140
> [ 24.649117] entry_SYSCALL_64_after_hwframe+0x76/0x7e[ 24.652407] The buggy address belongs to the object at ff11000067601000
> which belongs to the cache kmalloc-2k of size 2048
> [ 24.656105] The buggy address is located 23 bytes to the right of
> allocated 1249-byte region [ff11000067601000, ff110000676014e1)[ 24.661503] The buggy address belongs to the physical page:
> [ 24.663371] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x67600
> [ 24.665505] head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
> [ 24.667605] flags: 0xfffffc0000040(head|node=0|zone=1|lastcpupid=0x1fffff)
> [ 24.669656] page_type: 0xffffefff(slab)
> [ 24.671471] raw: 000fffffc0000040 ff1100000d83d200 dead000000000122 0000000000000000
> [ 24.673568] raw: 0000000000000000 0000000000080008 00000001ffffefff 0000000000000000
> [ 24.675767] head: 000fffffc0000040 ff1100000d83d200 dead000000000122 0000000000000000
> [ 24.678014] head: 0000000000000000 0000000000080008 00000001ffffefff 0000000000000000
> [ 24.680121] head: 000fffffc0000003 ffd40000019d8001 ffffffffffffffff 0000000000000000
> [ 24.682313] head: 0000000000000008 0000000000000000 00000000ffffffff 0000000000000000
> [ 24.684465] page dumped because: kasan: bad access detected[ 24.688127] Memory state around the buggy address:
> [ 24.690046] ff11000067601380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> [ 24.692171] ff11000067601400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> [ 24.694384] >ff11000067601480: 00 00 00 00 00 00 00 00 00 00 00 00 01 fc fc fc
> [ 24.696415] ^
> [ 24.698485] ff11000067601500: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
> [ 24.700609] ff11000067601580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
> [ 24.702598] ==================================================================
> "
>
> I hope it's helpful.
>
> Best Regards,
> Thanks!
>
Hi Pengfei,
I can reproduce it on my environment with your configuration. I confirm the bug is the same as the bug I hit recently, I have sent out a patch for review, the link is https://lore.kernel.org/linux-cxl/20240806041547.1958787-1-ming4.li@intel.com/T/#u
the root cause is that cxl-test module creates an RCH topology, and using platform_device to create RCH downstream port in the RCH topology. There is a wrong pci_host_bridge got from to_pci_host_bridge(dport->dport_dev) in cxl_setup_parent_dport().
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [CXL] There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10
2024-08-06 5:19 ` Li, Ming4
@ 2024-08-06 7:38 ` Pengfei Xu
0 siblings, 0 replies; 3+ messages in thread
From: Pengfei Xu @ 2024-08-06 7:38 UTC (permalink / raw)
To: Li, Ming4
Cc: rrichter, linux-cxl, dave.jiang, Jonathan.Cameron, dan.j.williams
Hi Ming,
On 2024-08-06 at 13:19:13 +0800, Li, Ming4 wrote:
> On 8/6/2024 10:07 AM, Pengfei Xu wrote:
> > Hi Robert Richter and CXL experts,
> >
> > There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10 when
> > boot up CXL qemu environment.
> >
> > It's a kernel tools/testing/cxl testing in qemu simulated CXL environment.
> >
> > Related kconfig and dmesg are in attached of link:
> > https://bugzilla.kernel.org/show_bug.cgi?id=219127
> >
> > It seems to be related to commit:
> > f05fd10d138d cxl/pci: Add RCH downstream port AER register discovery
> >
> > KASAN and CXL kconfig could trigger this problem:
> > "
> > CONFIG_KASAN=y
> > CONFIG_KASAN_GENERIC=y
> > CONFIG_KASAN_INLINE=y
> > CONFIG_KASAN_STACK=y
> >
> > CONFIG_CXL_BUS=m
> > CONFIG_CXL_PCI=m
> > CONFIG_CXL_MEM_RAW_COMMANDS=y
> > CONFIG_CXL_ACPI=m
> > CONFIG_CXL_PMEM=m
> > CONFIG_CXL_MEM=m
> > CONFIG_CXL_PORT=y
> > CONFIG_CXL_SUSPEND=y
> > CONFIG_CXL_REGION_INVALIDATION_TEST=y
> > CONFIG_NVDIMM_SECURITY_TEST=y
> > "
> >
> > Dmesg info:
> > "
> > [ 24.413405] ==================================================================
> > [ 24.416332] BUG: KASAN: slab-out-of-bounds in cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> > [ 24.419291] Read of size 1 at addr ff110000676014f8 by task (udev-worker)/676[ 24.424403] CPU: 2 PID: 676 Comm: (udev-worker) Tainted: G O N 6.10.0-qemucxl #1
> > [ 24.427232] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20240214-2.el9 02/14/2024
> > [ 24.430089] Call Trace:
> > [ 24.432534] <TASK>
> > [ 24.434891] dump_stack_lvl+0xea/0x150
> > [ 24.438131] print_report+0xce/0x610
> > [ 24.440498] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> > [ 24.443129] ? kasan_complete_mode_report_info+0x40/0x200
> > [ 24.445602] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> > [ 24.448221] kasan_report+0xcc/0x110
> > [ 24.450527] ? cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> > [ 24.453140] __asan_report_load1_noabort+0x18/0x20
> > [ 24.455455] cxl_setup_parent_dport+0x480/0x530 [cxl_core]
> > [ 24.457986] cxl_mem_probe+0x49b/0xaa0 [cxl_mem]
> > [ 24.460285] ? __pfx_cxl_mem_probe+0x10/0x10 [cxl_mem]
> > [ 24.462592] ? sysfs_create_link+0x75/0xd0
> > [ 24.464775] cxl_bus_probe+0x5e/0xc0 [cxl_core]
> > [ 24.467153] ? __pfx_cxl_bus_probe+0x10/0x10 [cxl_core]
> > [ 24.469632] really_probe+0x27c/0xac0
> > [ 24.471750] ? __sanitizer_cov_trace_const_cmp1+0x1e/0x30
> > [ 24.474087] __driver_probe_device+0x1f3/0x460
> >
> Hi Pengfei,
>
> I can reproduce it on my environment with your configuration. I confirm the bug is the same as the bug I hit recently, I have sent out a patch for review, the link is https://lore.kernel.org/linux-cxl/20240806041547.1958787-1-ming4.li@intel.com/T/#u
>
> the root cause is that cxl-test module creates an RCH topology, and using platform_device to create RCH downstream port in the RCH topology. There is a wrong pci_host_bridge got from to_pci_host_bridge(dport->dport_dev) in cxl_setup_parent_dport().
>
Thanks for your patch, I verified that this issue was fixed by your patch
based on v6.10.
Fixed dmesg is attached in link: https://bugzilla.kernel.org/show_bug.cgi?id=219127
Thanks!
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-08-06 7:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-06 2:07 [CXL] There is BUG: slab-out-of-bounds in cxl_setup_parent_dport in v6.10 Pengfei Xu
2024-08-06 5:19 ` Li, Ming4
2024-08-06 7:38 ` Pengfei Xu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox