> > +/** > + * pci__wait_for_link - Wait for link till its active/inactive typo - just wants a single underscore. > + pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); > + ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA); no need for the !! when assigning to a boolean. > + > + while ((ret != active) && (timeout > 0)) { No need for either pair of inner braces. > + msleep(10); > + timeout -= 10; > + pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); > + ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA); Same as above. > + } > + > + if (ret == active) > + return true; Seems like the structure is a bit odd. Why not: for (;;) { pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); if ((lnk_status & PCI_EXP_LNKSTA_DLLLA) == active) return true; if (timeout <= 0) break; timeout -= 10; }