[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221115011847.2843127-1-vladimir.oltean@nxp.com>
Date: Tue, 15 Nov 2022 03:18:41 +0200
From: Vladimir Oltean <vladimir.oltean@....com>
To: netdev@...r.kernel.org
Cc: Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>,
Vladimir Oltean <olteanv@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Michael Walle <michael@...le.cc>,
Heiko Thiery <heiko.thiery@...il.com>
Subject: [PATCH v2 net-next 0/6] Autoload DSA tagging driver when dynamically changing protocol
v1->v2:
- fix module auto-loading when changing tag protocol via sysfs
(don't pass sysfs-formatted string with '\n' to request_module())
- change modalias format from "dsa_tag-21" to "dsa_tag:id-21".
- move some private DSA helpers to net/dsa/dsa_priv.h.
v1 at:
https://patchwork.kernel.org/project/netdevbpf/list/?series=689585
This patch set solves the issue reported by Michael and Heiko here:
https://lore.kernel.org/lkml/20221027113248.420216-1-michael@walle.cc/
making full use of Michael's suggestion of having two modaliases: one
gets used for loading the tagging protocol when it's the default one
reported by the switch driver, the other gets loaded at user's request,
by name.
# modinfo tag_ocelot
filename: /lib/modules/6.1.0-rc4+/kernel/net/dsa/tag_ocelot.ko
license: GPL v2
alias: dsa_tag:seville
alias: dsa_tag:id-21
alias: dsa_tag:ocelot
alias: dsa_tag:id-15
depends: dsa_core
intree: Y
name: tag_ocelot
vermagic: 6.1.0-rc4+ SMP preempt mod_unload modversions aarch64
Tested on NXP LS1028A-RDB with the following device tree addition:
&mscc_felix_port4 {
dsa-tag-protocol = "ocelot-8021q";
};
&mscc_felix_port5 {
dsa-tag-protocol = "ocelot-8021q";
};
CONFIG_NET_DSA and everything that depends on it is built as module.
Everything auto-loads, and "cat /sys/class/net/eno2/dsa/tagging" shows
"ocelot-8021q". Traffic works as well. Furthermore, "echo ocelot-8021q"
into the aforementioned sysfs file now auto-loads the driver for it.
Vladimir Oltean (6):
net: dsa: stop exposing tag proto module helpers to the world
net: dsa: rename tagging protocol driver modalias
net: dsa: provide a second modalias to tag proto drivers based on
their name
net: dsa: strip sysfs "tagging" string of trailing newline
net: dsa: rename dsa_tag_driver_get() to dsa_tag_driver_get_by_id()
net: dsa: autoload tag driver module on tagging protocol change
include/net/dsa.h | 70 ---------------------------------
net/dsa/dsa.c | 10 +++--
net/dsa/dsa2.c | 4 +-
net/dsa/dsa_priv.h | 79 +++++++++++++++++++++++++++++++++++++-
net/dsa/master.c | 15 +++++++-
net/dsa/tag_ar9331.c | 6 ++-
net/dsa/tag_brcm.c | 16 +++++---
net/dsa/tag_dsa.c | 11 ++++--
net/dsa/tag_gswip.c | 6 ++-
net/dsa/tag_hellcreek.c | 6 ++-
net/dsa/tag_ksz.c | 21 ++++++----
net/dsa/tag_lan9303.c | 6 ++-
net/dsa/tag_mtk.c | 6 ++-
net/dsa/tag_ocelot.c | 11 ++++--
net/dsa/tag_ocelot_8021q.c | 6 ++-
net/dsa/tag_qca.c | 6 ++-
net/dsa/tag_rtl4_a.c | 6 ++-
net/dsa/tag_rtl8_4.c | 7 +++-
net/dsa/tag_rzn1_a5psw.c | 6 ++-
net/dsa/tag_sja1105.c | 11 ++++--
net/dsa/tag_trailer.c | 6 ++-
net/dsa/tag_xrs700x.c | 6 ++-
22 files changed, 191 insertions(+), 130 deletions(-)
--
2.34.1
Powered by blists - more mailing lists