Commit 8c84c5ec4aaf for kernel

commit 8c84c5ec4aaff6ad7aac49935e050fed6b360a28
Author: Wei Fang <wei.fang@nxp.com>
Date:   Wed May 20 14:44:13 2026 +0800

    net: enetc: fix incorrect mailbox message status returned to VFs

    There are two cases where VFs receive an incorrect success status from
    the PF mailbox message handler, misleading them into believing their
    requests have been fulfilled:

    In enetc_msg_handle_rxmsg(), *status is pre-initialized to
    ENETC_MSG_CMD_STATUS_OK. When an unsupported command type is received,
    the default case only logs an error without updating *status, so it
    remains as ENETC_MSG_CMD_STATUS_OK.

    In enetc_msg_pf_set_vf_primary_mac_addr(), when the PF has already
    assigned a MAC address for the VF (ENETC_VF_FLAG_PF_SET_MAC is set),
    the function rejects the request but returns ENETC_MSG_CMD_STATUS_OK
    instead of ENETC_MSG_CMD_STATUS_FAIL.

    Therefore, correct the status value for the two cases mentioned above.

    Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support")
    Signed-off-by: Wei Fang <wei.fang@nxp.com>
    Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
    Link: https://patch.msgid.link/20260520064421.91569-2-wei.fang@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>

diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
index a12fd54a475f..27d4bb65e017 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -493,11 +493,13 @@ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct enetc_pf *pf,
 		return ENETC_MSG_CMD_STATUS_FAIL;

 	addr = cmd->mac.sa_data;
-	if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC)
+	if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) {
 		dev_warn(dev, "Attempt to override PF set mac addr for VF%d\n",
 			 vf_id);
-	else
-		enetc_pf_set_primary_mac_addr(&pf->si->hw, vf_id + 1, addr);
+		return ENETC_MSG_CMD_STATUS_FAIL;
+	}
+
+	enetc_pf_set_primary_mac_addr(&pf->si->hw, vf_id + 1, addr);

 	return ENETC_MSG_CMD_STATUS_OK;
 }
@@ -509,7 +511,6 @@ void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf_id, u16 *status)
 	struct enetc_msg_cmd_header *cmd_hdr;
 	u16 cmd_type;

-	*status = ENETC_MSG_CMD_STATUS_OK;
 	cmd_hdr = (struct enetc_msg_cmd_header *)msg->vaddr;
 	cmd_type = cmd_hdr->type;

@@ -518,6 +519,7 @@ void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf_id, u16 *status)
 		*status = enetc_msg_pf_set_vf_primary_mac_addr(pf, vf_id);
 		break;
 	default:
+		*status = ENETC_MSG_CMD_STATUS_FAIL;
 		dev_err(dev, "command not supported (cmd_type: 0x%x)\n",
 			cmd_type);
 	}