On Thu, Oct 10, 2019 at 12:40 AM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > > 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 Thank you for the feedback! An infinite loop is used several other places in this driver--this keeps the style similar. I can change it as you suggest, though, if that would be preferable to consistency.