From: sashiko-bot@kernel.org
To: wei.fang@oss.nxp.com
Cc: imx@lists.linux.dev, Frank.Li@kernel.org
Subject: Re: [PATCH net-next 01/15] net: enetc: add trusted VF support
Date: Sat, 06 Jun 2026 07:24:38 +0000 [thread overview]
Message-ID: <20260606072438.8E70F1F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260605065550.3038579-2-wei.fang@oss.nxp.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] UAPI Breakage: The patch unconditionally denies MAC address changes for untrusted VFs and fails to implement correct trusted VF override semantics.
--
commit 6f75af6dda440eac57a8d16c81c6cc7d3ceba0b9
Author: Claudiu Manoil <claudiu.manoil@nxp.com>
net: enetc: add trusted VF support
Some mailbox messages require a higher privilege level to be executed
on behalf of the requesting VF. Introduce a trusted VF flag
(ENETC_VF_FLAG_TRUSTED) and wire up the ndo_set_vf_trust callback via
enetc_pf_set_vf_trust().
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net/ethernet/freescale/enetc/enetc_msg.c
> index edc1277bb5860..156333ef26bf3 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c
[ ... ]
> @@ -61,31 +63,41 @@ static u16 enetc_msg_set_vf_primary_mac_addr(struct enetc_pf *pf, int vf_id,
> struct enetc_vf_state *vf_state = &pf->vf_state[vf_id];
> struct enetc_msg_mac_exact_filter *msg = vf_msg;
> struct device *dev = &pf->si->pdev->dev;
> + u16 pf_msg = ENETC_PF_MSG_SUCCESS;
> char *addr = msg->mac[0].addr;
>
> + mutex_lock(&vf_state->lock);
> +
> + if (!(vf_state->flags & ENETC_VF_FLAG_TRUSTED)) {
> + pf_msg = ENETC_PF_MSG_PERM_DENY;
> + goto vf_state_unlock;
> + }
[Severity: High]
Under standard Linux SR-IOV semantics, untrusted VFs are allowed to set their
own MAC address provided the PF has not administratively locked it (i.e. when
PF_SET_MAC is false). Does this check unconditionally deny all MAC changes from
untrusted VFs? If so, couldn't this break backward compatibility and break guest
OSes that attempt to assign a random MAC on boot?
> +
> if (!is_valid_ether_addr(addr)) {
> dev_err_ratelimited(dev, "VF%d attempted to set invalid MAC\n",
> vf_id);
> - return (FIELD_PREP(ENETC_PF_MSG_CLASS_ID,
> - ENETC_MSG_CLASS_ID_MAC_FILTER) |
> - FIELD_PREP(ENETC_PF_MSG_CLASS_CODE,
> - ENETC_MF_CLASS_CODE_INVALID_MAC));
> + pf_msg = FIELD_PREP(ENETC_PF_MSG_CLASS_ID,
> + ENETC_MSG_CLASS_ID_MAC_FILTER) |
> + FIELD_PREP(ENETC_PF_MSG_CLASS_CODE,
> + ENETC_MF_CLASS_CODE_INVALID_MAC);
> + goto vf_state_unlock;
> }
>
> - mutex_lock(&vf_state->lock);
> if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) {
> - mutex_unlock(&vf_state->lock);
> dev_err_ratelimited(dev,
> "VF%d attempted to override PF set MAC\n",
> vf_id);
> - return FIELD_PREP(ENETC_PF_MSG_CLASS_ID,
> - ENETC_MSG_CLASS_ID_CMD_NOT_PERMITTED);
> + pf_msg = FIELD_PREP(ENETC_PF_MSG_CLASS_ID,
> + ENETC_MSG_CLASS_ID_CMD_NOT_PERMITTED);
> + goto vf_state_unlock;
> }
[Severity: High]
Does this incorrectly deny MAC changes from trusted VFs if the PF has assigned
a MAC? Since this ENETC_VF_FLAG_PF_SET_MAC check happens after the TRUSTED check
and unconditionally rejects the operation, it appears to violate the standard
semantics that trusted VFs can override a PF-set MAC.
>
> enetc_set_si_hw_addr(pf, vf_id + 1, addr);
> +
> +vf_state_unlock:
> mutex_unlock(&vf_state->lock);
>
> - return ENETC_PF_MSG_SUCCESS;
> + return pf_msg;
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260605065550.3038579-1-wei.fang@oss.nxp.com?part=1
next prev parent reply other threads:[~2026-06-06 7:24 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-05 6:55 [PATCH net-next 00/15] net: enetc: SR-IOV improvements and ENETC v4 VF support wei.fang
2026-06-05 6:55 ` [PATCH net-next 01/15] net: enetc: add trusted " wei.fang
2026-06-06 7:24 ` sashiko-bot [this message]
2026-06-06 13:37 ` Wei Fang (OSS)
2026-06-05 6:55 ` [PATCH net-next 02/15] net: enetc: move msg_task and msg_int_name to struct enetc_si wei.fang
2026-06-05 6:55 ` [PATCH net-next 03/15] net: enetc: add link status message support to PF driver wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-06 14:05 ` Wei Fang (OSS)
2026-06-05 6:55 ` [PATCH net-next 04/15] net: enetc: add link speed " wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-05 6:55 ` [PATCH net-next 05/15] net: enetc: use enetc_set_si_hw_addr() to set VF MAC address wei.fang
2026-06-05 6:55 ` [PATCH net-next 06/15] net: enetc: relocate enetc_pf_set_vf_mac() for common PF support wei.fang
2026-06-05 6:55 ` [PATCH net-next 07/15] net: enetc: add .ndo_set_vf_mac() to the enetc v4 driver wei.fang
2026-06-05 6:55 ` [PATCH net-next 08/15] net: enetc: move mac_filter from struct enetc_pf to struct enetc_si wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-07 2:52 ` Wei Fang (OSS)
2026-06-05 6:55 ` [PATCH net-next 09/15] net: enetc: add MAC address filtering support for VFs of ENETC v4 wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-05 6:55 ` [PATCH net-next 10/15] net: enetc: simplify and rename PSIIER enable/disable helpers wei.fang
2026-06-05 6:55 ` [PATCH net-next 11/15] net: enetc: restore VF MAC promiscuous mode after FLR for ENETC v4 wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-05 6:55 ` [PATCH net-next 12/15] net: enetc: add VF support for i.MX94 and i.MX95 wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-07 3:53 ` Wei Fang (OSS)
2026-06-05 6:55 ` [PATCH net-next 13/15] net: enetc: implement ndo_set_rx_mode_async for ENETC v4 VF wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-07 4:01 ` Wei Fang (OSS)
2026-06-05 6:55 ` [PATCH net-next 14/15] net: enetc: add PSI-to-VSI link status notification support for VF wei.fang
2026-06-06 7:24 ` sashiko-bot
2026-06-05 6:55 ` [PATCH net-next 15/15] net: enetc: add ndo_get_vf_config() support wei.fang
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=20260606072438.8E70F1F00893@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=imx@lists.linux.dev \
--cc=sashiko-reviews@lists.linux.dev \
--cc=wei.fang@oss.nxp.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.