.eswitch_inline_mode_get = mlx5_devlink_eswitch_inline_mode_get,
        .eswitch_encap_mode_set = mlx5_devlink_eswitch_encap_mode_set,
        .eswitch_encap_mode_get = mlx5_devlink_eswitch_encap_mode_get,
-       .port_function_hw_addr_get = mlx5_devlink_port_function_hw_addr_get,
-       .port_function_hw_addr_set = mlx5_devlink_port_function_hw_addr_set,
        .rate_leaf_tx_share_set = mlx5_esw_devlink_rate_leaf_tx_share_set,
        .rate_leaf_tx_max_set = mlx5_esw_devlink_rate_leaf_tx_max_set,
        .rate_node_tx_share_set = mlx5_esw_devlink_rate_node_tx_share_set,
 
 }
 
 static const struct devlink_port_ops mlx5_esw_dl_port_ops = {
+       .port_fn_hw_addr_get = mlx5_devlink_port_fn_hw_addr_get,
+       .port_fn_hw_addr_set = mlx5_devlink_port_fn_hw_addr_set,
 };
 
 int mlx5_esw_offloads_devlink_port_register(struct mlx5_eswitch *esw, u16 vport_num)
 }
 
 static const struct devlink_port_ops mlx5_esw_dl_sf_port_ops = {
+       .port_fn_hw_addr_get = mlx5_devlink_port_fn_hw_addr_get,
+       .port_fn_hw_addr_set = mlx5_devlink_port_fn_hw_addr_set,
 };
 
 int mlx5_esw_devlink_sf_port_register(struct mlx5_eswitch *esw, struct devlink_port *dl_port,
 
                                        struct netlink_ext_ack *extack);
 int mlx5_devlink_eswitch_encap_mode_get(struct devlink *devlink,
                                        enum devlink_eswitch_encap_mode *encap);
-int mlx5_devlink_port_function_hw_addr_get(struct devlink_port *port,
-                                          u8 *hw_addr, int *hw_addr_len,
-                                          struct netlink_ext_ack *extack);
-int mlx5_devlink_port_function_hw_addr_set(struct devlink_port *port,
-                                          const u8 *hw_addr, int hw_addr_len,
-                                          struct netlink_ext_ack *extack);
+int mlx5_devlink_port_fn_hw_addr_get(struct devlink_port *port,
+                                    u8 *hw_addr, int *hw_addr_len,
+                                    struct netlink_ext_ack *extack);
+int mlx5_devlink_port_fn_hw_addr_set(struct devlink_port *port,
+                                    const u8 *hw_addr, int hw_addr_len,
+                                    struct netlink_ext_ack *extack);
 int mlx5_devlink_port_fn_roce_get(struct devlink_port *port, bool *is_enabled,
                                  struct netlink_ext_ack *extack);
 int mlx5_devlink_port_fn_roce_set(struct devlink_port *port, bool enable,
 
               mlx5_esw_is_sf_vport(esw, vport_num);
 }
 
-int mlx5_devlink_port_function_hw_addr_get(struct devlink_port *port,
-                                          u8 *hw_addr, int *hw_addr_len,
-                                          struct netlink_ext_ack *extack)
+int mlx5_devlink_port_fn_hw_addr_get(struct devlink_port *port,
+                                    u8 *hw_addr, int *hw_addr_len,
+                                    struct netlink_ext_ack *extack)
 {
        struct mlx5_eswitch *esw;
        struct mlx5_vport *vport;
        return 0;
 }
 
