From: Andrew Lunn <andrew@lunn.ch>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Vivien Didelot <vivien.didelot@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Gregory Clement <gregory.clement@bootlin.com>,
Antoine Tenart <antoine.tenart@bootlin.com>,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
Nadav Haklai <nadavh@marvell.com>
Subject: Re: [PATCH net-next] net: dsa: mv88e6xxx: Add suspend/resume callbacks
Date: Wed, 16 Jan 2019 16:56:51 +0100 [thread overview]
Message-ID: <20190116155651.GC29244@lunn.ch> (raw)
In-Reply-To: <20190116153419.3208-1-miquel.raynal@bootlin.com>
On Wed, Jan 16, 2019 at 04:34:19PM +0100, Miquel Raynal wrote:
> Bring S2RAM support to the mv88e6xxx DSA driver.
>
> The content of the *_irq_poll() helper is moved in *_do_irq_poll() so
> that that the function can be called from the ->resume() callback
> without using the *work pointer.
>
> +static int __maybe_unused mv88e6xxx_suspend(struct device *dev)
> +{
> + struct dsa_switch *ds = dev_get_drvdata(dev);
> + struct mv88e6xxx_chip *chip = ds->priv;
> +
> + kthread_cancel_delayed_work_sync(&chip->irq_poll_work);
> +
> + return dsa_switch_suspend(ds);
> +}
Hi Miquel
I don't think this is sufficient. You are leaving the switch itself
running. It will still be forwarding frames. And since the host is
shutdown, there is nothing doing spanning tree protocol. So you are
likely to cause loops in your network.
Take a look at bcm_sf2:
static int bcm_sf2_sw_suspend(struct dsa_switch *ds)
{
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
unsigned int port;
bcm_sf2_intr_disable(priv);
/* Disable all ports physically present including the IMP
* port, the other ones have already been disabled during
* bcm_sf2_sw_setup
*/
for (port = 0; port < DSA_MAX_PORTS; port++) {
if (dsa_is_user_port(ds, port) || dsa_is_cpu_port(ds, port))
bcm_sf2_port_disable(ds, port, NULL);
}
return 0;
}
qca8k does something similar.
Andrew
next prev parent reply other threads:[~2019-01-16 15:56 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-16 15:34 [PATCH net-next] net: dsa: mv88e6xxx: Add suspend/resume callbacks Miquel Raynal
2019-01-16 15:56 ` Andrew Lunn [this message]
2019-01-16 22:20 ` Florian Fainelli
2019-01-16 22:23 ` Andrew Lunn
2019-01-17 15:46 ` Vivien Didelot
2019-01-17 15:50 ` Miquel Raynal
2019-01-17 18:00 ` Florian Fainelli
2019-01-17 18:56 ` Vivien Didelot
2019-01-22 10:04 ` Miquel Raynal
2019-01-22 13:20 ` Andrew Lunn
2019-01-22 13:42 ` Miquel Raynal
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=20190116155651.GC29244@lunn.ch \
--to=andrew@lunn.ch \
--cc=antoine.tenart@bootlin.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=gregory.clement@bootlin.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.chevallier@bootlin.com \
--cc=miquel.raynal@bootlin.com \
--cc=nadavh@marvell.com \
--cc=netdev@vger.kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=vivien.didelot@gmail.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).