== Comment: #0 - J?rn Siglen <email address hidden> - 2022-08-09 07:38:27 ==
+++ This bug was initially created as a clone of Bug #199319 +++
Description: s390/qeth: cache link_info for ethtool
Symptom: lost of IP connection and log entries in journalctl: kernel: qeth 0.0.0365: The qeth device driver failed to recover an error on the device
Problem: Since commit e6e771b3d897 ("s390/qeth: detach netdevice while card is offline") there was a timing window during recovery, that qeth_query_card_info could be sent to the card, even before it
was ready for it, leading to a failing card recovery. There is evidence that this window was hit, as not all callers of get_link_ksettings() check for netif_device_present.
Solution: Use cached values in qeth_get_link_ksettings(), instead of calling qeth_query_card_info() and falling back to default values in case it fails. Link info is already updated when the
card goes online, e.g. after STARTLAN (physical link up). Set
the link info to default values, when the card goes offline or
at STOPLAN (physical link down). A follow-on patch will improve values reported for link down. Fixes: e6e771b3d897 ("s390/qeth: detach netdevice while card is offline")
Reproduction: enforce a eth device recvoery, while running ethtool multiple times in parallel and using iperf to get load on the interface.
Upstream-ID: 7a07a29e4f6713b224f3bcde5f835e777301bdb8
== Comment: #3 - J?rn Siglen <email address hidden> - 2022-08-09 07:54:41 ==
the inital update came in with kernel 5.1 upstream, but we found it backported in many older kernel versions
== Comment: #4 - J?rn Siglen <email address hidden> - 2022-08-09 08:03:09 ==
the acceptance info of the patch can be found here:
https://<email address hidden>/T/#m2e3799a38d1d4630822db50f9a5d9b2ca018252f
== Comment: #0 - J?rn Siglen <email address hidden> - 2022-08-09 07:38:27 ==
+++ This bug was initially created as a clone of Bug #199319 +++
Description: s390/qeth: cache link_info for ethtool
kernel: qeth 0.0.0365: The qeth device driver failed to
recover an error on the device
("s390/ qeth: detach netdevice while card is offline")
there was a timing window during recovery, that
qeth_query_ card_info could be sent to the card, even before it
evidence that this window was hit, as not all callers of
get_link_ ksettings( ) check for netif_device_ present. link_ksettings( ), instead of
calling qeth_query_ card_info( ) and falling back to default
values in case it fails. Link info is already updated when the
values reported for link down.
Fixes: e6e771b3d897
("s390/ qeth: detach netdevice while card is offline")
times in parallel and using iperf to get load on the interface. 224f3bcde5f835e 777301bdb8
Symptom: lost of IP connection and log entries in journalctl:
Problem: Since commit e6e771b3d897
was ready for it, leading to a failing card recovery. There is
Solution: Use cached values in qeth_get_
card goes online, e.g. after STARTLAN (physical link up). Set
the link info to default values, when the card goes offline or
at STOPLAN (physical link down). A follow-on patch will improve
Reproduction: enforce a eth device recvoery, while running ethtool multiple
Upstream-ID: 7a07a29e4f6713b
https://<email address hidden> /T/#m2e3799a38d 1d4630822db50f9 a5d9b2ca018252f
applicable for most kernel > 3.14
== Comment: #3 - J?rn Siglen <email address hidden> - 2022-08-09 07:54:41 ==
the inital update came in with kernel 5.1 upstream, but we found it backported in many older kernel versions
== Comment: #4 - J?rn Siglen <email address hidden> - 2022-08-09 08:03:09 == /T/#m2e3799a38d 1d4630822db50f9 a5d9b2ca018252f
the acceptance info of the patch can be found here:
https://<email address hidden>