Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756682AbbLBKmi (ORCPT ); Wed, 2 Dec 2015 05:42:38 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:23060 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755933AbbLBKmg (ORCPT ); Wed, 2 Dec 2015 05:42:36 -0500 X-AuditID: cbfec7f5-f79b16d000005389-70-565ecb19504c From: Pavel Fedin To: "'Sunil Goutham'" , netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Sunil.Goutham@caviumnetworks.com, "'Sunil Goutham'" References: <1449050777-37836-1-git-send-email-sunil.kovvuri@gmail.com> <1449050777-37836-5-git-send-email-sunil.kovvuri@gmail.com> In-reply-to: <1449050777-37836-5-git-send-email-sunil.kovvuri@gmail.com> Subject: RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up Date: Wed, 02 Dec 2015 13:42:32 +0300 Message-id: <00ec01d12cee$26a28a00$73e79e00$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AQLKpF6h4T7FJmaw33RVScaDdukqhgEq2HRGnLs8g5A= Content-language: ru X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRmVeSWpSXmKPExsVy+t/xq7qSp+PCDFo6FC02Pb7GanF51xw2 i2MLxCwuX/7BbHHg414Wi0VN71gc2Dxm/F7E4rHhRD+rx85Zd9k9Ni+p9/i8SS6ANYrLJiU1 J7MstUjfLoEr41xbfcF+xYobky+zNTA+ke5i5OSQEDCROHxkFguELSZx4d56ti5GLg4hgaWM Ev1H3jJDON8ZJb7MXsUMUsUmoC5x+usHsA4RAVeJNdvWgHUwC0xklPi28B8rREcro8THbTvB OjgFPCQaOmexgdjCApESB9aeZQexWQRUJb4ve8LUxcjBwStgKXGuUxskzCsgKPFj8j2wBcwC WhLrdx5ngrDlJTavecsMcaqCxI6zrxkhjrCSeLCijRGiRkRi2r97zBMYhWYhGTULyahZSEbN QtKygJFlFaNoamlyQXFSeq6RXnFibnFpXrpecn7uJkZIhHzdwbj0mNUhRgEORiUe3hU8cWFC rIllxZW5hxglOJiVRHi9ZIBCvCmJlVWpRfnxRaU5qcWHGKU5WJTEeWfueh8iJJCeWJKanZpa kFoEk2Xi4JRqYNSq3t9RsXGd6QS9p3ckj20PfV+c8ETSdMbrGfMlvOofTLTVOdBX8Upyj0jQ w6NKtf3FstkCx2ec2aV3gGH5zqsH44WyT9cscQmaf8gro2JDi+fEcN8whZP3fj1XMmmd/S/p +K5t26N77fLNf5xIf76+e9EZh37F/zbrpjvPaX8yw/JRlnLwHn0lluKMREMt5qLiRADVgeCL jAIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4414 Lines: 124 Just a reminder, we have issue with this one too, which is not addressed yet. Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia > -----Original Message----- > From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org] On Behalf Of Sunil > Goutham > Sent: Wednesday, December 02, 2015 1:06 PM > To: netdev@vger.kernel.org > Cc: linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > Sunil.Goutham@caviumnetworks.com; Sunil Goutham > Subject: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up > > From: Sunil Goutham > > Call netif_carrier_on() only if interface's link is up. Switching this on > upon IFF_UP by default, is causing issues with ethernet channel bonding > in LACP mode. Initial NETDEV_CHANGE notification was being skipped. > > Also fixed some issues with link/speed/duplex reporting via ethtool. > > Signed-off-by: Sunil Goutham > --- > .../net/ethernet/cavium/thunder/nicvf_ethtool.c | 16 +++++++++++++++- > drivers/net/ethernet/cavium/thunder/nicvf_main.c | 4 +--- > drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 2 ++ > 3 files changed, 18 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c > b/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c > index af54c10..a12b2e3 100644 > --- a/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c > +++ b/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c > @@ -112,6 +112,13 @@ static int nicvf_get_settings(struct net_device *netdev, > > cmd->supported = 0; > cmd->transceiver = XCVR_EXTERNAL; > + > + if (!nic->link_up) { > + cmd->duplex = DUPLEX_UNKNOWN; > + ethtool_cmd_speed_set(cmd, SPEED_UNKNOWN); > + return 0; > + } > + > if (nic->speed <= 1000) { > cmd->port = PORT_MII; > cmd->autoneg = AUTONEG_ENABLE; > @@ -125,6 +132,13 @@ static int nicvf_get_settings(struct net_device *netdev, > return 0; > } > > +static u32 nicvf_get_link(struct net_device *netdev) > +{ > + struct nicvf *nic = netdev_priv(netdev); > + > + return nic->link_up; > +} > + > static void nicvf_get_drvinfo(struct net_device *netdev, > struct ethtool_drvinfo *info) > { > @@ -660,7 +674,7 @@ static int nicvf_set_channels(struct net_device *dev, > > static const struct ethtool_ops nicvf_ethtool_ops = { > .get_settings = nicvf_get_settings, > - .get_link = ethtool_op_get_link, > + .get_link = nicvf_get_link, > .get_drvinfo = nicvf_get_drvinfo, > .get_msglevel = nicvf_get_msglevel, > .set_msglevel = nicvf_set_msglevel, > diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_main.c > b/drivers/net/ethernet/cavium/thunder/nicvf_main.c > index 7f709cb..dde8dc7 100644 > --- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c > +++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c > @@ -1057,6 +1057,7 @@ int nicvf_stop(struct net_device *netdev) > > netif_carrier_off(netdev); > netif_tx_stop_all_queues(nic->netdev); > + nic->link_up = false; > > /* Teardown secondary qsets first */ > if (!nic->sqs_mode) { > @@ -1211,9 +1212,6 @@ int nicvf_open(struct net_device *netdev) > nic->drv_stats.txq_stop = 0; > nic->drv_stats.txq_wake = 0; > > - netif_carrier_on(netdev); > - netif_tx_start_all_queues(netdev); > - > return 0; > cleanup: > nicvf_disable_intr(nic, NICVF_INTR_MBOX, 0); > diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > index 6534b73..d77e41a 100644 > --- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > +++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c > @@ -612,6 +612,8 @@ static void bgx_poll_for_link(struct work_struct *work) > lmac->last_duplex = 1; > } else { > lmac->link_up = 0; > + lmac->last_speed = SPEED_UNKNOWN; > + lmac->last_duplex = DUPLEX_UNKNOWN; > } > > if (lmac->last_link != lmac->link_up) { > -- > 1.7.1 > > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/