[PATCH v4 3/6] common/sfc_efx/base: skip netport event subscriptions on VFs
Ivan Malov
ivan.malov at arknetworks.am
Sun Aug 16 08:20:37 CEST 2026
Subscribing to netport events is not permitted on VFs.
Signed-off-by: Ivan Malov <ivan.malov at arknetworks.am>
Reviewed-by: Andy Moreton <andy.moreton at amd.com>
---
drivers/common/sfc_efx/base/efx_np.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/common/sfc_efx/base/efx_np.c b/drivers/common/sfc_efx/base/efx_np.c
index bf0e639704..8853ce07c3 100644
--- a/drivers/common/sfc_efx/base/efx_np.c
+++ b/drivers/common/sfc_efx/base/efx_np.c
@@ -1009,6 +1009,7 @@ efx_np_set_event_mask(
__in efx_np_handle_t nph,
__in boolean_t want_linkchange_events)
{
+ const efx_nic_cfg_t *encp = &enp->en_nic_cfg;
EFX_MCDI_DECLARE_BUF(payload,
MC_CMD_SET_NETPORT_EVENTS_MASK_IN_LEN,
MC_CMD_SET_NETPORT_EVENTS_MASK_OUT_LEN);
@@ -1016,6 +1017,10 @@ efx_np_set_event_mask(
efx_dword_t dword;
efx_rc_t rc;
+ /* VFs do not allow subscription to link change events. */
+ if (EFX_PCI_FUNCTION_IS_VF(encp))
+ return (0);
+
req.emr_out_length = MC_CMD_SET_NETPORT_EVENTS_MASK_OUT_LEN;
req.emr_in_length = MC_CMD_SET_NETPORT_EVENTS_MASK_IN_LEN;
req.emr_cmd = MC_CMD_SET_NETPORT_EVENTS_MASK;
@@ -1139,7 +1144,7 @@ efx_np_attach(
*/
epp->ep_np_prev_fec_ctrl = MC_CMD_FEC_AUTO;
- /* Subscribe to link change events. */
+ /* Subscribe to link change events; a no-op on VFs. */
rc = efx_np_set_event_mask(enp, epp->ep_np_handle, B_TRUE);
if (rc != 0)
goto fail6;
--
2.47.3
More information about the dev
mailing list