diff options
author | Shradha Shah <sshah@solarflare.com> | 2014-11-05 12:16:46 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-06 14:43:09 -0500 |
commit | d98a4ffe0d7a8946c67d115f8b3bd8e5bb1df86d (patch) | |
tree | 8759bd88647af178390ac8c16e03b9a6f794c762 /drivers/net/ethernet/sfc/nic.h | |
parent | 327c685eb745e3c56ed52734d3671dcf6f4f6940 (diff) |
sfc: Add NIC type operations to replace direct calls from efx.c into siena_sriov.c
Also add dummy functions where required to avoid NULL pointer dereference.
Signed-off-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/sfc/nic.h')
-rw-r--r-- | drivers/net/ethernet/sfc/nic.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/net/ethernet/sfc/nic.h b/drivers/net/ethernet/sfc/nic.h index 1ab3eda9a69..93d10cbbd1c 100644 --- a/drivers/net/ethernet/sfc/nic.h +++ b/drivers/net/ethernet/sfc/nic.h @@ -540,6 +540,7 @@ struct efx_ef10_nic_data { #ifdef CONFIG_SFC_SRIOV +/* SIENA */ static inline bool efx_siena_sriov_wanted(struct efx_nic *efx) { return efx->vf_count != 0; @@ -568,12 +569,19 @@ void efx_siena_sriov_reset(struct efx_nic *efx); void efx_siena_sriov_fini(struct efx_nic *efx); void efx_fini_sriov(void); +/* EF10 */ +static inline bool efx_ef10_sriov_wanted(struct efx_nic *efx) { return false; } +static inline int efx_ef10_sriov_init(struct efx_nic *efx) { return -EOPNOTSUPP; } +static inline void efx_ef10_sriov_mac_address_changed(struct efx_nic *efx) {} +static inline void efx_ef10_sriov_reset(struct efx_nic *efx) {} +static inline void efx_ef10_sriov_fini(struct efx_nic *efx) {} + #else +/* SIENA */ static inline bool efx_siena_sriov_wanted(struct efx_nic *efx) { return false; } static inline bool efx_siena_sriov_enabled(struct efx_nic *efx) { return false; } static inline unsigned int efx_vf_size(struct efx_nic *efx) { return 0; } - static inline int efx_init_sriov(void) { return 0; } static inline void efx_siena_sriov_probe(struct efx_nic *efx) {} static inline int efx_siena_sriov_init(struct efx_nic *efx) { return -EOPNOTSUPP; } @@ -591,8 +599,22 @@ static inline void efx_siena_sriov_reset(struct efx_nic *efx) {} static inline void efx_siena_sriov_fini(struct efx_nic *efx) {} static inline void efx_fini_sriov(void) {} +/* EF10 */ +static inline bool efx_ef10_sriov_wanted(struct efx_nic *efx) { return false; } +static inline int efx_ef10_sriov_init(struct efx_nic *efx) { return -EOPNOTSUPP; } +static inline void efx_ef10_sriov_mac_address_changed(struct efx_nic *efx) {} +static inline void efx_ef10_sriov_reset(struct efx_nic *efx) {} +static inline void efx_ef10_sriov_fini(struct efx_nic *efx) {} + #endif +/* FALCON */ +static inline bool efx_falcon_sriov_wanted(struct efx_nic *efx) { return false; } +static inline int efx_falcon_sriov_init(struct efx_nic *efx) { return -EOPNOTSUPP; } +static inline void efx_falcon_sriov_mac_address_changed(struct efx_nic *efx) {} +static inline void efx_falcon_sriov_reset(struct efx_nic *efx) {} +static inline void efx_falcon_sriov_fini(struct efx_nic *efx) {} + int efx_siena_sriov_set_vf_mac(struct net_device *dev, int vf, u8 *mac); int efx_siena_sriov_set_vf_vlan(struct net_device *dev, int vf, u16 vlan, u8 qos); |