On Thu, Oct 10, 2019 at 8:37 AM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > On Wed, Oct 9, 2019 at 11:05 PM Stuart Hayes <stuart.w.hayes@xxxxxxxxx> 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