quoted
Note that phylink_destroy() is documented as:
* Note: the rtnl lock must not be held when calling this function.
...
Any other issues besides needing to take rtnl_mutex top-level when
calling phylink_destroy?
We should try to keep phylink_create and phylink_destroy symmetrical:
/**
* phylink_create() - create a phylink instance
* @config: a pointer to the target &struct phylink_config
* @fwnode: a pointer to a &struct fwnode_handle describing the network
* interface
* @iface: the desired link mode defined by &typedef phy_interface_t
* @mac_ops: a pointer to a &struct phylink_mac_ops for the MAC.
*
* Create a new phylink instance, and parse the link parameters found in @np.
* This will parse in-band modes, fixed-link or SFP configuration.
*
* Note: the rtnl lock must not be held when calling this function.
Having different locking requirements will catch people out.
Interestingly, there is no ASSERT_NO_RTNL(). Maybe we should add such
a macro.
Andrew