public inbox for linux-pci@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [bug report] PCI: brcmstb: Add control of subdevice voltage regulators
       [not found]   ` <fb32020a-c6a1-acc0-b5f8-ebdd84c2c31f@gmail.com>
@ 2022-01-11 18:09     ` Lorenzo Pieralisi
  0 siblings, 0 replies; only message in thread
From: Lorenzo Pieralisi @ 2022-01-11 18:09 UTC (permalink / raw)
  To: Florian Fainelli, bhelgaas
  Cc: Jim Quinlan, Dan Carpenter, bcm-kernel-feedback-list, linux-pci

[+Bjorn, linux-pci]

On Tue, Jan 11, 2022 at 08:37:59AM -0800, Florian Fainelli wrote:
> +Lorenzo,
> 
> On 1/11/2022 8:02 AM, Jim Quinlan wrote:
> > On Tue, Jan 11, 2022 at 2:33 AM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> > > 
> > > Hello Jim Quinlan,
> > > 
> > > This is a semi-automatic email about new static checker warnings.
> > > 
> > > The patch 31d8fedc2827: "PCI: brcmstb: Add control of subdevice
> > > voltage regulators" from Jan 6, 2022, leads to the following Smatch
> > > complaint:
> > > 
> > >      drivers/pci/controller/pcie-brcmstb.c:1404 brcm_pcie_resume()
> > >      error: we previously assumed 'pcie->sr' could be null (see line 1350)
> > > 
> > > drivers/pci/controller/pcie-brcmstb.c
> > >    1349
> > >    1350          if (pcie->sr) {
> > >                      ^^^^^^^^
> > > Check for NULL
> > > 
> > >    1351                  if (pcie->ep_wakeup_capable) {
> > >    1352                          /*
> > >    1353                           * We are resuming from a suspend.  In the suspend we
> > >    1354                           * did not disable the power supplies, so there is
> > >    1355                           * no need to enable them (and falsely increase their
> > >    1356                           * usage count).
> > >    1357                           */
> > >    1358                          pcie->ep_wakeup_capable = false;
> > >    1359                  } else {
> > >    1360                          ret = regulator_bulk_enable(pcie->sr->num_supplies,
> > >    1361                                                      pcie->sr->supplies);
> > >    1362                          if (ret) {
> > >    1363                                  dev_err(dev, "Could not turn on regulators\n");
> > >    1364                                  goto err_disable_clk;
> > >    1365                          }
> > >    1366                  }
> > >    1367          }
> > >    1368
> > >    1369          ret = reset_control_reset(pcie->rescal);
> > >    1370          if (ret)
> > >    1371                  goto err_regulator;
> > >    1372
> > >    1373          ret = brcm_phy_start(pcie);
> > >    1374          if (ret)
> > >    1375                  goto err_reset;
> > >    1376
> > >    1377          /* Take bridge out of reset so we can access the SERDES reg */
> > >    1378          pcie->bridge_sw_init_set(pcie, 0);
> > >    1379
> > >    1380          /* SERDES_IDDQ = 0 */
> > >    1381          tmp = readl(base + PCIE_MISC_HARD_PCIE_HARD_DEBUG);
> > >    1382          u32p_replace_bits(&tmp, 0, PCIE_MISC_HARD_PCIE_HARD_DEBUG_SERDES_IDDQ_MASK);
> > >    1383          writel(tmp, base + PCIE_MISC_HARD_PCIE_HARD_DEBUG);
> > >    1384
> > >    1385          /* wait for serdes to be stable */
> > >    1386          udelay(100);
> > >    1387
> > >    1388          ret = brcm_pcie_setup(pcie);
> > >    1389          if (ret)
> > >    1390                  goto err_reset;
> > >    1391
> > >    1392          ret = brcm_pcie_linkup(pcie);
> > >    1393          if (ret)
> > >    1394                  goto err_reset;
> > >    1395
> > >    1396          if (pcie->msi)
> > >    1397                  brcm_msi_set_regs(pcie->msi);
> > >    1398
> > >    1399          return 0;
> > >    1400
> > >    1401  err_reset:
> > >    1402          reset_control_rearm(pcie->rescal);
> > >    1403  err_regulator:
> > >    1404          regulator_bulk_disable(pcie->sr->num_supplies, pcie->- sr->supplies);
> > >                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > Unchecked dereferences.  I think we do need to add a check?
> > Absolutely, "if (pcie->sr)".  What do I need to do - send a fixup or a
> > new full pullreq?  I'm not quite sure if this was accepted yet....
> 
> Your patch series has been queued up in Lorenzo's tree here:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git/log/?h=pci/brcmstb
> 
> so I suppose you could submit an incremental patch to fix the error
> reported by Dan and Lorenzo can either squash it or just leave it as a
> fix on top?

Please send a fix to Bjorn and CC linux-pci as soon as possible, he may
be able to squash that in before sending a PR.

Thanks,
Lorenzo

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-11 18:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20220111073312.GA12633@kili>
     [not found] ` <CANCKTBsV1yn-tntVHNeaEOSkpAmz9fxu9bjzgMYvFv96=+437Q@mail.gmail.com>
     [not found]   ` <fb32020a-c6a1-acc0-b5f8-ebdd84c2c31f@gmail.com>
2022-01-11 18:09     ` [bug report] PCI: brcmstb: Add control of subdevice voltage regulators Lorenzo Pieralisi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox