• Alexandra Winter's avatar
    s390/qeth: Don't call dev_close/dev_open (DOWN/UP) · 1cfef80d
    Alexandra Winter authored
    dev_close() and dev_open() are issued to change the interface state to DOWN
    or UP (dev->flags IFF_UP). When the netdev is set DOWN it loses e.g its
    Ipv6 addresses and routes. We don't want this in cases of device recovery
    (triggered by hardware or software) or when the qeth device is set
    offline.
    
    Setting a qeth device offline or online and device recovery actions call
    netif_device_detach() and/or netif_device_attach(). That will reset or
    set the LOWER_UP indication i.e. change the dev->state Bit
    __LINK_STATE_PRESENT. That is enough to e.g. cause bond failovers, and
    still preserves the interface settings that are handled by the network
    stack.
    
    Don't call dev_open() nor dev_close() from the qeth device driver. Let the
    network stack handle this.
    
    Fixes: d4560150 ("s390/qeth: call dev_close() during recovery")
    Signed-off-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
    Reviewed-by: default avatarWenjia Zhang <wenjia@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1cfef80d
qeth_core_main.c 186 KB