• Ben Hutchings's avatar
    ethtool: Change ETHTOOL_PHYS_ID implementation to allow dropping RTNL · 68f512f2
    Ben Hutchings authored
    The ethtool ETHTOOL_PHYS_ID command runs for an arbitrarily long
    period of time, holding the RTNL lock.  This blocks routing updates,
    device enumeration, and various important operations that one might
    want to keep running while hunting for the flashing LED.
    We need to drop the RTNL lock during this operation, but currently the
    core implementation is a thin wrapper around a driver operation and
    drivers may well depend upon holding the lock.
    Define a new driver operation 'set_phys_id' with an argument that sets
    the ID indicator on/off/inactive/active (the last optional, for any
    driver or firmware that prefers to handle blinking asynchronously).
    When this is defined, the ethtool core drops the lock while waiting
    and only acquires it around calls to this operation.
    Deprecate the 'phys_id' operation in favour of this.  It can be
    removed once all in-tree drivers are converted.
    Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>