Description |
The following kernel null pointer dereference noticed while running Kunit kunit_try_catch testing as a part of boot pass on qemu-x86_64
<6>[ 106.535075] ok 21 kunit_device
<6>[ 106.535642] KTAP version 1
<6>[ 106.535950] # Subtest: kunit_fault
<6>[ 106.536158] # module: kunit_test
<6>[ 106.536215] 1..1
<4>[ 106.541461] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN PTI
<1>[ 106.542268] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
<4>[ 106.542787] CPU: 0 UID: 0 PID: 552 Comm: kunit_try_catch Tainted: G B N 6.15.8-rc1 #1 PREEMPT(voluntary)
<4>[ 106.543244] Tainted: [B]=BAD_PAGE, [N]=TEST
<4>[ 106.543405] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
<4>[ 106.543830] RIP: 0010:kunit_test_null_dereference+0x52/0x160
<4>[ 106.544135] Code: 04 48 83 ec 60 48 c7 45 90 b3 8a b5 41 48 c7 45 98 dc c8 fc b0 48 c7 45 a0 90 7a 80 ad c7 02 f1 f1 f1 f1 c7 42 04 01 f3 f3 f3 <0f> b6 00 65 48 8b 15 1b 85 d8 04 48 89 55 e8 31 d2 84 c0 74 08 3c
<4>[ 106.545012] RSP: 0000:ffff888104e4fdd0 EFLAGS: 00010282
<4>[ 106.545294] RAX: dffffc0000000000 RBX: ffff88810031fae8 RCX: ffff888103296498
<4>[ 106.545676] RDX: ffffed10209c9fba RSI: 0000000000000008 RDI: ffff88810031fae8
<4>[ 106.546246] RBP: ffff888104e4fe40 R08: 0000000000000000 R09: ffffed102029d480
<4>[ 106.546633] R10: ffff8881014ea407 R11: 0000000000000000 R12: 1ffff110209c9fba
<4>[ 106.546943] R13: ffffffffad807a90 R14: ffff888102d8fad8 R15: ffff8881014ea400
<4>[ 106.547338] FS: 0000000000000000(0000) GS:ffff8881a8a90000(0000) knlGS:0000000000000000
<4>[ 106.547608] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4>[ 106.547797] CR2: dffffc0000000000 CR3: 000000002a6ba000 CR4: 00000000000006f0
<4>[ 106.548073] DR0: ffffffffb2633900 DR1: ffffffffb2633901 DR2: ffffffffb2633902
<4>[ 106.548421] DR3: ffffffffb2633903 DR6: 00000000ffff0ff0 DR7: 0000000000000600
<4>[ 106.548802] Call Trace:
<4>[ 106.549132] <TASK>
<4>[ 106.549257] ? __pfx_kunit_test_null_dereference+0x10/0x10
<4>[ 106.549550] ? __kasan_check_read+0x15/0x20
<4>[ 106.549701] ? __kthread_parkme+0x8f/0x180
<4>[ 106.549851] kunit_generic_run_threadfn_adapter+0x85/0xf0
<4>[ 106.550126] ? __pfx_kunit_generic_run_threadfn_adapter+0x10/0x10
<4>[ 106.550417] kthread+0x337/0x6f0
<4>[ 106.550621] ? trace_preempt_on+0x20/0xc0
<4>[ 106.550766] ? __pfx_kthread+0x10/0x10
<4>[ 106.551204] ? _raw_spin_unlock_irq+0x47/0x80
<4>[ 106.551584] ? calculate_sigpending+0x7b/0xa0
<4>[ 106.551960] ? __pfx_kthread+0x10/0x10
<4>[ 106.552185] ret_from_fork+0x41/0x80
<4>[ 106.552341] ? __pfx_kthread+0x10/0x10
<4>[ 106.552475] ret_from_fork_asm+0x1a/0x30
<4>[ 106.552626] </TASK>
<4>[ 106.552769] Modules linked in:
<4>[ 106.553487] ---[ end trace 0000000000000000 ]---
<4>[ 106.554145] RIP: 0010:kunit_test_null_dereference+0x52/0x160
<4>[ 106.554550] Code: 04 48 83 ec 60 48 c7 45 90 b3 8a b5 41 48 c7 45 98 dc c8 fc b0 48 c7 45 a0 90 7a 80 ad c7 02 f1 f1 f1 f1 c7 42 04 01 f3 f3 f3 <0f> b6 00 65 48 8b 15 1b 85 d8 04 48 89 55 e8 31 d2 84 c0 74 08 3c
<4>[ 106.555899] RSP: 0000:ffff888104e4fdd0 EFLAGS: 00010282
<4>[ 106.556151] RAX: dffffc0000000000 RBX: ffff88810031fae8 RCX: ffff888103296498
<4>[ 106.556488] RDX: ffffed10209c9fba RSI: 0000000000000008 RDI: ffff88810031fae8
<4>[ 106.556896] RBP: ffff888104e4fe40 R08: 0000000000000000 R09: ffffed102029d480
<4>[ 106.557183] R10: ffff8881014ea407 R11: 0000000000000000 R12: 1ffff110209c9fba
<4>[ 106.558009] R13: ffffffffad807a90 R14: ffff888102d8fad8 R15: ffff8881014ea400
<4>[ 106.558651] FS: 0000000000000000(0000) GS:ffff8881a8a90000(0000) knlGS:0000000000000000
<4>[ 106.559395] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4>[ 106.560044] CR2: dffffc0000000000 CR3: 000000002a6ba000 CR4: 00000000000006f0
<4>[ 106.560354] DR0: ffffffffb2633900 DR1: ffffffffb2633901 DR2: ffffffffb2633902
<4>[ 106.560643] DR3: ffffffffb2633903 DR6: 00000000ffff0ff0 DR7: 0000000000000600
<3>[ 106.561658] # kunit_test_fault_null_dereference: try faulted: last line seen lib/kunit/kunit-test.c:95
<6>[ 106.564424] ok 1 kunit_test_fault_null_dereference
<6>[ 106.564512] ok 22 kunit_fault
<6>[ 106.565540] KTAP version 1
<6>[ 106.565829] # Subtest: kunit_platform_device
<6>[ 106.566021] # module: platform_test
<6>[ 106.566077] 1..4
<6>[ 106.570178] ok 1 kunit_platform_device_alloc_test
<6>[ 106.573821] ok 2 kunit_platform_device_add_test
<4>[ 106.576840] sysfs: cannot create duplicate filename '/devices/platform/kunit-platform-add-2'
<4>[ 106.577476] CPU: 0 UID: 0 PID: 558 Comm: kunit_try_catch Tainted: G B D N 6.15.8-rc1 #1 PREEMPT(voluntary)
<4>[ 106.577521] Tainted: [B]=BAD_PAGE, [D]=DIE, [N]=TEST
<4>[ 106.577532] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
<4>[ 106.577556] Call Trace:
<4>[ 106.577570] <TASK>
<4>[ 106.577588] dump_stack_lvl+0x96/0xb0
<4>[ 106.577631] dump_stack+0x14/0x20
<4>[ 106.577649] sysfs_warn_dup+0x7a/0xa0
<4>[ 106.577672] sysfs_create_dir_ns+0x20a/0x290
<4>[ 106.577692] ? __pfx_sysfs_create_dir_ns+0x10/0x10
<4>[ 106.577777] ? __kasan_check_write+0x18/0x20
<4>[ 106.577800] ? __pfx__raw_spin_lock+0x10/0x10
<4>[ 106.577823] ? trace_preempt_on+0x20/0xc0
<4>[ 106.577846] ? kobject_add_internal+0x1c3/0x9b0
<4>[ 106.577872] kobject_add_internal+0x222/0x9b0
<4>[ 106.577897] kobject_add+0x136/0x200
<4>[ 106.577916] ? kasan_save_track+0x18/0x40
<4>[ 106.577937] ? __pfx_kobject_add+0x10/0x10
<4>[ 106.577961] ? __kmalloc_cache_noprof+0x189/0x420
<4>[ 106.577988] device_add+0x23c/0x1820
<4>[ 106.578014] ? __pfx_device_add+0x10/0x10
<4>[ 106.578035] ? _raw_spin_unlock_irqrestore+0x5f/0x90
<4>[ 106.578056] ? trace_preempt_on+0x20/0xc0
<4>[ 106.578076] ? __kunit_add_resource+0x154/0x220
<4>[ 106.578096] ? preempt_count_sub+0x50/0x80
<4>[ 106.578122] platform_device_add+0x397/0x6f0
<4>[ 106.578150] kunit_platform_device_add+0x28/0x2f0
<4>[ 106.578172] ? finish_task_switch.isra.0+0x153/0x700
<4>[ 106.578196] kunit_platform_device_add_twice_fails_test+0x20a/0x460
<4>[ 106.578232] ? finish_task_switch.isra.0+0x153/0x700
<4>[ 106.578254] ? __pfx_kunit_platform_device_add_twice_fails_test+0x10/0x10
<4>[ 106.578279] ? __schedule+0x10c6/0x2b60
<4>[ 106.578306] ? __pfx_read_tsc+0x10/0x10
<4>[ 106.578327] ? ktime_get_ts64+0x86/0x230
<4>[ 106.578354] kunit_try_run_case+0x1a5/0x480
<4>[ 106.578381] ? __pfx_kunit_try_run_case+0x10/0x10
<4>[ 106.578400] ? _raw_spin_lock_irqsave+0xa1/0x100
<4>[ 106.578417] ? _raw_spin_unlock_irqrestore+0x5f/0x90
<4>[ 106.578439] ? __kthread_parkme+0x82/0x180
<4>[ 106.578461] ? preempt_count_sub+0x50/0x80
<4>[ 106.578484] ? __pfx_kunit_try_run_case+0x10/0x10
<4>[ 106.578502] kunit_generic_run_threadfn_adapter+0x85/0xf0
<4>[ 106.578523] ? __pfx_kunit_generic_run_threadfn_adapter+0x10/0x10
<4>[ 106.578544] kthread+0x337/0x6f0
<4>[ 106.578560] ? trace_preempt_on+0x20/0xc0
<4>[ 106.578581] ? __pfx_kthread+0x10/0x10
<4>[ 106.578599] ? _raw_spin_unlock_irq+0x47/0x80
<4>[ 106.578620] ? calculate_sigpending+0x7b/0xa0
<4>[ 106.578640] ? __pfx_kthread+0x10/0x10
<4>[ 106.578668] ret_from_fork+0x41/0x80
<4>[ 106.578688] ? __pfx_kthread+0x10/0x10
<4>[ 106.578705] ret_from_fork_asm+0x1a/0x30
<4>[ 106.578736] </TASK>
<3>[ 106.589552] kobject: kobject_add_internal failed for kunit-platform-add-2 with -EEXIST, don't try to register things with the same name in the same directory.
|