From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Yonglong Liu <liuyonglong@huawei.com>,
Peng Li <lipeng321@huawei.com>,
"David S . Miller" <davem@davemloft.net>,
Sasha Levin <sashal@kernel.org>,
netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.14 34/59] net: hns: All ports can not work when insmod hns ko after rmmod.
Date: Wed, 26 Dec 2018 17:38:14 -0500 [thread overview]
Message-ID: <20181226223839.150262-34-sashal@kernel.org> (raw)
In-Reply-To: <20181226223839.150262-1-sashal@kernel.org>
From: Yonglong Liu <liuyonglong@huawei.com>
[ Upstream commit 308c6cafde0147616da45e3a928adae55c428deb ]
There are two test cases:
1. Remove the 4 modules:hns_enet_drv/hns_dsaf/hnae/hns_mdio,
and install them again, must use "ifconfig down/ifconfig up"
command pair to bring port to work.
This patch calls phy_stop function when init phy to fix this bug.
2. Remove the 2 modules:hns_enet_drv/hns_dsaf, and install them again,
all ports can not use anymore, because of the phy devices register
failed(phy devices already exists).
Phy devices are registered when hns_dsaf installed, this patch
removes them when hns_dsaf removed.
The two cases are sometimes related, fixing the second case also requires
fixing the first case, so fix them together.
Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 15 +++++++++++++++
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 3 +++
2 files changed, 18 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
index 5a8dbd72fe45..07e117deeb0f 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
@@ -783,6 +783,17 @@ static int hns_mac_register_phy(struct hns_mac_cb *mac_cb)
return rc;
}
+static void hns_mac_remove_phydev(struct hns_mac_cb *mac_cb)
+{
+ if (!to_acpi_device_node(mac_cb->fw_port) || !mac_cb->phy_dev)
+ return;
+
+ phy_device_remove(mac_cb->phy_dev);
+ phy_device_free(mac_cb->phy_dev);
+
+ mac_cb->phy_dev = NULL;
+}
+
#define MAC_MEDIA_TYPE_MAX_LEN 16
static const struct {
@@ -1120,7 +1131,11 @@ void hns_mac_uninit(struct dsaf_device *dsaf_dev)
int max_port_num = hns_mac_get_max_port_num(dsaf_dev);
for (i = 0; i < max_port_num; i++) {
+ if (!dsaf_dev->mac_cb[i])
+ continue;
+
dsaf_dev->misc_op->cpld_reset_led(dsaf_dev->mac_cb[i]);
+ hns_mac_remove_phydev(dsaf_dev->mac_cb[i]);
dsaf_dev->mac_cb[i] = NULL;
}
}
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index 4faadc3ffe8c..2758c4bb9208 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -1286,6 +1286,9 @@ int hns_nic_init_phy(struct net_device *ndev, struct hnae_handle *h)
if (h->phy_if == PHY_INTERFACE_MODE_XGMII)
phy_dev->autoneg = false;
+ if (h->phy_if == PHY_INTERFACE_MODE_SGMII)
+ phy_stop(phy_dev);
+
return 0;
}
--
2.19.1
next prev parent reply other threads:[~2018-12-26 22:40 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-26 22:37 [PATCH AUTOSEL 4.14 01/59] pinctrl: meson: fix pull enable register calculation Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 02/59] powerpc: Fix COFF zImage booting on old powermacs Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 03/59] powerpc/mm: Fix linux page tables build with some configs Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 04/59] HID: ite: Add USB id match for another ITE based keyboard rfkill key quirk Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 05/59] ARM: imx: update the cpu power up timing setting on i.mx6sx Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 06/59] ARM: dts: imx7d-nitrogen7: Fix the description of the Wifi clock Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 07/59] Input: restore EV_ABS ABS_RESERVED Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 08/59] checkstack.pl: fix for aarch64 Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 09/59] xfrm: Fix error return code in xfrm_output_one() Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 10/59] xfrm: Fix bucket count reported to userspace Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 11/59] xfrm: Fix NULL pointer dereference in xfrm_input when skb_dst_force clears the dst_entry Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 12/59] netfilter: seqadj: re-load tcp header pointer after possible head reallocation Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 13/59] scsi: bnx2fc: Fix NULL dereference in error handling Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 14/59] Input: omap-keypad - fix idle configuration to not block SoC idle states Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 15/59] Input: synaptics - enable RMI on ThinkPad T560 Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 16/59] ibmvnic: Fix non-atomic memory allocation in IRQ context Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 17/59] ieee802154: ca8210: fix possible u8 overflow in ca8210_rx_done Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 18/59] x86/mm: Fix guard hole handling Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 19/59] x86/dump_pagetables: Fix LDT remap address marker Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 20/59] i40e: fix mac filter delete when setting mac address Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 21/59] USB: hso: Fix OOB memory access in hso_probe/hso_get_config_data Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 22/59] netfilter: ipset: do not call ipset_nest_end after nla_nest_cancel Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 23/59] netfilter: nat: can't use dst_hold on noref dst Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 24/59] bnx2x: Clear fip MAC when fcoe offload support is disabled Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 25/59] bnx2x: Remove configured vlans as part of unload sequence Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 26/59] bnx2x: Send update-svid ramrod with retry/poll flags enabled Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 27/59] scsi: target: iscsi: cxgbit: fix csk leak Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 28/59] scsi: target: iscsi: cxgbit: add missing spin_lock_init() Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 29/59] x86, hyperv: remove PCI dependency Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 30/59] drivers: net: xgene: Remove unnecessary forward declarations Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 31/59] w90p910_ether: remove incorrect __init annotation Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 32/59] qmi_wwan: Added support for Telit LN940 series Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 33/59] net: hns: Incorrect offset address used for some registers Sasha Levin
2018-12-26 22:38 ` Sasha Levin [this message]
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 35/59] net: hns: Some registers use wrong address according to the datasheet Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 36/59] net: hns: Fixed bug that netdev was opened twice Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 37/59] net: hns: Clean rx fbd when ae stopped Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 38/59] net: hns: Free irq when exit from abnormal branch Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 39/59] net: hns: Avoid net reset caused by pause frames storm Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 40/59] net: hns: Fix ntuple-filters status error Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 41/59] net: hns: Add mac pcs config when enable|disable mac Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 42/59] net: hns: Fix ping failed when use net bridge and send multicast Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 43/59] SUNRPC: Fix a race with XPRT_CONNECTING Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 44/59] x86/mtrr: Don't copy uninitialized gentry fields back to userspace Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 45/59] qed: Fix an error code qed_ll2_start_xmit() Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 46/59] net: macb: fix random memory corruption on RX with 64-bit DMA Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 47/59] net: macb: fix dropped RX frames due to a race Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 48/59] lan78xx: Resolve issue with changing MAC address Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 49/59] xen/netfront: tolerate frags with no data Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 50/59] vxge: ensure data0 is initialized in when fetching firmware version information Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 51/59] mac80211: free skb fraglist before freeing the skb Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 52/59] kbuild: fix false positive warning/error about missing libelf Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 53/59] net/mlx5: Typo fix in del_sw_hw_rule Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 54/59] virtio: fix test build after uio.h change Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 55/59] gpio: mvebu: only fail on missing clk if pwm is actually to be used Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 56/59] Input: synaptics - enable SMBus for HP EliteBook 840 G4 Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 57/59] net: netxen: fix a missing check and an uninitialized use Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 58/59] qmi_wwan: Fix qmap header retrieval in qmimux_rx_fixup Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 59/59] serial/sunsu: fix refcount leak Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181226223839.150262-34-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lipeng321@huawei.com \
--cc=liuyonglong@huawei.com \
--cc=netdev@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox