[bug report] perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver

Dan Carpenter dan.carpenter at oracle.com
Tue Jul 11 04:43:27 PDT 2017


Hello Tai Nguyen,

The patch 832c927d119b: "perf: xgene: Add APM X-Gene SoC Performance
Monitoring Unit driver" from Jul 15, 2016, leads to the following
static checker warning:

	drivers/perf/xgene_pmu.c:1922 xgene_pmu_probe()
	warn: 'xgene_pmu->pcppmu_csr' is an error pointer or valid

drivers/perf/xgene_pmu.c
  1851          if (version < 0)
  1852                  return -ENODEV;
                        ^^^^^^^^^^^^^^
Good.  Direct returns are the way to go if possible.

  1853  
  1854          if (version == PCP_PMU_V3)
  1855                  xgene_pmu->ops = &xgene_pmu_v3_ops;
  1856          else
  1857                  xgene_pmu->ops = &xgene_pmu_ops;
  1858  
  1859          INIT_LIST_HEAD(&xgene_pmu->l3cpmus);
  1860          INIT_LIST_HEAD(&xgene_pmu->iobpmus);
  1861          INIT_LIST_HEAD(&xgene_pmu->mcbpmus);
  1862          INIT_LIST_HEAD(&xgene_pmu->mcpmus);
  1863  
  1864          xgene_pmu->version = version;
  1865          dev_info(&pdev->dev, "X-Gene PMU version %d\n", xgene_pmu->version);
  1866  
  1867          res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  1868          xgene_pmu->pcppmu_csr = devm_ioremap_resource(&pdev->dev, res);
  1869          if (IS_ERR(xgene_pmu->pcppmu_csr)) {
  1870                  dev_err(&pdev->dev, "ioremap failed for PCP PMU resource\n");
  1871                  rc = PTR_ERR(xgene_pmu->pcppmu_csr);
  1872                  goto err;
                        ^^^^^^^^
If we hit this goto then the kernel will crash.

  1873          }

    [ snip ]

  1916          /* Enable interrupt */
  1917          xgene_pmu->ops->unmask_int(xgene_pmu);
  1918  
  1919          return 0;
  1920  
  1921  err:
  1922          if (xgene_pmu->pcppmu_csr)
  1923                  devm_iounmap(&pdev->dev, xgene_pmu->pcppmu_csr);
  1924          devm_kfree(&pdev->dev, xgene_pmu);

Can't we remove all this cleanup since it's devm_ managed resources?

  1925  
  1926          return rc;
  1927  }

regards,
dan carpenter



More information about the linux-arm-kernel mailing list