From: Brett Creeley <bcreeley@amd.com>
To: Ivan Vecera <ivecera@redhat.com>, netdev@vger.kernel.org
Cc: aleksandr.loktionov@intel.com, mschmidt@redhat.com,
horms@kernel.org, Jesse Brandeburg <jesse.brandeburg@intel.com>,
Tony Nguyen <anthony.l.nguyen@intel.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
"moderated list:INTEL ETHERNET DRIVERS"
<intel-wired-lan@lists.osuosl.org>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net] i40e: Fix VF MAC filter removal
Date: Thu, 14 Mar 2024 08:54:12 -0700 [thread overview]
Message-ID: <d66bc516-c5b1-433c-a128-a28d657efea7@amd.com> (raw)
In-Reply-To: <20240313135618.20930-1-ivecera@redhat.com>
On 3/13/2024 6:56 AM, Ivan Vecera wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> Commit 73d9629e1c8c ("i40e: Do not allow untrusted VF to remove
> administratively set MAC") fixed an issue where untrusted VF was
> allowed to remove its own MAC address although this was assigned
> administratively from PF. Unfortunately the introduced check
> is wrong because it causes that MAC filters for other MAC addresses
> including multi-cast ones are not removed.
>
> <snip>
> if (ether_addr_equal(addr, vf->default_lan_addr.addr) &&
> i40e_can_vf_change_mac(vf))
> was_unimac_deleted = true;
> else
> continue;
>
> if (i40e_del_mac_filter(vsi, al->list[i].addr)) {
> ...
> </snip>
>
> The else path with `continue` effectively skips any MAC filter
> removal except one for primary MAC addr when VF is allowed to do so.
> Fix the check condition so the `continue` is only done for primary
> MAC address.
>
> Fixes: 73d9629e1c8c ("i40e: Do not allow untrusted VF to remove administratively set MAC")
> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
> index b34c71770887..10267a300770 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
> @@ -3143,11 +3143,12 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
> /* Allow to delete VF primary MAC only if it was not set
> * administratively by PF or if VF is trusted.
> */
> - if (ether_addr_equal(addr, vf->default_lan_addr.addr) &&
> - i40e_can_vf_change_mac(vf))
> - was_unimac_deleted = true;
> - else
> - continue;
> + if (ether_addr_equal(addr, vf->default_lan_addr.addr)) {
> + if (i40e_can_vf_change_mac(vf))
> + was_unimac_deleted = true;
> + else
> + continue;
> + }
Seems okay to me.
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
>
> if (i40e_del_mac_filter(vsi, al->list[i].addr)) {
> ret = -EINVAL;
> --
> 2.43.0
>
>
next prev parent reply other threads:[~2024-03-14 15:54 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-13 13:56 [PATCH net] i40e: Fix VF MAC filter removal Ivan Vecera
2024-03-14 11:57 ` Michal Schmidt
2024-03-14 15:54 ` Brett Creeley [this message]
2024-03-28 16:10 ` [Intel-wired-lan] " Romanowski, Rafal
2024-03-27 7:29 ` Ivan Vecera
2024-03-27 18:10 ` Tony Nguyen
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=d66bc516-c5b1-433c-a128-a28d657efea7@amd.com \
--to=bcreeley@amd.com \
--cc=aleksandr.loktionov@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=ivecera@redhat.com \
--cc=jesse.brandeburg@intel.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mschmidt@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox