diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2012-07-20 04:09:37 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-10-23 00:15:17 -0400 |
commit | bffb3bc95895ee15ad90c66bfd387bc7342c1cee (patch) | |
tree | b75e4f447a654f0f7157312fcaeac10212645fc0 /drivers/net/ethernet | |
parent | f591cd9def96f5219078594699bf691a6282f6b2 (diff) |
ixgbe: Enable support for VF API version 1.1 in the PF.
This change switches on the last few bits for us enabling version 1.1 VF
support in the PF.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Tested-by: Robert Garrett <RobertX.Garrett@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c index 8bf467b94d12..96876b7442b1 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | |||
@@ -371,14 +371,26 @@ static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf) | |||
371 | IXGBE_FCOE_JUMBO_FRAME_SIZE); | 371 | IXGBE_FCOE_JUMBO_FRAME_SIZE); |
372 | 372 | ||
373 | #endif /* CONFIG_FCOE */ | 373 | #endif /* CONFIG_FCOE */ |
374 | /* | 374 | switch (adapter->vfinfo[vf].vf_api) { |
375 | * If the PF or VF are running w/ jumbo frames enabled we | 375 | case ixgbe_mbox_api_11: |
376 | * need to shut down the VF Rx path as we cannot support | 376 | /* |
377 | * jumbo frames on legacy VFs | 377 | * Version 1.1 supports jumbo frames on VFs if PF has |
378 | */ | 378 | * jumbo frames enabled which means legacy VFs are |
379 | if ((pf_max_frame > ETH_FRAME_LEN) || | 379 | * disabled |
380 | (max_frame > (ETH_FRAME_LEN + ETH_FCS_LEN))) | 380 | */ |
381 | err = -EINVAL; | 381 | if (pf_max_frame > ETH_FRAME_LEN) |
382 | break; | ||
383 | default: | ||
384 | /* | ||
385 | * If the PF or VF are running w/ jumbo frames enabled | ||
386 | * we need to shut down the VF Rx path as we cannot | ||
387 | * support jumbo frames on legacy VFs | ||
388 | */ | ||
389 | if ((pf_max_frame > ETH_FRAME_LEN) || | ||
390 | (max_frame > (ETH_FRAME_LEN + ETH_FCS_LEN))) | ||
391 | err = -EINVAL; | ||
392 | break; | ||
393 | } | ||
382 | 394 | ||
383 | /* determine VF receive enable location */ | 395 | /* determine VF receive enable location */ |
384 | vf_shift = vf % 32; | 396 | vf_shift = vf % 32; |
@@ -740,6 +752,7 @@ static int ixgbe_negotiate_vf_api(struct ixgbe_adapter *adapter, | |||
740 | 752 | ||
741 | switch (api) { | 753 | switch (api) { |
742 | case ixgbe_mbox_api_10: | 754 | case ixgbe_mbox_api_10: |
755 | case ixgbe_mbox_api_11: | ||
743 | adapter->vfinfo[vf].vf_api = api; | 756 | adapter->vfinfo[vf].vf_api = api; |
744 | return 0; | 757 | return 0; |
745 | default: | 758 | default: |