Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1281573 > unrolled thread
| Started by | Sunil Goutham <sunil.kovvuri@gmail.com> |
|---|---|
| First post | 2015-12-02 11:10 +0100 |
| Last post | 2015-12-02 22:00 +0100 |
| Articles | 5 — 4 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up Sunil Goutham <sunil.kovvuri@gmail.com> - 2015-12-02 11:10 +0100
RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up Pavel Fedin <p.fedin@samsung.com> - 2015-12-02 11:50 +0100
RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up Pavel Fedin <p.fedin@samsung.com> - 2015-12-02 12:40 +0100
Re: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up Sunil Kovvuri <sunil.kovvuri@gmail.com> - 2015-12-02 12:40 +0100
Re: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up David Miller <davem@davemloft.net> - 2015-12-02 22:00 +0100
| From | Sunil Goutham <sunil.kovvuri@gmail.com> |
|---|---|
| Date | 2015-12-02 11:10 +0100 |
| Subject | [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up |
| Message-ID | <qBcwh-5Mp-7@gated-at.bofh.it> |
From: Sunil Goutham <sgoutham@cavium.com>
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 <sgoutham@cavium.com>
---
.../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 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/
[toc] | [next] | [standalone]
| From | Pavel Fedin <p.fedin@samsung.com> |
|---|---|
| Date | 2015-12-02 11:50 +0100 |
| Subject | RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up |
| Message-ID | <qBd8Z-60F-7@gated-at.bofh.it> |
| In reply to | #1281573 |
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 <sgoutham@cavium.com>
>
> 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 <sgoutham@cavium.com>
> ---
> .../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/
[toc] | [prev] | [next] | [standalone]
| From | Pavel Fedin <p.fedin@samsung.com> |
|---|---|
| Date | 2015-12-02 12:40 +0100 |
| Subject | RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up |
| Message-ID | <qBdVn-6zq-1@gated-at.bofh.it> |
| In reply to | #1281615 |
Hello again! > Subject: RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up > > Just a reminder, we have issue with this one too, which is not addressed yet. I have examined the problem thoroughly and discovered that it is a problem with experimental BGX driver patches on my 4.2 host kernel build. It fails to send NIC_MBOX_MSG_BGX_LINK_CHANGE, so nothing works. I have retested this series on top of 4.3 running on ThunderX. It has good BGX driver and everything works fine. Therefore, the whole series can be safely applied and... Tested-by: Pavel Fedin <p.fedin@samsung.com> Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia -- 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/
[toc] | [prev] | [next] | [standalone]
| From | Sunil Kovvuri <sunil.kovvuri@gmail.com> |
|---|---|
| Date | 2015-12-02 12:40 +0100 |
| Subject | Re: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up |
| Message-ID | <qBdVp-6zq-31@gated-at.bofh.it> |
| In reply to | #1281676 |
Thanks for the confirmation. On Wed, Dec 2, 2015 at 5:00 PM, Pavel Fedin <p.fedin@samsung.com> wrote: > Hello again! > >> Subject: RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up >> >> Just a reminder, we have issue with this one too, which is not addressed yet. > > I have examined the problem thoroughly and discovered that it is a problem with experimental BGX driver patches on my 4.2 host > kernel build. It fails to send NIC_MBOX_MSG_BGX_LINK_CHANGE, so nothing works. > I have retested this series on top of 4.3 running on ThunderX. It has good BGX driver and everything works fine. Therefore, the > whole series can be safely applied and... > > Tested-by: Pavel Fedin <p.fedin@samsung.com> > > Kind regards, > Pavel Fedin > Expert Engineer > Samsung Electronics Research center Russia > > -- 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/
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2015-12-02 22:00 +0100 |
| Subject | Re: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up |
| Message-ID | <qBmFl-3Od-27@gated-at.bofh.it> |
| In reply to | #1281676 |
From: Pavel Fedin <p.fedin@samsung.com> Date: Wed, 02 Dec 2015 14:30:37 +0300 > Hello again! > >> Subject: RE: [PATCH v2 4/5] net: thunderx: Switchon carrier only upon interface link up >> >> Just a reminder, we have issue with this one too, which is not addressed yet. > > I have examined the problem thoroughly and discovered that it is a problem with experimental BGX driver patches on my 4.2 host > kernel build. It fails to send NIC_MBOX_MSG_BGX_LINK_CHANGE, so nothing works. > I have retested this series on top of 4.3 running on ThunderX. It has good BGX driver and everything works fine. Therefore, the > whole series can be safely applied and... > > Tested-by: Pavel Fedin <p.fedin@samsung.com> Ok, thanks for confirming things are fine now. I'll apply this series. -- 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/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web