Re: [PATCH] vDPA/ifcvf: match pointer check to use

From: Tom Rix
Date: Tue Mar 15 2022 - 11:03:39 EST



On 3/15/22 6:28 AM, Michael S. Tsirkin wrote:
On Tue, Mar 15, 2022 at 05:41:30AM -0700, trix@xxxxxxxxxx wrote:
From: Tom Rix <trix@xxxxxxxxxx>

Clang static analysis reports this issue
ifcvf_main.c:49:4: warning: Called function
pointer is null (null dereference)
vf->vring->cb.callback(vring->cb.private);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The check
vring = &vf->vring[i];
if (vring->cb.callback)

Does not match the use. Change dereference so they match.

Fixes: 79333575b8bd ("vDPA/ifcvf: implement shared IRQ feature")
Thanks a lot! I squashed this into the offending patch - no point in
breaking bisect. Pushed to linux. However I'm now
having second thoughts about applying that patchset - I'd like
soma analysis explaining how this got through testing.

static analysis is something i do treewide.

There are currently ~2500 issues in linux-next, do not panic! many are false positives.

It is pretty easy to setup and once you have a baseline you can filter only your files.

Tom

Signed-off-by: Tom Rix <trix@xxxxxxxxxx>
---
drivers/vdpa/ifcvf/ifcvf_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index 3b48e717e89f7..4366320fb68d3 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -46,7 +46,7 @@ static irqreturn_t ifcvf_vqs_reused_intr_handler(int irq, void *arg)
for (i = 0; i < vf->nr_vring; i++) {
vring = &vf->vring[i];
if (vring->cb.callback)
- vf->vring->cb.callback(vring->cb.private);
+ vring->cb.callback(vring->cb.private);
}
return IRQ_HANDLED;
--
2.26.3