Messages in this thread | | | From | Andy Shevchenko <> | Date | Thu, 10 Oct 2019 08:40:29 +0300 | Subject | Re: [PATCH 2/3] PCI: pciehp: Wait for PDS if in-band presence is disabled |
| |
On Thu, Oct 10, 2019 at 8:37 AM Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > On Wed, Oct 9, 2019 at 11:05 PM Stuart Hayes <stuart.w.hayes@gmail.com> wrote:
> > +static void pcie_wait_for_presence(struct pci_dev *pdev) > > +{ > > + int timeout = 1250;
> > + bool pds;
Also this is redundant. Just use the following outside the loop
if (!retries) pc_info(...);
.
> > + u16 slot_status; > > + > > + while (true) { > > + pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status); > > + pds = !!(slot_status & PCI_EXP_SLTSTA_PDS); > > + if (pds || timeout <= 0) > > + break; > > + msleep(10); > > + timeout -= 10; > > + } > > Can we avoid infinite loops? They are hard to parse (in most cases, > and especially when it's a timeout loop) > > unsigned int retries = 125; // 1250 ms > > do { > ... > } while (--retries); > > > + > > + if (!pds) > > + pci_info(pdev, "Presence Detect state not set in 1250 msec\n"); > > +} > > -- > With Best Regards, > Andy Shevchenko
-- With Best Regards, Andy Shevchenko
| |