Hello Coiby Xu,
The patch 953b94009377: "staging: qlge: Initialize devlink health
dump framework" from Jan 23, 2021, leads to the following static
checker warning:
drivers/staging/qlge/qlge_devlink.c:163 qlge_health_create_reporters()
error: uninitialized symbol 'reporter'.
drivers/staging/qlge/qlge_devlink.c
151 void qlge_health_create_reporters(struct qlge_adapter *priv)
152 {
153 struct devlink_health_reporter *reporter;
154 struct devlink *devlink;
155
156 devlink = priv_to_devlink(priv);
157 priv->reporter =
158 devlink_health_reporter_create(devlink,
&qlge_reporter_ops,
159 0, priv);
160 if (IS_ERR(priv->reporter))
161 netdev_warn(priv->ndev,
162 "Failed to create reporter, err = %ld\n",
163 PTR_ERR(reporter));
Obviously the static checker is correct because we initialized
"priv->reporter" instead of "reporter".
It's not clear to me how "reporter" is used. Presumably this should be:
reporter = devlink_health_reporter_create(devlink, &qlge_reporter_ops,
0, priv);
if (IS_ERR(reporter)) {
netdev_warn(priv->ndev,
"Failed to create reporter, err = %ld\n",
PTR_ERR(reporter));
return;
}
priv->reporter = reporter;
But I can't actually find where "priv->reporter" is checked against
NULL. There should be some NULL checks, right?
164 }
regards,
dan carpenter
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel