From: Martin Habets <habetsm.xilinx@gmail.com>
To: Edward Cree <ecree.xilinx@gmail.com>
Cc: Leon Romanovsky <leon@kernel.org>,
edward.cree@amd.com, linux-net-drivers@amd.com,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@google.com, netdev@vger.kernel.org
Subject: Re: [PATCH net-next] sfc: support offloading TC VLAN push/pop actions to the MAE
Date: Wed, 22 Feb 2023 08:56:04 +0000 [thread overview]
Message-ID: <Y/XYpLz6K78T2elz@gmail.com> (raw)
In-Reply-To: <8e7f4439-0a2c-7465-cca5-7b983ff10da7@gmail.com>
On Tue, Feb 21, 2023 at 08:32:13PM +0000, Edward Cree wrote:
> On 19/02/2023 09:21, Leon Romanovsky wrote:
> > On Thu, Feb 16, 2023 at 04:04:42PM +0000, edward.cree@amd.com wrote:
> >> From: Edward Cree <ecree.xilinx@gmail.com>
> >>
> >> EF100 can pop and/or push up to two VLAN tags.
> >>
> >> Signed-off-by: Edward Cree <ecree.xilinx@gmail.com>
> ...
> >> + /* Translate vlan actions from bitmask to count */
> >> + switch (act->vlan_push) {
> >> + case 0:
> >> + case 1:
> >> + vlan_push = act->vlan_push;
> >> + break;
> >> + case 2: /* can't happen */
> >
> > There is no need in case here as "default" will catch.
> >
> >> + default:
> >> + return -EINVAL;
> >> + case 3:
> >> + vlan_push = 2;
> >> + break;
> >> + }
> >> + switch (act->vlan_pop) {
> >> + case 0:
> >> + case 1:
> >> + vlan_pop = act->vlan_pop;
> >> + break;
> >> + case 2: /* can't happen */
> >> + default:
> >> + return -EINVAL;
> >
> > Please rely switch-case semantics and don't put default in the middle.
>
> It's legal C and as far as I can tell there's nothing in coding-style.rst
> about it; I did it this way so as to put the cases in the logical(?)
> ascending order and try to make the code self-document the possible
> values of the act-> fields.
> Arguably it's the 'default:' rather than the 'case 2:' that's unnecessary
> as the switch argument is an unsigned:2 bitfield, so it can only take on
> these four values.
Can you replace the switch statement with
vlan_push = act->vlan_push & 1 + act->vlan_push & 2;
Even then it would seem prudent to guard against act->vlan_push == 2.
Martin
> Although on revisiting this code I wonder if it makes more sense just to
> use the 'count' (rather than 'bitmask') form throughout, including in
> act->vlan_push/pop; it makes the tc.c side of the code slightly more
> involved, but gets rid of this translation entirely. WDYT?
>
> -ed
prev parent reply other threads:[~2023-02-22 8:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-16 16:04 [PATCH net-next] sfc: support offloading TC VLAN push/pop actions to the MAE edward.cree
2023-02-17 9:00 ` Martin Habets
2023-02-19 9:21 ` Leon Romanovsky
2023-02-21 20:32 ` Edward Cree
2023-02-22 8:56 ` Martin Habets [this message]
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=Y/XYpLz6K78T2elz@gmail.com \
--to=habetsm.xilinx@gmail.com \
--cc=davem@davemloft.net \
--cc=ecree.xilinx@gmail.com \
--cc=edumazet@google.com \
--cc=edward.cree@amd.com \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-net-drivers@amd.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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.