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
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to