• Mintz, Yuval's avatar
    qede: Revise state locking scheme · 567b3c12
    Mintz, Yuval authored
    As qede utilizes an internal-reload sequence as result of various
    configuration changes, the netif state wouldn't always accurately describe
    the status of the configuration.
    To compensate, we're storing an internal state of the device, which should
    only be accessed under the qede_lock.
    
    This patch fixes and improves several state/lock interactions:
      - The internal state should only be checked while locked.
      - While holding lock, it's preferable to check state rather than
        the netdevice's state.
      - The reload sequence is not 'atomic' - unload and subsequent load
        are not in the same critical section.
    
    This also add the 'locked' variant for the reload, which would later be
    used by XDP - useful in the case where the correct sequence is 'lock,
    check state and re-configure if good', instead of allowing the reload
    itself to make the decision regarding the configurability of the device.
    Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    567b3c12
qede_ethtool.c 42.7 KB