Message ID | 20191108111855.85866-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Commit | b94ec12dfaee41bdd6a8b6d75e5715d9ba2c92cc |
Headers | show |
Series | [v2] PCI: pciehp: Refactor infinite loop in pcie_poll_cmd() | expand |
On Fri, Nov 08, 2019 at 01:18:55PM +0200, Andy Shevchenko wrote: > Infinite timeout loops are hard to read. Refactor it > to plausible 'do {} while ()'. > > Note, the supplied timeout can't be negative for current use, > though if it's not dividable to 10, we may go below 0, > that's why type of the parameter is int. And thus, we may move > the check to the loop condition. > > No functional changes implied. > > Reviewed-by: Andrew Murray <andrew.murray@arm.com> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Applied to pci/hotplug for v5.5, thanks! > --- > - corrected loop conditional to include 0 comparison (Keith) > - added Rb (Andrew) > drivers/pci/hotplug/pciehp_hpc.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c > index 86d97f3112f0..764384153c7d 100644 > --- a/drivers/pci/hotplug/pciehp_hpc.c > +++ b/drivers/pci/hotplug/pciehp_hpc.c > @@ -68,7 +68,7 @@ static int pcie_poll_cmd(struct controller *ctrl, int timeout) > struct pci_dev *pdev = ctrl_dev(ctrl); > u16 slot_status; > > - while (true) { > + do { > pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status); > if (slot_status == (u16) ~0) { > ctrl_info(ctrl, "%s: no response from device\n", > @@ -81,11 +81,9 @@ static int pcie_poll_cmd(struct controller *ctrl, int timeout) > PCI_EXP_SLTSTA_CC); > return 1; > } > - if (timeout < 0) > - break; > msleep(10); > timeout -= 10; > - } > + } while (timeout >= 0); > return 0; /* timeout */ > } > > -- > 2.24.0.rc1 >
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index 86d97f3112f0..764384153c7d 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c @@ -68,7 +68,7 @@ static int pcie_poll_cmd(struct controller *ctrl, int timeout) struct pci_dev *pdev = ctrl_dev(ctrl); u16 slot_status; - while (true) { + do { pcie_capability_read_word(pdev, PCI_EXP_SLTSTA, &slot_status); if (slot_status == (u16) ~0) { ctrl_info(ctrl, "%s: no response from device\n", @@ -81,11 +81,9 @@ static int pcie_poll_cmd(struct controller *ctrl, int timeout) PCI_EXP_SLTSTA_CC); return 1; } - if (timeout < 0) - break; msleep(10); timeout -= 10; - } + } while (timeout >= 0); return 0; /* timeout */ }