> -----Original Message----- > From: D. Wythe [mailto:alibuda@xxxxxxxxxxxxxxxxx] > Sent: Tuesday, August 26, 2025 5:42 PM > To: liujian (CE) <liujian56@xxxxxxxxxx> > Cc: alibuda@xxxxxxxxxxxxxxxxx; dust.li@xxxxxxxxxxxxxxxxx; > sidraya@xxxxxxxxxxxxx; wenjia@xxxxxxxxxxxxx; mjambigi@xxxxxxxxxxxxx; > tonylu@xxxxxxxxxxxxxxxxx; guwen@xxxxxxxxxxxxxxxxx; > davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx; > pabeni@xxxxxxxxxx; horms@xxxxxxxxxx; > guangguan.wang@xxxxxxxxxxxxxxxxx; linux-rdma@xxxxxxxxxxxxxxx; linux- > s390@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx > Subject: Re: [PATCH net] net/smc: fix one NULL pointer dereference in > smc_ib_is_sg_need_sync() > > On Tue, Aug 26, 2025 at 04:44:42PM +0800, Liu Jian wrote: > > BUG: kernel NULL pointer dereference, address: 00000000000002ec PGD 0 > > P4D 0 > > Oops: Oops: 0000 [#1] SMP PTI > > CPU: 28 UID: 0 PID: 343 Comm: kworker/28:1 Kdump: loaded Tainted: G > OE 6.17.0-rc2+ #9 NONE > > Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE Hardware name: > QEMU > > Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014 > > Workqueue: smc_hs_wq smc_listen_work [smc] > > RIP: 0010:smc_ib_is_sg_need_sync+0x9e/0xd0 [smc] > > > > diff --git a/net/smc/smc_ib.c b/net/smc/smc_ib.c index > > 53828833a3f7..85501d2c1f1b 100644 > > --- a/net/smc/smc_ib.c > > +++ b/net/smc/smc_ib.c > > @@ -747,6 +747,8 @@ bool smc_ib_is_sg_need_sync(struct smc_link *lnk, > > buf_slot->sgt[lnk->link_idx].nents, i) { > > if (!sg_dma_len(sg)) > > break; > > + if (!lnk->smcibdev->ibdev->dma_device) > > + break; > > Why check it inside the loop? Ok, will send v2, move the check outside of loop. Thanks.