From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: netdev@vger.kernel.org
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Kurt Kanzenbach <kurt@linutronix.de>,
Hauke Mehrtens <hauke@hauke-m.de>,
Woojung Huh <woojung.huh@microchip.com>,
UNGLinuxDriver@microchip.com, Sean Wang <sean.wang@mediatek.com>,
Landen Chao <Landen.Chao@mediatek.com>,
DENG Qingfang <dqfext@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Linus Walleij <linus.walleij@linaro.org>,
George McCollister <george.mccollister@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Oleksij Rempel <linux@rempel-privat.de>,
Michael Grzeschik <m.grzeschik@pengutronix.de>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
Lino Sanfilippo <LinoSanfilippo@gmx.de>
Subject: [PATCH v2 net 0/5] Make DSA switch drivers compatible with masters which unregister on shutdown
Date: Fri, 17 Sep 2021 16:34:31 +0300 [thread overview]
Message-ID: <20210917133436.553995-1-vladimir.oltean@nxp.com> (raw)
Changes in v2:
- fix build for b53_mmap
- use unregister_netdevice_many
It was reported by Lino here:
https://lore.kernel.org/netdev/20210909095324.12978-1-LinoSanfilippo@gmx.de/
that when the DSA master attempts to unregister its net_device on
shutdown, DSA should prevent that operation from succeeding because it
holds a reference to it. This hangs the shutdown process.
This issue was essentially introduced in commit 2f1e8ea726e9 ("net: dsa:
link interfaces with the DSA master to get rid of lockdep warnings").
The present series patches all DSA drivers to handle that case,
depending on whether those drivers were introduced before or after the
offending commit, a different Fixes: tag is specified for them.
The approach taken by this series solves the issue in essentially the
same way as Lino's patches, except for three key differences:
- this series takes a more minimal approach in what is done on shutdown,
we do not attempt a full tree teardown as that is not strictly
necessary. I might revisit this if there are compelling reasons to do
otherwise
- this series fixes the issues for all DSA drivers, not just KSZ9897
- this series works even if the ->remove driver method gets called for
the same device too, not just ->shutdown. This is really possible to
happen for SPI device drivers, and potentially possible for other bus
device drivers too.
Vladimir Oltean (5):
net: mdio: introduce a shutdown method to mdio device drivers
net: dsa: be compatible with masters which unregister on shutdown
net: dsa: hellcreek: be compatible with masters which unregister on
shutdown
net: dsa: microchip: ksz8863: be compatible with masters which
unregister on shutdown
net: dsa: xrs700x: be compatible with masters which unregister on
shutdown
drivers/net/dsa/b53/b53_mdio.c | 21 ++++++++-
drivers/net/dsa/b53/b53_mmap.c | 13 ++++++
drivers/net/dsa/b53/b53_priv.h | 5 +++
drivers/net/dsa/b53/b53_spi.c | 13 ++++++
drivers/net/dsa/b53/b53_srab.c | 21 ++++++++-
drivers/net/dsa/bcm_sf2.c | 12 ++++++
drivers/net/dsa/dsa_loop.c | 22 +++++++++-
drivers/net/dsa/hirschmann/hellcreek.c | 16 +++++++
drivers/net/dsa/lan9303-core.c | 6 +++
drivers/net/dsa/lan9303.h | 1 +
drivers/net/dsa/lan9303_i2c.c | 24 +++++++++--
drivers/net/dsa/lan9303_mdio.c | 15 +++++++
drivers/net/dsa/lantiq_gswip.c | 18 ++++++++
drivers/net/dsa/microchip/ksz8795_spi.c | 11 ++++-
drivers/net/dsa/microchip/ksz8863_smi.c | 13 ++++++
drivers/net/dsa/microchip/ksz9477_i2c.c | 14 +++++-
drivers/net/dsa/microchip/ksz9477_spi.c | 8 +++-
drivers/net/dsa/mt7530.c | 18 ++++++++
drivers/net/dsa/mv88e6060.c | 18 ++++++++
drivers/net/dsa/mv88e6xxx/chip.c | 22 +++++++++-
drivers/net/dsa/ocelot/felix_vsc9959.c | 20 ++++++++-
drivers/net/dsa/ocelot/seville_vsc9953.c | 20 ++++++++-
drivers/net/dsa/qca/ar9331.c | 18 ++++++++
drivers/net/dsa/qca8k.c | 18 ++++++++
drivers/net/dsa/realtek-smi-core.c | 20 ++++++++-
drivers/net/dsa/sja1105/sja1105_main.c | 21 ++++++++-
drivers/net/dsa/vitesse-vsc73xx-core.c | 6 +++
drivers/net/dsa/vitesse-vsc73xx-platform.c | 22 +++++++++-
drivers/net/dsa/vitesse-vsc73xx-spi.c | 22 +++++++++-
drivers/net/dsa/vitesse-vsc73xx.h | 1 +
drivers/net/dsa/xrs700x/xrs700x.c | 6 +++
drivers/net/dsa/xrs700x/xrs700x.h | 1 +
drivers/net/dsa/xrs700x/xrs700x_i2c.c | 18 ++++++++
drivers/net/dsa/xrs700x/xrs700x_mdio.c | 18 ++++++++
drivers/net/phy/mdio_device.c | 11 +++++
include/linux/mdio.h | 3 ++
include/net/dsa.h | 1 +
net/dsa/dsa2.c | 50 ++++++++++++++++++++++
38 files changed, 543 insertions(+), 24 deletions(-)
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: netdev@vger.kernel.org
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Kurt Kanzenbach <kurt@linutronix.de>,
Hauke Mehrtens <hauke@hauke-m.de>,
Woojung Huh <woojung.huh@microchip.com>,
UNGLinuxDriver@microchip.com, Sean Wang <sean.wang@mediatek.com>,
Landen Chao <Landen.Chao@mediatek.com>,
DENG Qingfang <dqfext@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Linus Walleij <linus.walleij@linaro.org>,
George McCollister <george.mccollister@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Oleksij Rempel <linux@rempel-privat.de>,
Michael Grzeschik <m.grzeschik@pengutronix.de>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
Lino Sanfilippo <LinoSanfilippo@gmx.de>
Subject: [PATCH v2 net 0/5] Make DSA switch drivers compatible with masters which unregister on shutdown
Date: Fri, 17 Sep 2021 16:34:31 +0300 [thread overview]
Message-ID: <20210917133436.553995-1-vladimir.oltean@nxp.com> (raw)
Changes in v2:
- fix build for b53_mmap
- use unregister_netdevice_many
It was reported by Lino here:
https://lore.kernel.org/netdev/20210909095324.12978-1-LinoSanfilippo@gmx.de/
that when the DSA master attempts to unregister its net_device on
shutdown, DSA should prevent that operation from succeeding because it
holds a reference to it. This hangs the shutdown process.
This issue was essentially introduced in commit 2f1e8ea726e9 ("net: dsa:
link interfaces with the DSA master to get rid of lockdep warnings").
The present series patches all DSA drivers to handle that case,
depending on whether those drivers were introduced before or after the
offending commit, a different Fixes: tag is specified for them.
The approach taken by this series solves the issue in essentially the
same way as Lino's patches, except for three key differences:
- this series takes a more minimal approach in what is done on shutdown,
we do not attempt a full tree teardown as that is not strictly
necessary. I might revisit this if there are compelling reasons to do
otherwise
- this series fixes the issues for all DSA drivers, not just KSZ9897
- this series works even if the ->remove driver method gets called for
the same device too, not just ->shutdown. This is really possible to
happen for SPI device drivers, and potentially possible for other bus
device drivers too.
Vladimir Oltean (5):
net: mdio: introduce a shutdown method to mdio device drivers
net: dsa: be compatible with masters which unregister on shutdown
net: dsa: hellcreek: be compatible with masters which unregister on
shutdown
net: dsa: microchip: ksz8863: be compatible with masters which
unregister on shutdown
net: dsa: xrs700x: be compatible with masters which unregister on
shutdown
drivers/net/dsa/b53/b53_mdio.c | 21 ++++++++-
drivers/net/dsa/b53/b53_mmap.c | 13 ++++++
drivers/net/dsa/b53/b53_priv.h | 5 +++
drivers/net/dsa/b53/b53_spi.c | 13 ++++++
drivers/net/dsa/b53/b53_srab.c | 21 ++++++++-
drivers/net/dsa/bcm_sf2.c | 12 ++++++
drivers/net/dsa/dsa_loop.c | 22 +++++++++-
drivers/net/dsa/hirschmann/hellcreek.c | 16 +++++++
drivers/net/dsa/lan9303-core.c | 6 +++
drivers/net/dsa/lan9303.h | 1 +
drivers/net/dsa/lan9303_i2c.c | 24 +++++++++--
drivers/net/dsa/lan9303_mdio.c | 15 +++++++
drivers/net/dsa/lantiq_gswip.c | 18 ++++++++
drivers/net/dsa/microchip/ksz8795_spi.c | 11 ++++-
drivers/net/dsa/microchip/ksz8863_smi.c | 13 ++++++
drivers/net/dsa/microchip/ksz9477_i2c.c | 14 +++++-
drivers/net/dsa/microchip/ksz9477_spi.c | 8 +++-
drivers/net/dsa/mt7530.c | 18 ++++++++
drivers/net/dsa/mv88e6060.c | 18 ++++++++
drivers/net/dsa/mv88e6xxx/chip.c | 22 +++++++++-
drivers/net/dsa/ocelot/felix_vsc9959.c | 20 ++++++++-
drivers/net/dsa/ocelot/seville_vsc9953.c | 20 ++++++++-
drivers/net/dsa/qca/ar9331.c | 18 ++++++++
drivers/net/dsa/qca8k.c | 18 ++++++++
drivers/net/dsa/realtek-smi-core.c | 20 ++++++++-
drivers/net/dsa/sja1105/sja1105_main.c | 21 ++++++++-
drivers/net/dsa/vitesse-vsc73xx-core.c | 6 +++
drivers/net/dsa/vitesse-vsc73xx-platform.c | 22 +++++++++-
drivers/net/dsa/vitesse-vsc73xx-spi.c | 22 +++++++++-
drivers/net/dsa/vitesse-vsc73xx.h | 1 +
drivers/net/dsa/xrs700x/xrs700x.c | 6 +++
drivers/net/dsa/xrs700x/xrs700x.h | 1 +
drivers/net/dsa/xrs700x/xrs700x_i2c.c | 18 ++++++++
drivers/net/dsa/xrs700x/xrs700x_mdio.c | 18 ++++++++
drivers/net/phy/mdio_device.c | 11 +++++
include/linux/mdio.h | 3 ++
include/net/dsa.h | 1 +
net/dsa/dsa2.c | 50 ++++++++++++++++++++++
38 files changed, 543 insertions(+), 24 deletions(-)
--
2.25.1
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: netdev@vger.kernel.org
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Kurt Kanzenbach <kurt@linutronix.de>,
Hauke Mehrtens <hauke@hauke-m.de>,
Woojung Huh <woojung.huh@microchip.com>,
UNGLinuxDriver@microchip.com, Sean Wang <sean.wang@mediatek.com>,
Landen Chao <Landen.Chao@mediatek.com>,
DENG Qingfang <dqfext@gmail.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Linus Walleij <linus.walleij@linaro.org>,
George McCollister <george.mccollister@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Oleksij Rempel <linux@rempel-privat.de>,
Michael Grzeschik <m.grzeschik@pengutronix.de>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
Lino Sanfilippo <LinoSanfilippo@gmx.de>
Subject: [PATCH v2 net 0/5] Make DSA switch drivers compatible with masters which unregister on shutdown
Date: Fri, 17 Sep 2021 16:34:31 +0300 [thread overview]
Message-ID: <20210917133436.553995-1-vladimir.oltean@nxp.com> (raw)
Changes in v2:
- fix build for b53_mmap
- use unregister_netdevice_many
It was reported by Lino here:
https://lore.kernel.org/netdev/20210909095324.12978-1-LinoSanfilippo@gmx.de/
that when the DSA master attempts to unregister its net_device on
shutdown, DSA should prevent that operation from succeeding because it
holds a reference to it. This hangs the shutdown process.
This issue was essentially introduced in commit 2f1e8ea726e9 ("net: dsa:
link interfaces with the DSA master to get rid of lockdep warnings").
The present series patches all DSA drivers to handle that case,
depending on whether those drivers were introduced before or after the
offending commit, a different Fixes: tag is specified for them.
The approach taken by this series solves the issue in essentially the
same way as Lino's patches, except for three key differences:
- this series takes a more minimal approach in what is done on shutdown,
we do not attempt a full tree teardown as that is not strictly
necessary. I might revisit this if there are compelling reasons to do
otherwise
- this series fixes the issues for all DSA drivers, not just KSZ9897
- this series works even if the ->remove driver method gets called for
the same device too, not just ->shutdown. This is really possible to
happen for SPI device drivers, and potentially possible for other bus
device drivers too.
Vladimir Oltean (5):
net: mdio: introduce a shutdown method to mdio device drivers
net: dsa: be compatible with masters which unregister on shutdown
net: dsa: hellcreek: be compatible with masters which unregister on
shutdown
net: dsa: microchip: ksz8863: be compatible with masters which
unregister on shutdown
net: dsa: xrs700x: be compatible with masters which unregister on
shutdown
drivers/net/dsa/b53/b53_mdio.c | 21 ++++++++-
drivers/net/dsa/b53/b53_mmap.c | 13 ++++++
drivers/net/dsa/b53/b53_priv.h | 5 +++
drivers/net/dsa/b53/b53_spi.c | 13 ++++++
drivers/net/dsa/b53/b53_srab.c | 21 ++++++++-
drivers/net/dsa/bcm_sf2.c | 12 ++++++
drivers/net/dsa/dsa_loop.c | 22 +++++++++-
drivers/net/dsa/hirschmann/hellcreek.c | 16 +++++++
drivers/net/dsa/lan9303-core.c | 6 +++
drivers/net/dsa/lan9303.h | 1 +
drivers/net/dsa/lan9303_i2c.c | 24 +++++++++--
drivers/net/dsa/lan9303_mdio.c | 15 +++++++
drivers/net/dsa/lantiq_gswip.c | 18 ++++++++
drivers/net/dsa/microchip/ksz8795_spi.c | 11 ++++-
drivers/net/dsa/microchip/ksz8863_smi.c | 13 ++++++
drivers/net/dsa/microchip/ksz9477_i2c.c | 14 +++++-
drivers/net/dsa/microchip/ksz9477_spi.c | 8 +++-
drivers/net/dsa/mt7530.c | 18 ++++++++
drivers/net/dsa/mv88e6060.c | 18 ++++++++
drivers/net/dsa/mv88e6xxx/chip.c | 22 +++++++++-
drivers/net/dsa/ocelot/felix_vsc9959.c | 20 ++++++++-
drivers/net/dsa/ocelot/seville_vsc9953.c | 20 ++++++++-
drivers/net/dsa/qca/ar9331.c | 18 ++++++++
drivers/net/dsa/qca8k.c | 18 ++++++++
drivers/net/dsa/realtek-smi-core.c | 20 ++++++++-
drivers/net/dsa/sja1105/sja1105_main.c | 21 ++++++++-
drivers/net/dsa/vitesse-vsc73xx-core.c | 6 +++
drivers/net/dsa/vitesse-vsc73xx-platform.c | 22 +++++++++-
drivers/net/dsa/vitesse-vsc73xx-spi.c | 22 +++++++++-
drivers/net/dsa/vitesse-vsc73xx.h | 1 +
drivers/net/dsa/xrs700x/xrs700x.c | 6 +++
drivers/net/dsa/xrs700x/xrs700x.h | 1 +
drivers/net/dsa/xrs700x/xrs700x_i2c.c | 18 ++++++++
drivers/net/dsa/xrs700x/xrs700x_mdio.c | 18 ++++++++
drivers/net/phy/mdio_device.c | 11 +++++
include/linux/mdio.h | 3 ++
include/net/dsa.h | 1 +
net/dsa/dsa2.c | 50 ++++++++++++++++++++++
38 files changed, 543 insertions(+), 24 deletions(-)
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2021-09-17 13:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-17 13:34 Vladimir Oltean [this message]
2021-09-17 13:34 ` [PATCH v2 net 0/5] Make DSA switch drivers compatible with masters which unregister on shutdown Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` [PATCH v2 net 1/5] net: mdio: introduce a shutdown method to mdio device drivers Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` [PATCH v2 net 2/5] net: dsa: be compatible with masters which unregister on shutdown Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` [PATCH v2 net 3/5] net: dsa: hellcreek: " Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` [PATCH v2 net 4/5] net: dsa: microchip: ksz8863: " Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` [PATCH v2 net 5/5] net: dsa: xrs700x: " Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-17 13:34 ` Vladimir Oltean
2021-09-19 11:20 ` [PATCH v2 net 0/5] Make DSA switch drivers " patchwork-bot+netdevbpf
2021-09-19 11:20 ` patchwork-bot+netdevbpf
2021-09-19 11:20 ` patchwork-bot+netdevbpf
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=20210917133436.553995-1-vladimir.oltean@nxp.com \
--to=vladimir.oltean@nxp.com \
--cc=Landen.Chao@mediatek.com \
--cc=LinoSanfilippo@gmx.de \
--cc=UNGLinuxDriver@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andrew@lunn.ch \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=dqfext@gmail.com \
--cc=f.fainelli@gmail.com \
--cc=george.mccollister@gmail.com \
--cc=hauke@hauke-m.de \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=kurt@linutronix.de \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=linux@rempel-privat.de \
--cc=m.grzeschik@pengutronix.de \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=sean.wang@mediatek.com \
--cc=vivien.didelot@gmail.com \
--cc=woojung.huh@microchip.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.