From: Andrew Lunn <andrew@lunn.ch>
To: John Crispin <john@phrozen.org>
Cc: "David S. Miller" <davem@davemloft.net>,
Florian Fainelli <f.fainelli@gmail.com>,
Vivien Didelot <vivien.didelot@savoirfairelinux.com>,
netdev@vger.kernel.org
Subject: Re: [RFC 3/4] net-next: dsa: Add support for multiple cpu ports.
Date: Wed, 4 Jan 2017 14:22:35 +0100 [thread overview]
Message-ID: <20170104132235.GG10768@lunn.ch> (raw)
In-Reply-To: <1483515484-21793-4-git-send-email-john@phrozen.org>
On Wed, Jan 04, 2017 at 08:38:03AM +0100, John Crispin wrote:
> static int dsa_user_port_apply(struct device_node *port, u32 index,
> @@ -475,6 +475,28 @@ static int dsa_cpu_parse(struct device_node *port, u32 index,
>
> dst->rcv = dst->tag_ops->rcv;
>
> + dev_hold(ethernet_dev);
> + ds->cd->port_ethernet[index] = ethernet_dev;
> +
> + return 0;
> +}
> +
> +static int dsa_user_parse(struct device_node *port, u32 index,
> + struct dsa_switch *ds)
> +{
Please put this function next to dsa_cpu_parse(). All the
apply/unapply functions are together, and all the _parse functions
should be together.
> + struct device_node *cpu_port;
> + const unsigned int *cpu_port_reg;
> + int cpu_port_index;
> +
> + cpu_port = of_parse_phandle(port, "cpu", 0);
> + if (cpu_port) {
> + cpu_port_reg = of_get_property(cpu_port, "reg", NULL);
> + if (!cpu_port_reg)
> + return -EINVAL;
> + cpu_port_index = be32_to_cpup(cpu_port_reg);
> + ds->cd->port_cpu[index] = cpu_port_index;
> + }
> +
> return 0;
> }
>
> @@ -482,18 +504,20 @@ static int dsa_ds_parse(struct dsa_switch_tree *dst, struct dsa_switch *ds)
> {
> struct device_node *port;
> u32 index;
> - int err;
> + int err = 0;
>
> for (index = 0; index < DSA_MAX_PORTS; index++) {
> port = ds->ports[index].dn;
> if (!port)
> continue;
>
> - if (dsa_port_is_cpu(port)) {
> + if (dsa_port_is_cpu(port))
> err = dsa_cpu_parse(port, index, dst, ds);
> - if (err)
> - return err;
> - }
> + else if (!dsa_port_is_dsa(port))
> + err = dsa_user_parse(port, index, ds);
> +
> + if (err)
> + return err;
Having this if (err) here is correct, but it goes against the general
pattern we have in the code. Please indent it so it is under the
err =, and remove the initialisation of err.
Also, if one branch of an if/else has {}, the coding style says the
other branch should also use {}.
Just to make this code look nicer, i would be tempted to add a helper,
dsa_port_is_user().
> }
>
> pr_info("DSA: switch %d %d parsed\n", dst->tree, ds->index);
Thanks
Andrew
next prev parent reply other threads:[~2017-01-04 13:23 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-04 7:38 [RFC 0/4] net-next: dsa: add support for multiple cpu ports John Crispin
2017-01-04 7:38 ` [RFC 1/4] Documentation: devicetree: add multiple cpu port DSA binding John Crispin
2017-01-04 12:58 ` Andrew Lunn
2017-01-04 7:38 ` [RFC 2/4] net-next: dsa: Refactor DT probing of a switch port John Crispin
2017-01-04 13:30 ` Andrew Lunn
2017-01-04 7:38 ` [RFC 3/4] net-next: dsa: Add support for multiple cpu ports John Crispin
2017-01-04 13:22 ` Andrew Lunn [this message]
2017-01-04 14:01 ` Andrew Lunn
2017-01-04 14:40 ` Florian Fainelli
2017-01-04 15:22 ` Andrew Lunn
2017-01-04 7:38 ` [RFC 4/4] net-next: dsa: qca8k: add " John Crispin
2017-01-04 14:12 ` Andrew Lunn
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=20170104132235.GG10768@lunn.ch \
--to=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=john@phrozen.org \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@savoirfairelinux.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.