[Intel-wired-lan] [next PATCH S63 5/6] i40e/i40evf: Add legacy-rx private flag to allow fallback to old Rx flow

Alexander Duyck alexander.duyck at gmail.com
Fri Mar 17 15:57:54 UTC 2017


On Tue, Mar 14, 2017 at 10:15 AM, Bimmy Pujari <bimmy.pujari at intel.com> wrote:
> From: Alexander Duyck <alexander.h.duyck at intel.com>
>
> This patch adds a control which will allow us to toggle into and out of the
> legacy Rx mode.  The legacy Rx mode is what we currently do when performing
> Rx.  As I make further changes what should happen is that the driver will
> fall back to the behavior for Rx as of this patch should the "legacy-rx"
> flag be set to on.
>
> Signed-off-by: Alexander Duyck <alexander.h.duyck at intel.com>
> Change-ID: I0342998849bbb31351cce05f6e182c99174e7751
> ---
> Testing Hints:
>         This flag should not appear on kernels prior to 4.10.
>         On kernels 4.10 and later the "legacy-rx" flag should appear
>         and can be toggled between on and off. As we add more features the
>         behavior of the driver should change when this value is toggled.
>
>         Toggling this for now will only cause a reset of the interface.
>
>         For the VF we are specifically replacing the define that was
>         stripping the code for the flag needed for the "legacy-rx" flag
>         since it doesn't make sense to have the interface defined when
>         there are no flags present.  In the case of a kernel build the
>         #ifdefs should be stripped and the code will remain.
>
>  drivers/net/ethernet/intel/i40e/i40e.h             |   1 +
>  drivers/net/ethernet/intel/i40e/i40e_ethtool.c     |   5 +-
>  drivers/net/ethernet/intel/i40evf/i40evf.h         |   2 +
>  drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c | 104 +++++++++++++++++++++
>  4 files changed, 111 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
> index dcba258..561fe1f 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e.h
> +++ b/drivers/net/ethernet/intel/i40e/i40e.h
> @@ -430,6 +430,7 @@ struct i40e_pf {
>  #define I40E_FLAG_TEMP_LINK_POLLING            BIT_ULL(55)
>  #define I40E_FLAG_CLIENT_L2_CHANGE             BIT_ULL(56)
>  #define I40E_FLAG_WOL_MC_MAGIC_PKT_WAKE                BIT_ULL(57)
> +#define I40E_FLAG_LEGACY_RX                    BIT_ULL(57)

It looks like we lost sync between upstream and out-of-tree at some
point.  We are defining both of these using the same bit.  We need to
use a different value for the LEGACY_RX bit in the upstream it looks
like.


More information about the Intel-wired-lan mailing list