diff options
author | Vivien Didelot <vivien.didelot@savoirfairelinux.com> | 2017-01-27 21:29:38 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-01-30 00:42:46 +0100 |
commit | 818be8489d6fc8f4cc2c7699bbfd8e1983080f10 (patch) | |
tree | 50b8e511c5aca76d6e4670c681d9de60b6ffcb96 /net/dsa | |
parent | net: dsa: use ds->num_ports when possible (diff) | |
download | linux-818be8489d6fc8f4cc2c7699bbfd8e1983080f10.tar.xz linux-818be8489d6fc8f4cc2c7699bbfd8e1983080f10.zip |
net: dsa: add ds and index to dsa_port
Add the physical switch instance and port index a DSA port belongs to to
the dsa_port structure.
That can be used later to retrieve information about a physical port
when configuring a switch fabric, or lighten up struct dsa_slave_priv.
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa')
-rw-r--r-- | net/dsa/dsa2.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 6e7b3e88b778..9f8cc26be9ea 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -670,6 +670,7 @@ struct dsa_switch *dsa_switch_alloc(struct device *dev, size_t n) { size_t size = sizeof(struct dsa_switch) + n * sizeof(struct dsa_port); struct dsa_switch *ds; + int i; ds = devm_kzalloc(dev, size, GFP_KERNEL); if (!ds) @@ -678,6 +679,11 @@ struct dsa_switch *dsa_switch_alloc(struct device *dev, size_t n) ds->dev = dev; ds->num_ports = n; + for (i = 0; i < ds->num_ports; ++i) { + ds->ports[i].index = i; + ds->ports[i].ds = ds; + } + return ds; } EXPORT_SYMBOL_GPL(dsa_switch_alloc); |