-int mlx5_devlink_port_function_hw_addr_set(struct devlink_port *port,
-                                          const u8 *hw_addr, int hw_addr_len,
-                                          struct netlink_ext_ack *extack)
+int mlx5_devlink_port_fn_hw_addr_set(struct devlink_port *port,
+                                    const u8 *hw_addr, int hw_addr_len,
+                                    struct netlink_ext_ack *extack)
 {
        struct mlx5_eswitch *esw;
        u16 vport_num;
 
 
 #ifdef CONFIG_SFC_SRIOV
 
-static const struct devlink_port_ops sfc_devlink_port_ops = {
-};
-
-static void efx_devlink_del_port(struct devlink_port *dl_port)
-{
-       if (!dl_port)
-               return;
-       devl_port_unregister(dl_port);
-}
-
-static int efx_devlink_add_port(struct efx_nic *efx,
-                               struct mae_mport_desc *mport)
-{
-       bool external = false;
-
-       if (!ef100_mport_on_local_intf(efx, mport))
-               external = true;
-
-       switch (mport->mport_type) {
-       case MAE_MPORT_DESC_MPORT_TYPE_VNIC:
-               if (mport->vf_idx != MAE_MPORT_DESC_VF_IDX_NULL)
-                       devlink_port_attrs_pci_vf_set(&mport->dl_port, 0, mport->pf_idx,
-                                                     mport->vf_idx,
-                                                     external);
-               else
-                       devlink_port_attrs_pci_pf_set(&mport->dl_port, 0, mport->pf_idx,
-                                                     external);
-               break;
-       default:
-               /* MAE_MPORT_DESC_MPORT_ALIAS and UNDEFINED */
-               return 0;
-       }
-
-       mport->dl_port.index = mport->mport_id;
-
-       return devl_port_register_with_ops(efx->devlink, &mport->dl_port,
-                                          mport->mport_id,
-                                          &sfc_devlink_port_ops);
-}
-
 static int efx_devlink_port_addr_get(struct devlink_port *port, u8 *hw_addr,
                                     int *hw_addr_len,
                                     struct netlink_ext_ack *extack)
        return rc;
 }
 
