From: Florian Fainelli <f.fainelli@gmail•com>
To: Andrew Lunn <andrew@lunn•ch>
Cc: netdev@vger•kernel.org, davem@davemloft•net,
vivien.didelot@savoirfairelinux•com, john@phrozen•org
Subject: Re: [PATCH net-next 4/9] net: dsa: Initialize ds->enabled_port_mask and ds->phys_mii_mask
Date: Sun, 5 Jun 2016 15:38:59 -0700 [thread overview]
Message-ID: <5754AA03.7050208@gmail.com> (raw)
In-Reply-To: <20160604202959.GF2063@lunn.ch>
Le 04/06/2016 13:29, Andrew Lunn a écrit :
>> @@ -517,6 +541,15 @@ static int dsa_parse_ports_dn(struct device_node *ports, struct dsa_switch *ds)
>> return -EINVAL;
>>
>> ds->ports[reg].dn = port;
>> +
>> + if (dsa_port_is_cpu(port))
>> + ds->dst->cpu_port = reg;
>> + else
>> + /* Initialize enabled_port_mask now for drv->setup()
>> + * to have access to a correct value, just like what
>> + * net/dsa/dsa.c::dsa_switch_setup_one does.
>> + */
>> + ds->enabled_port_mask |= 1 << reg;
>
> Hi Florian
>
> You need to be careful here. There can be multiple CPU ports, in
> different switches. We want dst->cpu_port to be deterministic,
> independent of the order switches are registered. Which is why i set
> it as part of dsa_cpu_parse(), which only happens when all the
> switches have registered, and we are parsing their device tree nodes
> in order. So we guarantee dst->cpu_port is the first CPU node.
Ah OK, I completely missed that part and just wanted to avoid walking
the ports children nodes more than twice.
We might be able to get away with just initializing
ds->enabled_port_mask here actually.
>
> You now set dst->cpu_port via dsa_parse_ports_dn(), so it is now non
> deterministic, it depends on the probe order of the switches.
>
> In the long run, i want to deprecate and then remove dst->cpu_port,
> but i'm not that far yet.
>
> Please rethink this part of the patch, keeping in mind you have
> multiple switches, with multiple CPU and DSA ports, all connected in
> some crazy fashion.
--
Florian
next prev parent reply other threads:[~2016-06-05 22:39 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-04 0:05 [PATCH net-next 0/9] net: dsa: misc improvements Florian Fainelli
2016-06-04 0:05 ` [PATCH net-next 1/9] net: dsa: Prepare to support legacy DT binding Florian Fainelli
2016-06-04 0:05 ` [PATCH net-next] net: dsa: Provide CPU port statistics to master netdev Florian Fainelli
2016-06-04 0:06 ` Florian Fainelli
2016-06-04 0:05 ` [PATCH net-next] net: dsa: bcm_sf2: Implement FDB operations Florian Fainelli
2016-06-04 0:06 ` Florian Fainelli
2016-06-06 13:30 ` Vivien Didelot
2016-06-04 0:05 ` [PATCH net-next 2/9] net: dsa: Add support for parsing the old binding Florian Fainelli
2016-06-04 19:44 ` Andrew Lunn
2016-06-04 20:00 ` Andrew Lunn
2016-06-05 22:42 ` Florian Fainelli
2016-06-06 3:19 ` Andrew Lunn
2016-06-06 20:13 ` Florian Fainelli
2016-06-04 0:05 ` [PATCH net-next 3/9] net: dsa: Provide unique DSA slave MII bus names Florian Fainelli
2016-06-04 20:00 ` Andrew Lunn
2016-06-06 13:36 ` Vivien Didelot
2016-06-04 0:05 ` [PATCH net-next 4/9] net: dsa: Initialize ds->enabled_port_mask and ds->phys_mii_mask Florian Fainelli
2016-06-04 20:29 ` Andrew Lunn
2016-06-05 22:38 ` Florian Fainelli [this message]
2016-06-04 0:05 ` [PATCH net-next 5/9] net: dsa: Export suspend/resume functions Florian Fainelli
2016-06-04 20:30 ` Andrew Lunn
2016-06-06 13:40 ` Vivien Didelot
2016-06-04 0:05 ` [PATCH net-next 6/9] net: dsa: Add initialization helper for CPU port ethtool_ops Florian Fainelli
2016-06-04 0:05 ` [PATCH net-next 6/7] net: dsa: bcm_sf2: Make it a real platform device driver Florian Fainelli
2016-06-04 0:05 ` [PATCH net-next 7/9] net: dsa: Initialize CPU port ethtool ops per tree Florian Fainelli
2016-06-04 20:38 ` Andrew Lunn
2016-06-05 22:29 ` Florian Fainelli
2016-06-06 2:40 ` Andrew Lunn
2016-06-04 0:05 ` [PATCH net-next 7/7] net: dsa: bcm_sf2: Register our slave MDIO bus Florian Fainelli
2016-06-04 20:49 ` Andrew Lunn
2016-06-04 0:05 ` [PATCH net-next 8/9] net: dsa: bcm_sf2: Make it a real platform device driver Florian Fainelli
2016-06-04 20:55 ` Andrew Lunn
2016-06-05 22:30 ` Florian Fainelli
2016-06-04 0:05 ` [PATCH net-next 9/9] net: dsa: bcm_sf2: Register our slave MDIO bus Florian Fainelli
2016-06-04 0:10 ` [PATCH net-next 0/9] net: dsa: misc improvements Florian Fainelli
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=5754AA03.7050208@gmail.com \
--to=f.fainelli@gmail$(echo .)com \
--cc=andrew@lunn$(echo .)ch \
--cc=davem@davemloft$(echo .)net \
--cc=john@phrozen$(echo .)org \
--cc=netdev@vger$(echo .)kernel.org \
--cc=vivien.didelot@savoirfairelinux$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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