From: Russell King - ARM Linux <linux@armlinux.org.uk>
To: Antoine Tenart <antoine.tenart@bootlin.com>
Cc: davem@davemloft.net, kishon@ti.com, gregory.clement@bootlin.com,
andrew@lunn.ch, jason@lakedaemon.net,
sebastian.hesselbarth@gmail.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com,
maxime.chevallier@bootlin.com, miquel.raynal@bootlin.com,
nadavh@marvell.com, stefanc@marvell.com, ymarkman@marvell.com,
mw@semihalf.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH net-next v3 02/10] net: mvpp2: phylink support
Date: Mon, 27 Aug 2018 17:50:59 +0100 [thread overview]
Message-ID: <20180827165058.GD30658@n2100.armlinux.org.uk> (raw)
In-Reply-To: <20180517082939.14598-3-antoine.tenart@bootlin.com>
On Thu, May 17, 2018 at 10:29:31AM +0200, Antoine Tenart wrote:
> +static void mvpp2_mac_config(struct net_device *dev, unsigned int mode,
> + const struct phylink_link_state *state)
> +{
> + struct mvpp2_port *port = netdev_priv(dev);
> +
> + /* Check for invalid configuration */
> + if (state->interface == PHY_INTERFACE_MODE_10GKR && port->gop_id != 0) {
> + netdev_err(dev, "Invalid mode on %s\n", dev->name);
> + return;
> + }
> +
> + netif_tx_stop_all_queues(port->dev);
> + if (!port->has_phy)
> + netif_carrier_off(port->dev);
...
> + /* If the port already was up, make sure it's still in the same state */
> + if (state->link || !port->has_phy) {
> + mvpp2_port_enable(port);
> +
> + mvpp2_egress_enable(port);
> + mvpp2_ingress_enable(port);
> + if (!port->has_phy)
> + netif_carrier_on(dev);
> + netif_tx_wake_all_queues(dev);
> + }
I'm guessing that the above is what is classed as "small fixes"
in the cover letter for this series - as such I didn't look closely
at this patch, but I should have, because this is not a "small fix".
I don't find the above code in previous patches, and I don't find
any description about why this has changed.
I'm on record for having said (many times) that drivers that are
converted to phylink should _not_ mess with the net device carrier
state themselves, but should leave it to phylink to manage.
The above appears to cause a problem when testing on a singleshot
mcbin board - as a direct result of the above, I find that _all_
the network devices apparently have link, including those which
have no SFP inserted into the cage. This results in debian jessie
hanging at boot for over 1 minute while systemd tries to bring up
all network devices.
The same should be true of the doubleshot board's 1G cage - which
is the same as the singleshot in every respect, and the singleshot
exhibits this problem there as well. I haven't actually tested
this on the doubleshot though.
Have you identified a case where mac_config() is called with the
link up for which a major reconfiguration is required? mac_config()
will get called for small reconfigurations such as changing the
pause parameters (which should _not_ require the queues to be
restarted) but the link should always be down for major
reconfigurations such sa changing the PHY interface mode.
mac_config() can also be called when nothing has changed - if we've
decided to re-run the link state resolve, it can be called with the
same parameters as previously, especially now that we have polling
of a GPIO for link state monitoring. With your code above, this will
cause mvpp2 to down/up the carrier state every second.
Note that state->link here is the _future_ state of the link, which
may change state before the mac_link_up()/down() functions have been
called - turning the carrier on/off like this will prevent these
callbacks being made, and the link state being printed by phylink.
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 13.8Mbps down 630kbps up
According to speedtest.net: 13Mbps down 490kbps up
next prev parent reply other threads:[~2018-08-27 16:50 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-17 8:29 [PATCH net-next v3 00/10] net: mvpp2: phylink conversion Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 01/10] net: mvpp2: align the ethtool ops definition Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 02/10] net: mvpp2: phylink support Antoine Tenart
2018-08-27 16:50 ` Russell King - ARM Linux [this message]
2018-08-31 13:36 ` Antoine Tenart
2018-08-31 14:11 ` Russell King - ARM Linux
2018-08-31 14:37 ` Andrew Lunn
2018-08-31 15:21 ` Russell King - ARM Linux
2018-09-12 14:34 ` Antoine Tenart
2018-08-31 15:08 ` Antoine Tenart
2018-08-31 14:18 ` Andrew Lunn
2018-08-31 14:23 ` Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 03/10] phy: add 2.5G SGMII mode to the phy_mode enum Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 04/10] phy: cp110-comphy: 2.5G SGMII mode Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 05/10] net: mvpp2: 1000baseX support Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 06/10] net: mvpp2: 2500baseX support Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 07/10] arm64: dts: marvell: mcbin: add 10G SFP support Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 08/10] arm64: dts: marvell: mcbin: enable the fourth network interface Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 09/10] arm64: dts: marvell: 8040-db: describe the 10G interfaces as fixed-link Antoine Tenart
2018-05-17 8:29 ` [PATCH net-next v3 10/10] arm64: dts: marvell: 7040-db: describe the 10G interface " Antoine Tenart
2018-05-17 9:18 ` [PATCH net-next v3 00/10] net: mvpp2: phylink conversion Russell King - ARM Linux
2018-05-17 9:26 ` Antoine Tenart
2018-05-17 12:23 ` Gregory CLEMENT
2018-05-17 20:12 ` David Miller
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=20180827165058.GD30658@n2100.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=andrew@lunn.ch \
--cc=antoine.tenart@bootlin.com \
--cc=davem@davemloft.net \
--cc=gregory.clement@bootlin.com \
--cc=jason@lakedaemon.net \
--cc=kishon@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.chevallier@bootlin.com \
--cc=miquel.raynal@bootlin.com \
--cc=mw@semihalf.com \
--cc=nadavh@marvell.com \
--cc=netdev@vger.kernel.org \
--cc=sebastian.hesselbarth@gmail.com \
--cc=stefanc@marvell.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=ymarkman@marvell.com \
/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;
as well as URLs for NNTP newsgroup(s).