+static const struct devlink_port_ops sfc_devlink_port_ops = {
+       .port_fn_hw_addr_get = efx_devlink_port_addr_get,
+       .port_fn_hw_addr_set = efx_devlink_port_addr_set,
+};
+
+static void efx_devlink_del_port(struct devlink_port *dl_port)
+{
+       if (!dl_port)
+               return;
+       devl_port_unregister(dl_port);
+}
+
+static int efx_devlink_add_port(struct efx_nic *efx,
+                               struct mae_mport_desc *mport)
+{
+       bool external = false;
+
+       if (!ef100_mport_on_local_intf(efx, mport))
+               external = true;
+
+       switch (mport->mport_type) {
+       case MAE_MPORT_DESC_MPORT_TYPE_VNIC:
+               if (mport->vf_idx != MAE_MPORT_DESC_VF_IDX_NULL)
+                       devlink_port_attrs_pci_vf_set(&mport->dl_port, 0, mport->pf_idx,
+                                                     mport->vf_idx,
+                                                     external);
+               else
+                       devlink_port_attrs_pci_pf_set(&mport->dl_port, 0, mport->pf_idx,
+                                                     external);
+               break;
+       default:
+               /* MAE_MPORT_DESC_MPORT_ALIAS and UNDEFINED */
+               return 0;
+       }
+
+       mport->dl_port.index = mport->mport_id;
+
+       return devl_port_register_with_ops(efx->devlink, &mport->dl_port,
+                                          mport->mport_id,
+                                          &sfc_devlink_port_ops);
+}
+
 #endif
 
 static int efx_devlink_info_nvram_partition(struct efx_nic *efx,
 
 static const struct devlink_ops sfc_devlink_ops = {
        .info_get                       = efx_devlink_info_get,
-#ifdef CONFIG_SFC_SRIOV
-       .port_function_hw_addr_get      = efx_devlink_port_addr_get,
-       .port_function_hw_addr_set      = efx_devlink_port_addr_set,
-#endif
 };
 
 #ifdef CONFIG_SFC_SRIOV
 
        int (*trap_policer_counter_get)(struct devlink *devlink,
                                        const struct devlink_trap_policer *policer,
                                        u64 *p_drops);
-       /**
-        * @port_function_hw_addr_get: Port function's hardware address get function.
-        *
-        * Should be used by device drivers to report the hardware address of a function managed
-        * by the devlink port. Driver should return -EOPNOTSUPP if it doesn't support port
-        * function handling for a particular port.
-        *
-        * Note: @extack can be NULL when port notifier queries the port function.
-        */
-       int (*port_function_hw_addr_get)(struct devlink_port *port, u8 *hw_addr,
-                                        int *hw_addr_len,
-                                        struct netlink_ext_ack *extack);
-       /**
-        * @port_function_hw_addr_set: Port function's hardware address set function.
-        *
-        * Should be used by device drivers to set the hardware address of a function managed
-        * by the devlink port. Driver should return -EOPNOTSUPP if it doesn't support port
-        * function handling for a particular port.
-        */
-       int (*port_function_hw_addr_set)(struct devlink_port *port,
-                                        const u8 *hw_addr, int hw_addr_len,
-                                        struct netlink_ext_ack *extack);
        /**
         * @port_fn_roce_get: Port function's roce get function.
         *
  * @port_unsplit: Callback used to unsplit the port group back into
  *               a single port.
  * @port_type_set: Callback used to set a type of a port.
+ * @port_fn_hw_addr_get: Callback used to set port function's hardware address.
+ *                      Should be used by device drivers to report
+ *                      the hardware address of a function managed
+ *                      by the devlink port.
+ * @port_fn_hw_addr_set: Callback used to set port function's hardware address.
+ *                      Should be used by device drivers to set the hardware
+ *                      address of a function managed by the devlink port.
+ *
+ * Note: Driver should return -EOPNOTSUPP if it doesn't support
+ * port function (@port_fn_*) handling for a particular port.
  */
 struct devlink_port_ops {
        int (*port_split)(struct devlink *devlink, struct devlink_port *port,
                            struct netlink_ext_ack *extack);
        int (*port_type_set)(struct devlink_port *devlink_port,
                             enum devlink_port_type port_type);
+       int (*port_fn_hw_addr_get)(struct devlink_port *port, u8 *hw_addr,
+                                  int *hw_addr_len,
+                                  struct netlink_ext_ack *extack);
+       int (*port_fn_hw_addr_set)(struct devlink_port *port,
+                                  const u8 *hw_addr, int hw_addr_len,
+                                  struct netlink_ext_ack *extack);
 };
 
 void devlink_port_init(struct devlink *devlink,
 
        return 0;
 }
 
-static int devlink_port_fn_hw_addr_fill(const struct devlink_ops *ops,
-                                       struct devlink_port *port,
+static int devlink_port_fn_hw_addr_fill(struct devlink_port *port,
                                        struct sk_buff *msg,
                                        struct netlink_ext_ack *extack,
                                        bool *msg_updated)
        int hw_addr_len;
        int err;
 
-       if (!ops->port_function_hw_addr_get)
+       if (!port->ops->port_fn_hw_addr_get)
                return 0;
 
-       err = ops->port_function_hw_addr_get(port, hw_addr, &hw_addr_len,
+       err = port->ops->port_fn_hw_addr_get(port, hw_addr, &hw_addr_len,
                                             extack);
        if (err) {
                if (err == -EOPNOTSUPP)
                return -EMSGSIZE;
 
        ops = port->devlink->ops;
-       err = devlink_port_fn_hw_addr_fill(ops, port, msg, extack,
-                                          &msg_updated);
+       err = devlink_port_fn_hw_addr_fill(port, msg, extack, &msg_updated);
        if (err)
                goto out;
        err = devlink_port_fn_caps_fill(ops, port, msg, extack,
                                             const struct nlattr *attr,
                                             struct netlink_ext_ack *extack)
 {
-       const struct devlink_ops *ops = port->devlink->ops;
        const u8 *hw_addr;
        int hw_addr_len;
 
                }
        }
 
-       return ops->port_function_hw_addr_set(port, hw_addr, hw_addr_len,
+       return port->ops->port_fn_hw_addr_set(port, hw_addr, hw_addr_len,
                                              extack);
 }
 
        struct nlattr *attr;
 
        if (tb[DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR] &&
-           !ops->port_function_hw_addr_set) {
+           !devlink_port->ops->port_fn_hw_addr_set) {
                NL_SET_ERR_MSG_ATTR(extack, tb[DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR],
                                    "Port doesn't support function attributes");
                return -EOPNOTSUPP;