Skip to content

Commit

Permalink
sfc/siena: Inline functions in sriov.h to avoid conflicts with sfc
Browse files Browse the repository at this point in the history
The implementation of each is quite short. This means sriov.c is
not needed any more.

Signed-off-by: Martin Habets <habetsm.xilinx@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Martin Habets authored and Jakub Kicinski committed May 10, 2022
1 parent c8443b6 commit 782f713
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 77 deletions.
72 changes: 0 additions & 72 deletions drivers/net/ethernet/sfc/siena/sriov.c

This file was deleted.

68 changes: 63 additions & 5 deletions drivers/net/ethernet/sfc/siena/sriov.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,73 @@

#ifdef CONFIG_SFC_SRIOV

int efx_sriov_set_vf_mac(struct net_device *net_dev, int vf_i, u8 *mac);
static inline
int efx_sriov_set_vf_mac(struct net_device *net_dev, int vf_i, u8 *mac)
{
struct efx_nic *efx = netdev_priv(net_dev);

if (efx->type->sriov_set_vf_mac)
return efx->type->sriov_set_vf_mac(efx, vf_i, mac);
else
return -EOPNOTSUPP;
}

static inline
int efx_sriov_set_vf_vlan(struct net_device *net_dev, int vf_i, u16 vlan,
u8 qos, __be16 vlan_proto);
u8 qos, __be16 vlan_proto)
{
struct efx_nic *efx = netdev_priv(net_dev);

if (efx->type->sriov_set_vf_vlan) {
if ((vlan & ~VLAN_VID_MASK) ||
(qos & ~(VLAN_PRIO_MASK >> VLAN_PRIO_SHIFT)))
return -EINVAL;

if (vlan_proto != htons(ETH_P_8021Q))
return -EPROTONOSUPPORT;

return efx->type->sriov_set_vf_vlan(efx, vf_i, vlan, qos);
} else {
return -EOPNOTSUPP;
}
}

static inline
int efx_sriov_set_vf_spoofchk(struct net_device *net_dev, int vf_i,
bool spoofchk);
bool spoofchk)
{
struct efx_nic *efx = netdev_priv(net_dev);

if (efx->type->sriov_set_vf_spoofchk)
return efx->type->sriov_set_vf_spoofchk(efx, vf_i, spoofchk);
else
return -EOPNOTSUPP;
}

static inline
int efx_sriov_get_vf_config(struct net_device *net_dev, int vf_i,
struct ifla_vf_info *ivi);
struct ifla_vf_info *ivi)
{
struct efx_nic *efx = netdev_priv(net_dev);

if (efx->type->sriov_get_vf_config)
return efx->type->sriov_get_vf_config(efx, vf_i, ivi);
else
return -EOPNOTSUPP;
}

static inline
int efx_sriov_set_vf_link_state(struct net_device *net_dev, int vf_i,
int link_state);
int link_state)
{
struct efx_nic *efx = netdev_priv(net_dev);

if (efx->type->sriov_set_vf_link_state)
return efx->type->sriov_set_vf_link_state(efx, vf_i,
link_state);
else
return -EOPNOTSUPP;
}
#endif /* CONFIG_SFC_SRIOV */

#endif /* EFX_SRIOV_H */

0 comments on commit 782f713

Please sign in to comment.