Hi Andrew, I love your patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/Andrew-Lunn/Preparing-for-phylib-limkmodes/20180911-204149 config: x86_64-randconfig-x011-201836 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): drivers/net/phy/phy_device.c: In function 'phy_set_asym_pause': >> drivers/net/phy/phy_device.c:1838:11: warning: 'return' with a value, in function returning void return phy_start_aneg(phydev); ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/phy/phy_device.c:1824:6: note: declared here void phy_set_asym_pause(struct phy_device *phydev, bool rx, bool tx) ^~~~~~~~~~~~~~~~~~ vim +/return +1838 drivers/net/phy/phy_device.c 1812 1813 /** 1814 * phy_set_asym_pause - Configure Pause and Asym Pause 1815 * @phydev: target phy_device struct 1816 * @rx: Receiver Pause is supported 1817 * @tx: Transmit Pause is supported 1818 * 1819 * Description: Configure advertised Pause support depending on if 1820 * transmit and receiver pause is supported. If there has been a 1821 * change in adverting, trigger a new autoneg. Generally called from 1822 * the set_pauseparam .ndo. 1823 */ 1824 void phy_set_asym_pause(struct phy_device *phydev, bool rx, bool tx) 1825 { 1826 u16 oldadv = phydev->advertising; 1827 u16 newadv = oldadv &= ~(SUPPORTED_Pause | SUPPORTED_Asym_Pause); 1828 1829 if (rx) 1830 newadv |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; 1831 if (tx) 1832 newadv ^= SUPPORTED_Asym_Pause; 1833 1834 if (oldadv != newadv) { 1835 phydev->advertising = newadv; 1836 1837 if (phydev->autoneg) > 1838 return phy_start_aneg(phydev); 1839 } 1840 } 1841 EXPORT_SYMBOL(phy_set_asym_pause); 1842 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation