* [bug report] BUG: kernel NULL pointer dereference, address: 0000000000000060
@ 2025-07-01 1:55 Changhui Zhong
2025-07-01 3:08 ` Ming Lei
0 siblings, 1 reply; 3+ messages in thread
From: Changhui Zhong @ 2025-07-01 1:55 UTC (permalink / raw)
To: Linux Block Devices; +Cc: Ming Lei
Hello,
the following kernel panic was triggered by 'ubdsrv make test T=generic' tests,
please help check and let me know if you need any info/test, thanks.
repo: https://github.com/torvalds/linux.git
branch: master
INFO: HEAD of cloned kernel:
commit d0b3b7b22dfa1f4b515fd3a295b3fd958f9e81af
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Sun Jun 29 13:09:04 2025 -0700
Linux 6.16-rc4
dmesg log:
[ 3431.347957] BUG: kernel NULL pointer dereference, address: 0000000000000060
[ 3431.355744] #PF: supervisor read access in kernel mode
[ 3431.361484] #PF: error_code(0x0000) - not-present page
[ 3431.367224] PGD 119ffa067 P4D 0
[ 3431.370830] Oops: Oops: 0000 [#1] SMP NOPTI
[ 3431.375503] CPU: 22 UID: 0 PID: 397273 Comm: fio Tainted: G S
6.16.0-rc4 #1 PREEMPT(voluntary)
[ 3431.386864] Tainted: [S]=CPU_OUT_OF_SPEC
[ 3431.391243] Hardware name: Lenovo ThinkSystem SR650 V2/7Z73CTO1WW,
BIOS AFE118M-1.32 06/29/2022
[ 3431.400954] RIP: 0010:ublk_queue_rqs+0x7d/0x1c0 [ublk_drv]
[ 3431.407085] Code: 00 00 4c 8b b8 c8 00 00 00 48 63 43 20 48 c1 e0
05 4d 8d 6c 07 30 48 85 d2 0f 84 c1 00 00 00 4c 01 f8 48 8b 7a 10 48
8b 70 40 <48> 8b 4e 60 48 39 4f 60 0f 84 9a 00 00 00 4d 85 e4 0f 84 9f
00 00
[ 3431.428035] RSP: 0018:ff711b900c5379d8 EFLAGS: 00010282
[ 3431.433869] RAX: ff300f05d5c534b0 RBX: ff300f05ea3b2940 RCX: ff300f05d5c53090
[ 3431.441834] RDX: ff300f05d5c534c0 RSI: 0000000000000000 RDI: 0000000000000000
[ 3431.449799] RBP: ff300f05ea3b2800 R08: 0000000000000000 R09: 0000000000000028
[ 3431.457766] R10: ff711b900c537a60 R11: ff300f062256ec20 R12: 0000000000000000
[ 3431.465723] R13: ff300f05d5c534e0 R14: ff711b900c537af0 R15: ff300f05d5c53090
[ 3431.473687] FS: 00007fddab6cd080(0000) GS:ff300f08df445000(0000)
knlGS:0000000000000000
[ 3431.482720] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3431.489137] CR2: 0000000000000060 CR3: 0000000122ff0001 CR4: 0000000000773ef0
[ 3431.497095] PKRU: 55555554
[ 3431.500108] Call Trace:
[ 3431.502829] <TASK>
[ 3431.505172] blk_mq_dispatch_queue_requests+0x15a/0x190
[ 3431.511011] blk_mq_flush_plug_list+0x78/0x190
[ 3431.515971] ? io_submit_one+0xee/0x370
[ 3431.520257] __blk_flush_plug+0xf2/0x150
[ 3431.524639] blk_finish_plug+0x28/0x40
[ 3431.528826] __x64_sys_io_submit+0xd5/0x1e0
[ 3431.533500] do_syscall_64+0x7f/0x980
[ 3431.537591] ? blk_mq_start_request+0x48/0x190
[ 3431.542554] ? __io_req_task_work_add+0x35/0x1f0
[ 3431.547711] ? ublk_queue_rqs+0x103/0x1c0 [ublk_drv]
[ 3431.553255] ? blk_mq_dispatch_queue_requests+0x162/0x190
[ 3431.559283] ? blk_mq_flush_plug_list+0x78/0x190
[ 3431.564435] ? io_submit_one+0xee/0x370
[ 3431.568717] ? __blk_flush_plug+0xf2/0x150
[ 3431.573292] ? rseq_get_rseq_cs.isra.0+0x16/0x210
[ 3431.578546] ? rseq_ip_fixup+0x90/0x1d0
[ 3431.582820] ? __rseq_handle_notify_resume+0x35/0x60
[ 3431.588363] ? arch_exit_to_user_mode_prepare.isra.0+0x82/0xb0
[ 3431.594877] ? do_syscall_64+0xb1/0x980
[ 3431.599160] ? blk_mq_dispatch_queue_requests+0x162/0x190
[ 3431.605189] ? blk_mq_flush_plug_list+0x78/0x190
[ 3431.610344] ? io_submit_one+0xee/0x370
[ 3431.614625] ? __blk_flush_plug+0xf2/0x150
[ 3431.619201] ? blk_finish_plug+0x28/0x40
[ 3431.623581] ? __x64_sys_io_submit+0x104/0x1e0
[ 3431.628542] ? syscall_exit_work+0x108/0x140
[ 3431.633302] ? clear_bhb_loop+0x50/0xa0
[ 3431.637585] ? clear_bhb_loop+0x50/0xa0
[ 3431.641860] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 3431.647499] RIP: 0033:0x7fddab7d1a3d
[ 3431.651490] 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 b3 0c 00 f7 d8 64 89
01 48
[ 3431.672448] RSP: 002b:00007ffd378a7a08 EFLAGS: 00000246 ORIG_RAX:
00000000000000d1
[ 3431.680900] RAX: ffffffffffffffda RBX: 00007fddab6ccff8 RCX: 00007fddab7d1a3d
[ 3431.688867] RDX: 000055ff413149c0 RSI: 0000000000000010 RDI: 00007fdda3226000
[ 3431.696824] RBP: 00007fdda3226000 R08: 00007fdda3240000 R09: 0000000000000280
[ 3431.704789] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000010
[ 3431.712755] R13: 0000000000000000 R14: 000055ff413149c0 R15: 000055ff4131b740
[ 3431.720723] </TASK>
[ 3431.723160] Modules linked in: ublk_drv raid10 raid1 raid0 dm_raid
raid456 async_raid6_recov async_memcpy async_pq async_xor xor async_tx
raid6_pq nf_tables rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs
lockd grace nfs_localio netfs sunrpc rfkill intel_rapl_msr
intel_rapl_common intel_uncore_frequency intel_uncore_frequency_common
i10nm_edac skx_edac_common nfit libnvdimm x86_pkg_temp_thermal
intel_powerclamp coretemp kvm_intel kvm ipmi_ssif iTCO_wdt irqbypass
dax_hmem rapl cxl_acpi mgag200 cdc_ether isst_if_mbox_pci
iTCO_vendor_support cxl_port intel_cstate isst_if_mmio cxl_core tg3
usbnet intel_th_gth i2c_algo_bit i2c_i801 mei_me ioatdma intel_uncore
mii intel_th_pci einj mei pcspkr acpi_power_meter isst_if_common
i2c_smbus intel_vsec intel_pch_thermal intel_th dca ipmi_si acpi_ipmi
ipmi_devintf ipmi_msghandler acpi_pad sg fuse loop nfnetlink xfs
sd_mod ahci libahci libata ghash_clmulni_intel wmi dm_mirror
dm_region_hash dm_log dm_mod [last unloaded: null_blk]
[ 3431.818860] CR2: 0000000000000060
[ 3431.822559] ---[ end trace 0000000000000000 ]---
[ 3431.856214] RIP: 0010:ublk_queue_rqs+0x7d/0x1c0 [ublk_drv]
[ 3431.862342] Code: 00 00 4c 8b b8 c8 00 00 00 48 63 43 20 48 c1 e0
05 4d 8d 6c 07 30 48 85 d2 0f 84 c1 00 00 00 4c 01 f8 48 8b 7a 10 48
8b 70 40 <48> 8b 4e 60 48 39 4f 60 0f 84 9a 00 00 00 4d 85 e4 0f 84 9f
00 00
[ 3431.883302] RSP: 0018:ff711b900c5379d8 EFLAGS: 00010282
[ 3431.889136] RAX: ff300f05d5c534b0 RBX: ff300f05ea3b2940 RCX: ff300f05d5c53090
[ 3431.897094] RDX: ff300f05d5c534c0 RSI: 0000000000000000 RDI: 0000000000000000
[ 3431.905052] RBP: ff300f05ea3b2800 R08: 0000000000000000 R09: 0000000000000028
[ 3431.913009] R10: ff711b900c537a60 R11: ff300f062256ec20 R12: 0000000000000000
[ 3431.920974] R13: ff300f05d5c534e0 R14: ff711b900c537af0 R15: ff300f05d5c53090
[ 3431.928940] FS: 00007fddab6cd080(0000) GS:ff300f08df445000(0000)
knlGS:0000000000000000
[ 3431.937973] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3431.944388] CR2: 0000000000000060 CR3: 0000000122ff0001 CR4: 0000000000773ef0
[ 3431.952354] PKRU: 55555554
[ 3431.955374] Kernel panic - not syncing: Fatal exception
[ 3431.961292] Kernel Offset: 0xd000000 from 0xffffffff81000000
(relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 3432.002335] ---[ end Kernel panic - not syncing: Fatal exception ]---
Best Regards,
Changhui
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [bug report] BUG: kernel NULL pointer dereference, address: 0000000000000060
2025-07-01 1:55 [bug report] BUG: kernel NULL pointer dereference, address: 0000000000000060 Changhui Zhong
@ 2025-07-01 3:08 ` Ming Lei
2025-07-01 8:05 ` Changhui Zhong
0 siblings, 1 reply; 3+ messages in thread
From: Ming Lei @ 2025-07-01 3:08 UTC (permalink / raw)
To: Changhui Zhong; +Cc: Linux Block Devices
Hi Changhui,
Thanks for the report!
On Tue, Jul 01, 2025 at 09:55:23AM +0800, Changhui Zhong wrote:
> Hello,
>
> the following kernel panic was triggered by 'ubdsrv make test T=generic' tests,
> please help check and let me know if you need any info/test, thanks.
>
> repo: https://github.com/torvalds/linux.git
> branch: master
> INFO: HEAD of cloned kernel:
> commit d0b3b7b22dfa1f4b515fd3a295b3fd958f9e81af
> Author: Linus Torvalds <torvalds@linux-foundation.org>
> Date: Sun Jun 29 13:09:04 2025 -0700
>
> Linux 6.16-rc4
>
> dmesg log:
> [ 3431.347957] BUG: kernel NULL pointer dereference, address: 0000000000000060
> [ 3431.355744] #PF: supervisor read access in kernel mode
> [ 3431.361484] #PF: error_code(0x0000) - not-present page
> [ 3431.367224] PGD 119ffa067 P4D 0
> [ 3431.370830] Oops: Oops: 0000 [#1] SMP NOPTI
> [ 3431.375503] CPU: 22 UID: 0 PID: 397273 Comm: fio Tainted: G S
> 6.16.0-rc4 #1 PREEMPT(voluntary)
> [ 3431.386864] Tainted: [S]=CPU_OUT_OF_SPEC
> [ 3431.391243] Hardware name: Lenovo ThinkSystem SR650 V2/7Z73CTO1WW,
> BIOS AFE118M-1.32 06/29/2022
> [ 3431.400954] RIP: 0010:ublk_queue_rqs+0x7d/0x1c0 [ublk_drv]
It is one regression of commit 524346e9d79f ("ublk: build batch from IOs in same io_ring_ctx and io task").
io->cmd can't be derefered unless the uring cmd is live, and the following patch
should fix the oops:
diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
index c3e3c3b65a6d..99894d712c1f 100644
--- a/drivers/block/ublk_drv.c
+++ b/drivers/block/ublk_drv.c
@@ -1442,15 +1442,14 @@ static void ublk_queue_rqs(struct rq_list *rqlist)
struct ublk_queue *this_q = req->mq_hctx->driver_data;
struct ublk_io *this_io = &this_q->ios[req->tag];
- if (io && !ublk_belong_to_same_batch(io, this_io) &&
- !rq_list_empty(&submit_list))
- ublk_queue_cmd_list(io, &submit_list);
- io = this_io;
-
- if (ublk_prep_req(this_q, req, true) == BLK_STS_OK)
+ if (ublk_prep_req(this_q, req, true) == BLK_STS_OK) {
+ if (io && !ublk_belong_to_same_batch(io, this_io) &&
+ !rq_list_empty(&submit_list))
+ ublk_queue_cmd_list(io, &submit_list);
rq_list_add_tail(&submit_list, req);
- else
+ } else
rq_list_add_tail(&requeue_list, req);
+ io = this_io;
}
if (!rq_list_empty(&submit_list))
Thanks,
Ming
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [bug report] BUG: kernel NULL pointer dereference, address: 0000000000000060
2025-07-01 3:08 ` Ming Lei
@ 2025-07-01 8:05 ` Changhui Zhong
0 siblings, 0 replies; 3+ messages in thread
From: Changhui Zhong @ 2025-07-01 8:05 UTC (permalink / raw)
To: Ming Lei; +Cc: Linux Block Devices
On Tue, Jul 1, 2025 at 11:08 AM Ming Lei <ming.lei@redhat.com> wrote:
>
> Hi Changhui,
>
> Thanks for the report!
>
> On Tue, Jul 01, 2025 at 09:55:23AM +0800, Changhui Zhong wrote:
> > Hello,
> >
> > the following kernel panic was triggered by 'ubdsrv make test T=generic' tests,
> > please help check and let me know if you need any info/test, thanks.
> >
> > repo: https://github.com/torvalds/linux.git
> > branch: master
> > INFO: HEAD of cloned kernel:
> > commit d0b3b7b22dfa1f4b515fd3a295b3fd958f9e81af
> > Author: Linus Torvalds <torvalds@linux-foundation.org>
> > Date: Sun Jun 29 13:09:04 2025 -0700
> >
> > Linux 6.16-rc4
> >
> > dmesg log:
> > [ 3431.347957] BUG: kernel NULL pointer dereference, address: 0000000000000060
> > [ 3431.355744] #PF: supervisor read access in kernel mode
> > [ 3431.361484] #PF: error_code(0x0000) - not-present page
> > [ 3431.367224] PGD 119ffa067 P4D 0
> > [ 3431.370830] Oops: Oops: 0000 [#1] SMP NOPTI
> > [ 3431.375503] CPU: 22 UID: 0 PID: 397273 Comm: fio Tainted: G S
> > 6.16.0-rc4 #1 PREEMPT(voluntary)
> > [ 3431.386864] Tainted: [S]=CPU_OUT_OF_SPEC
> > [ 3431.391243] Hardware name: Lenovo ThinkSystem SR650 V2/7Z73CTO1WW,
> > BIOS AFE118M-1.32 06/29/2022
> > [ 3431.400954] RIP: 0010:ublk_queue_rqs+0x7d/0x1c0 [ublk_drv]
>
> It is one regression of commit 524346e9d79f ("ublk: build batch from IOs in same io_ring_ctx and io task").
>
> io->cmd can't be derefered unless the uring cmd is live, and the following patch
> should fix the oops:
>
> diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
> index c3e3c3b65a6d..99894d712c1f 100644
> --- a/drivers/block/ublk_drv.c
> +++ b/drivers/block/ublk_drv.c
> @@ -1442,15 +1442,14 @@ static void ublk_queue_rqs(struct rq_list *rqlist)
> struct ublk_queue *this_q = req->mq_hctx->driver_data;
> struct ublk_io *this_io = &this_q->ios[req->tag];
>
> - if (io && !ublk_belong_to_same_batch(io, this_io) &&
> - !rq_list_empty(&submit_list))
> - ublk_queue_cmd_list(io, &submit_list);
> - io = this_io;
> -
> - if (ublk_prep_req(this_q, req, true) == BLK_STS_OK)
> + if (ublk_prep_req(this_q, req, true) == BLK_STS_OK) {
> + if (io && !ublk_belong_to_same_batch(io, this_io) &&
> + !rq_list_empty(&submit_list))
> + ublk_queue_cmd_list(io, &submit_list);
> rq_list_add_tail(&submit_list, req);
> - else
> + } else
> rq_list_add_tail(&requeue_list, req);
> + io = this_io;
> }
>
> if (!rq_list_empty(&submit_list))
>
>
> Thanks,
> Ming
>
Hi,Ming
thanks for fix patch,I ran the test 30 times with your patch and did
not hit this issue again.
I saw you sent a new patch
https://lore.kernel.org/linux-block/20250701072325.1458109-1-ming.lei@redhat.com/T/#u
will re-run the tests for the new patch,
Thanks,
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-07-01 8:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-01 1:55 [bug report] BUG: kernel NULL pointer dereference, address: 0000000000000060 Changhui Zhong
2025-07-01 3:08 ` Ming Lei
2025-07-01 8:05 ` Changhui Zhong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox