OpenCloudOS-Kernel/drivers/net/ethernet/aquantia/atlantic
Nathan Rossi 8a28af7a3e net: ethernet: aquantia: Handle error cleanup of start on open
The aq_nic_start function can fail in a variety of cases which leaves
the device in broken state.

An example case where the start function fails is the
request_threaded_irq which can be interrupted, resulting in a EINTR
result. This can be manually triggered by bringing the link up (e.g. ip
link set up) and triggering a SIGINT on the initiating process (e.g.
Ctrl+C). This would put the device into a half configured state.
Subsequently bringing the link up again would cause the napi_enable to
BUG.

In order to correctly clean up the failed attempt to start a device call
aq_nic_stop.

Signed-off-by: Nathan Rossi <nathan.rossi@digi.com>
Reviewed-by: Igor Russkikh <irusskikh@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-02-11 14:38:06 -08:00
..
hw_atl net: atlantic: implement media detect feature via phy tunables 2020-10-06 06:16:01 -07:00
hw_atl2 net: atlantic: implement phy downshift feature 2020-10-06 06:16:01 -07:00
macsec net: atlantic: minor MACSec code cleanup 2020-05-09 11:47:25 -07:00
Makefile net: atlantic: fix build when object tree is separate 2020-09-25 17:19:14 -07:00
aq_cfg.h net: atlantic: update company name in the driver description 2020-05-01 15:37:57 -07:00
aq_common.h net: atlantic: A2: EEE support 2020-06-22 21:10:22 -07:00
aq_drvinfo.c net: atlantic: add hwmon getter for MAC temperature 2020-07-20 18:07:39 -07:00
aq_drvinfo.h net: atlantic: add hwmon getter for MAC temperature 2020-07-20 18:07:39 -07:00
aq_ethtool.c net: atlantic: implement media detect feature via phy tunables 2020-10-06 06:16:01 -07:00
aq_ethtool.h net: atlantic: loopback tests via private flags 2019-11-07 19:54:43 -08:00
aq_filters.c net: atlantic: QoS implementation: multi-TC support 2020-05-22 14:08:28 -07:00
aq_filters.h net: aquantia: make all files GPL-2.0-only 2019-06-27 10:58:32 -07:00
aq_hw.h net: atlantic: implement media detect feature via phy tunables 2020-10-06 06:16:01 -07:00
aq_hw_utils.c net: atlantic: use U32_MAX in aq_hw_utils.c 2020-07-20 18:07:38 -07:00
aq_hw_utils.h net: atlantic: add support for 64-bit reads/writes 2020-07-20 18:07:38 -07:00
aq_macsec.c net: atlantic: changes for multi-TC support 2020-05-22 14:08:28 -07:00
aq_macsec.h net: atlantic: MACSec offload statistics implementation 2020-03-26 20:17:37 -07:00
aq_main.c net: ethernet: aquantia: Handle error cleanup of start on open 2021-02-11 14:38:06 -08:00
aq_main.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
aq_nic.c net: atlantic: Remove unnecessary conversion to bool 2020-11-10 15:24:49 -08:00
aq_nic.h net: don't include ethtool.h from netdevice.h 2020-11-23 17:27:04 -08:00
aq_pci_func.c net: atlantic: make aq_pci_func_init static 2020-06-26 16:32:50 -07:00
aq_pci_func.h net: atlantic: make aq_pci_func_init static 2020-06-26 16:32:50 -07:00
aq_phy.c net: atlantic: disable PTP on AQC111, AQC112 2020-07-17 18:24:32 -07:00
aq_phy.h net: atlantic: disable PTP on AQC111, AQC112 2020-07-17 18:24:32 -07:00
aq_ptp.c net: atlantic: PTP statistics 2020-07-20 18:07:38 -07:00
aq_ptp.h net: atlantic: PTP statistics 2020-07-20 18:07:38 -07:00
aq_ring.c aquantia: Remove the build_skb path 2020-11-24 10:59:17 -08:00
aq_ring.h net: atlantic: additional per-queue stats 2020-07-20 18:07:38 -07:00
aq_rss.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
aq_utils.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
aq_vec.c net: atlantic: additional per-queue stats 2020-07-20 18:07:38 -07:00
aq_vec.h net: atlantic: split rx and tx per-queue stats 2020-07-20 18:07:38 -07:00