All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
@ 2016-03-31 17:35 Mitch Williams
  2016-03-31 20:50 ` Alexander Duyck
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Mitch Williams @ 2016-03-31 17:35 UTC (permalink / raw)
  To: intel-wired-lan

Correctly set the VLAN feature flags after setting the rest of the
netdev flags. And don't set them in hw_features, because these can't be
controlled by the VF driver.

Testing Hints: Make sure VLAN offloads work correctly when not using
port VLANs, and make sure they're not availble when using port VLANs.

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 4b70aae..039bbd2 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -2259,6 +2259,10 @@ static int i40evf_change_mtu(struct net_device *netdev, int new_mtu)
 	return 0;
 }
 
+#define I40EVF_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_TX |\
+                              NETIF_F_HW_VLAN_CTAG_RX |\
+                              NETIF_F_HW_VLAN_CTAG_FILTER)
+
 static const struct net_device_ops i40evf_netdev_ops = {
 	.ndo_open		= i40evf_open,
 	.ndo_stop		= i40evf_close,
@@ -2320,16 +2324,6 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
 		return -ENODEV;
 	}
 
-	if (adapter->vf_res->vf_offload_flags
-	    & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
-		netdev->vlan_features = netdev->features &
-					~(NETIF_F_HW_VLAN_CTAG_TX |
-					  NETIF_F_HW_VLAN_CTAG_RX |
-					  NETIF_F_HW_VLAN_CTAG_FILTER);
-		netdev->features |= NETIF_F_HW_VLAN_CTAG_TX |
-				    NETIF_F_HW_VLAN_CTAG_RX |
-				    NETIF_F_HW_VLAN_CTAG_FILTER;
-	}
 	netdev->features |= NETIF_F_HIGHDMA |
 			    NETIF_F_SG |
 			    NETIF_F_IP_CSUM |
@@ -2358,6 +2352,13 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
 	/* copy netdev features into list of user selectable features */
 	netdev->hw_features |= netdev->features;
 	netdev->hw_features &= ~NETIF_F_RXCSUM;
+	netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
+	netdev->features &= ~(I40EVF_VLAN_FEATURES);
+
+	if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
+		netdev->vlan_features = netdev->features;
+		netdev->features |= I40EVF_VLAN_FEATURES;
+	}
 
 	adapter->vsi.id = adapter->vsi_res->vsi_id;
 
-- 
2.5.5


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-03-31 17:35 [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features Mitch Williams
@ 2016-03-31 20:50 ` Alexander Duyck
  2016-04-01 17:32   ` Williams, Mitch A
  2016-04-01  5:17 ` kbuild test robot
  2016-04-01 13:10 ` kbuild test robot
  2 siblings, 1 reply; 9+ messages in thread
From: Alexander Duyck @ 2016-03-31 20:50 UTC (permalink / raw)
  To: intel-wired-lan

On Thu, Mar 31, 2016 at 10:35 AM, Mitch Williams
<mitch.a.williams@intel.com> wrote:
> Correctly set the VLAN feature flags after setting the rest of the
> netdev flags. And don't set them in hw_features, because these can't be
> controlled by the VF driver.
>
> Testing Hints: Make sure VLAN offloads work correctly when not using
> port VLANs, and make sure they're not availble when using port VLANs.
>
> Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
> ---
>  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> index 4b70aae..039bbd2 100644
> --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> @@ -2259,6 +2259,10 @@ static int i40evf_change_mtu(struct net_device *netdev, int new_mtu)
>         return 0;
>  }
>
> +#define I40EVF_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_TX |\
> +                              NETIF_F_HW_VLAN_CTAG_RX |\
> +                              NETIF_F_HW_VLAN_CTAG_FILTER)
> +
>  static const struct net_device_ops i40evf_netdev_ops = {
>         .ndo_open               = i40evf_open,
>         .ndo_stop               = i40evf_close,
> @@ -2320,16 +2324,6 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
>                 return -ENODEV;
>         }
>
> -       if (adapter->vf_res->vf_offload_flags
> -           & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> -               netdev->vlan_features = netdev->features &
> -                                       ~(NETIF_F_HW_VLAN_CTAG_TX |
> -                                         NETIF_F_HW_VLAN_CTAG_RX |
> -                                         NETIF_F_HW_VLAN_CTAG_FILTER);
> -               netdev->features |= NETIF_F_HW_VLAN_CTAG_TX |
> -                                   NETIF_F_HW_VLAN_CTAG_RX |
> -                                   NETIF_F_HW_VLAN_CTAG_FILTER;
> -       }
>         netdev->features |= NETIF_F_HIGHDMA |
>                             NETIF_F_SG |
>                             NETIF_F_IP_CSUM |
> @@ -2358,6 +2352,13 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
>         /* copy netdev features into list of user selectable features */
>         netdev->hw_features |= netdev->features;

This line here is actually a bit problematic.  I found while working
on NETIF_F_GSO_PARTIAL that we end up calling i40evf_process_config
multiple times.  What ends up happening is that features end up
bleeding through into hw_features.  Same thing if you try going the
other way.  Your best bend ends up actually being to populate
hw_enc_features and then feed that into features and hw_features.

>         netdev->hw_features &= ~NETIF_F_RXCSUM;

I never noticed before but why are you clearing the NETIF_F_RXCSUM
flag?  That is a feature you control via software isn't it?  You could
just ignore the results from the hardware.  Why lock this feature for
a VF?

> +       netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);

There is no need to mask hw_features if you never set it.  I assume
this is needed to deal with the bleeding through issue I referenced
above where you are writing hw_features from features.

> +       netdev->features &= ~(I40EVF_VLAN_FEATURES);
> +
> +       if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> +               netdev->vlan_features = netdev->features;
> +               netdev->features |= I40EVF_VLAN_FEATURES;
> +       }
>
>         adapter->vsi.id = adapter->vsi_res->vsi_id;

You can probably just set vlan_features always.  As far as I know the
i40e/i40evf hardware doesn't penalize you if you have some extra data
like a VLAN tag in the L2 header so TSO and checksums should all still
work.

- Alex

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-03-31 17:35 [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features Mitch Williams
  2016-03-31 20:50 ` Alexander Duyck
@ 2016-04-01  5:17 ` kbuild test robot
  2016-04-01 13:10 ` kbuild test robot
  2 siblings, 0 replies; 9+ messages in thread
From: kbuild test robot @ 2016-04-01  5:17 UTC (permalink / raw)
  To: intel-wired-lan

Hi Mitch,

[auto build test WARNING on net/master]
[also build test WARNING on v4.6-rc1 next-20160401]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Mitch-Williams/i40evf-properly-handle-VLAN-features/20160401-014314
config: i386-randconfig-x011-04011139 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   In file included from include/uapi/linux/stddef.h:1:0,
                    from include/linux/stddef.h:4,
                    from include/uapi/linux/posix_types.h:4,
                    from include/uapi/linux/types.h:13,
                    from include/linux/types.h:5,
                    from include/linux/list.h:4,
                    from include/linux/module.h:9,
                    from drivers/net/ethernet/intel/i40evf/i40evf.h:30,
                    from drivers/net/ethernet/intel/i40evf/i40evf_main.c:27:
   drivers/net/ethernet/intel/i40evf/i40evf_main.c: In function 'i40evf_process_config':
   drivers/net/ethernet/intel/i40evf/i40evf_main.c:2358:6: error: 'vfres' undeclared (first use in this function)
     if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
         ^
   include/linux/compiler.h:151:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^
>> drivers/net/ethernet/intel/i40evf/i40evf_main.c:2358:2: note: in expansion of macro 'if'
     if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
     ^
   drivers/net/ethernet/intel/i40evf/i40evf_main.c:2358:6: note: each undeclared identifier is reported only once for each function it appears in
     if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
         ^
   include/linux/compiler.h:151:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^
>> drivers/net/ethernet/intel/i40evf/i40evf_main.c:2358:2: note: in expansion of macro 'if'
     if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
     ^

vim +/if +2358 drivers/net/ethernet/intel/i40evf/i40evf_main.c

  2342					   NETIF_F_TSO		       |
  2343					   NETIF_F_TSO6		       |
  2344					   NETIF_F_TSO_ECN	       |
  2345					   NETIF_F_GSO_GRE	       |
  2346					   NETIF_F_GSO_UDP_TUNNEL      |
  2347					   NETIF_F_GSO_UDP_TUNNEL_CSUM;
  2348	
  2349		if (adapter->flags & I40EVF_FLAG_OUTER_UDP_CSUM_CAPABLE)
  2350			netdev->features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
  2351	
  2352		/* copy netdev features into list of user selectable features */
  2353		netdev->hw_features |= netdev->features;
  2354		netdev->hw_features &= ~NETIF_F_RXCSUM;
  2355		netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
  2356		netdev->features &= ~(I40EVF_VLAN_FEATURES);
  2357	
> 2358		if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
  2359			netdev->vlan_features = netdev->features;
  2360			netdev->features |= I40EVF_VLAN_FEATURES;
  2361		}
  2362	
  2363		adapter->vsi.id = adapter->vsi_res->vsi_id;
  2364	
  2365		adapter->vsi.back = adapter;
  2366		adapter->vsi.base_vector = 1;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 29120 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20160401/94f07b57/attachment-0001.obj>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-03-31 17:35 [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features Mitch Williams
  2016-03-31 20:50 ` Alexander Duyck
  2016-04-01  5:17 ` kbuild test robot
@ 2016-04-01 13:10 ` kbuild test robot
  2 siblings, 0 replies; 9+ messages in thread
From: kbuild test robot @ 2016-04-01 13:10 UTC (permalink / raw)
  To: intel-wired-lan

Hi Mitch,

[auto build test ERROR on net/master]
[also build test ERROR on v4.6-rc1 next-20160401]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Mitch-Williams/i40evf-properly-handle-VLAN-features/20160401-014314
config: i386-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/net/ethernet/intel/i40evf/i40evf_main.c: In function 'i40evf_process_config':
>> drivers/net/ethernet/intel/i40evf/i40evf_main.c:2358:6: error: 'vfres' undeclared (first use in this function)
     if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
         ^
   drivers/net/ethernet/intel/i40evf/i40evf_main.c:2358:6: note: each undeclared identifier is reported only once for each function it appears in

vim +/vfres +2358 drivers/net/ethernet/intel/i40evf/i40evf_main.c

  2352		/* copy netdev features into list of user selectable features */
  2353		netdev->hw_features |= netdev->features;
  2354		netdev->hw_features &= ~NETIF_F_RXCSUM;
  2355		netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
  2356		netdev->features &= ~(I40EVF_VLAN_FEATURES);
  2357	
> 2358		if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
  2359			netdev->vlan_features = netdev->features;
  2360			netdev->features |= I40EVF_VLAN_FEATURES;
  2361		}

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 54390 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20160401/99664dce/attachment-0001.obj>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-03-31 20:50 ` Alexander Duyck
@ 2016-04-01 17:32   ` Williams, Mitch A
  2016-04-01 20:06     ` Alexander Duyck
  0 siblings, 1 reply; 9+ messages in thread
From: Williams, Mitch A @ 2016-04-01 17:32 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
> Sent: Thursday, March 31, 2016 1:50 PM
> To: Williams, Mitch A <mitch.a.williams@intel.com>
> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
> Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN
> features
> 
> On Thu, Mar 31, 2016 at 10:35 AM, Mitch Williams
> <mitch.a.williams@intel.com> wrote:
> > Correctly set the VLAN feature flags after setting the rest of the
> > netdev flags. And don't set them in hw_features, because these can't be
> > controlled by the VF driver.
> >
> > Testing Hints: Make sure VLAN offloads work correctly when not using
> > port VLANs, and make sure they're not availble when using port VLANs.
> >
> > Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
> > ---
> >  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++++---------
> -
> >  1 file changed, 11 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> > index 4b70aae..039bbd2 100644
> > --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> > +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> > @@ -2259,6 +2259,10 @@ static int i40evf_change_mtu(struct net_device
> *netdev, int new_mtu)
> >         return 0;
> >  }
> >
> > +#define I40EVF_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_TX |\
> > +                              NETIF_F_HW_VLAN_CTAG_RX |\
> > +                              NETIF_F_HW_VLAN_CTAG_FILTER)
> > +
> >  static const struct net_device_ops i40evf_netdev_ops = {
> >         .ndo_open               = i40evf_open,
> >         .ndo_stop               = i40evf_close,
> > @@ -2320,16 +2324,6 @@ int i40evf_process_config(struct i40evf_adapter
> *adapter)
> >                 return -ENODEV;
> >         }
> >
> > -       if (adapter->vf_res->vf_offload_flags
> > -           & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> > -               netdev->vlan_features = netdev->features &
> > -                                       ~(NETIF_F_HW_VLAN_CTAG_TX |
> > -                                         NETIF_F_HW_VLAN_CTAG_RX |
> > -                                         NETIF_F_HW_VLAN_CTAG_FILTER);
> > -               netdev->features |= NETIF_F_HW_VLAN_CTAG_TX |
> > -                                   NETIF_F_HW_VLAN_CTAG_RX |
> > -                                   NETIF_F_HW_VLAN_CTAG_FILTER;
> > -       }
> >         netdev->features |= NETIF_F_HIGHDMA |
> >                             NETIF_F_SG |
> >                             NETIF_F_IP_CSUM |
> > @@ -2358,6 +2352,13 @@ int i40evf_process_config(struct i40evf_adapter
> *adapter)
> >         /* copy netdev features into list of user selectable features */
> >         netdev->hw_features |= netdev->features;
> 
> This line here is actually a bit problematic.  I found while working
> on NETIF_F_GSO_PARTIAL that we end up calling i40evf_process_config
> multiple times.  What ends up happening is that features end up
> bleeding through into hw_features.  Same thing if you try going the
> other way.  Your best bend ends up actually being to populate
> hw_enc_features and then feed that into features and hw_features.
> 
> >         netdev->hw_features &= ~NETIF_F_RXCSUM;
> 
> I never noticed before but why are you clearing the NETIF_F_RXCSUM
> flag?  That is a feature you control via software isn't it?  You could
> just ignore the results from the hardware.  Why lock this feature for
> a VF?
> 
> > +       netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
> 
> There is no need to mask hw_features if you never set it.  I assume
> this is needed to deal with the bleeding through issue I referenced
> above where you are writing hw_features from features.
> 
> > +       netdev->features &= ~(I40EVF_VLAN_FEATURES);
> > +
> > +       if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> > +               netdev->vlan_features = netdev->features;
> > +               netdev->features |= I40EVF_VLAN_FEATURES;
> > +       }
> >
> >         adapter->vsi.id = adapter->vsi_res->vsi_id;
> 
> You can probably just set vlan_features always.  As far as I know the
> i40e/i40evf hardware doesn't penalize you if you have some extra data
> like a VLAN tag in the L2 header so TSO and checksums should all still
> work.
> 
> - Alex

This looks like it's causing build problems, so let's drop it and I'll respin. Again.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-04-01 17:32   ` Williams, Mitch A
@ 2016-04-01 20:06     ` Alexander Duyck
  2016-04-01 20:52       ` Williams, Mitch A
  0 siblings, 1 reply; 9+ messages in thread
From: Alexander Duyck @ 2016-04-01 20:06 UTC (permalink / raw)
  To: intel-wired-lan

On Fri, Apr 1, 2016 at 10:32 AM, Williams, Mitch A
<mitch.a.williams@intel.com> wrote:
>
>
>> -----Original Message-----
>> From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
>> Sent: Thursday, March 31, 2016 1:50 PM
>> To: Williams, Mitch A <mitch.a.williams@intel.com>
>> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
>> Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN
>> features
>>
>> On Thu, Mar 31, 2016 at 10:35 AM, Mitch Williams
>> <mitch.a.williams@intel.com> wrote:
>> > Correctly set the VLAN feature flags after setting the rest of the
>> > netdev flags. And don't set them in hw_features, because these can't be
>> > controlled by the VF driver.
>> >
>> > Testing Hints: Make sure VLAN offloads work correctly when not using
>> > port VLANs, and make sure they're not availble when using port VLANs.
>> >
>> > Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
>> > ---
>> >  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++++---------
>> -
>> >  1 file changed, 11 insertions(+), 10 deletions(-)
>> >
>> > diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> > index 4b70aae..039bbd2 100644
>> > --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> > +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> > @@ -2259,6 +2259,10 @@ static int i40evf_change_mtu(struct net_device
>> *netdev, int new_mtu)
>> >         return 0;
>> >  }
>> >
>> > +#define I40EVF_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_TX |\
>> > +                              NETIF_F_HW_VLAN_CTAG_RX |\
>> > +                              NETIF_F_HW_VLAN_CTAG_FILTER)
>> > +
>> >  static const struct net_device_ops i40evf_netdev_ops = {
>> >         .ndo_open               = i40evf_open,
>> >         .ndo_stop               = i40evf_close,
>> > @@ -2320,16 +2324,6 @@ int i40evf_process_config(struct i40evf_adapter
>> *adapter)
>> >                 return -ENODEV;
>> >         }
>> >
>> > -       if (adapter->vf_res->vf_offload_flags
>> > -           & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
>> > -               netdev->vlan_features = netdev->features &
>> > -                                       ~(NETIF_F_HW_VLAN_CTAG_TX |
>> > -                                         NETIF_F_HW_VLAN_CTAG_RX |
>> > -                                         NETIF_F_HW_VLAN_CTAG_FILTER);
>> > -               netdev->features |= NETIF_F_HW_VLAN_CTAG_TX |
>> > -                                   NETIF_F_HW_VLAN_CTAG_RX |
>> > -                                   NETIF_F_HW_VLAN_CTAG_FILTER;
>> > -       }
>> >         netdev->features |= NETIF_F_HIGHDMA |
>> >                             NETIF_F_SG |
>> >                             NETIF_F_IP_CSUM |
>> > @@ -2358,6 +2352,13 @@ int i40evf_process_config(struct i40evf_adapter
>> *adapter)
>> >         /* copy netdev features into list of user selectable features */
>> >         netdev->hw_features |= netdev->features;
>>
>> This line here is actually a bit problematic.  I found while working
>> on NETIF_F_GSO_PARTIAL that we end up calling i40evf_process_config
>> multiple times.  What ends up happening is that features end up
>> bleeding through into hw_features.  Same thing if you try going the
>> other way.  Your best bend ends up actually being to populate
>> hw_enc_features and then feed that into features and hw_features.
>>
>> >         netdev->hw_features &= ~NETIF_F_RXCSUM;
>>
>> I never noticed before but why are you clearing the NETIF_F_RXCSUM
>> flag?  That is a feature you control via software isn't it?  You could
>> just ignore the results from the hardware.  Why lock this feature for
>> a VF?
>>
>> > +       netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
>>
>> There is no need to mask hw_features if you never set it.  I assume
>> this is needed to deal with the bleeding through issue I referenced
>> above where you are writing hw_features from features.
>>
>> > +       netdev->features &= ~(I40EVF_VLAN_FEATURES);
>> > +
>> > +       if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
>> > +               netdev->vlan_features = netdev->features;
>> > +               netdev->features |= I40EVF_VLAN_FEATURES;
>> > +       }
>> >
>> >         adapter->vsi.id = adapter->vsi_res->vsi_id;
>>
>> You can probably just set vlan_features always.  As far as I know the
>> i40e/i40evf hardware doesn't penalize you if you have some extra data
>> like a VLAN tag in the L2 header so TSO and checksums should all still
>> work.
>>
>> - Alex
>
> This looks like it's causing build problems, so let's drop it and I'll respin. Again.

If you want I can just submit a patch in a couple hours to take care
of most of this and a few other things I have found.  I was already
working in the area as I have the GSO partial stuff and some code to
add IPIP and SIT tunnel support for the PF and VF drivers.

- Alex

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-04-01 20:06     ` Alexander Duyck
@ 2016-04-01 20:52       ` Williams, Mitch A
  2016-04-01 20:55         ` Alexander Duyck
  0 siblings, 1 reply; 9+ messages in thread
From: Williams, Mitch A @ 2016-04-01 20:52 UTC (permalink / raw)
  To: intel-wired-lan



> -----Original Message-----
> From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
> Sent: Friday, April 01, 2016 1:07 PM
> To: Williams, Mitch A <mitch.a.williams@intel.com>
> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
> Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN
> features
> 
> On Fri, Apr 1, 2016 at 10:32 AM, Williams, Mitch A
> <mitch.a.williams@intel.com> wrote:
> >
> >
> >> -----Original Message-----
> >> From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
> >> Sent: Thursday, March 31, 2016 1:50 PM
> >> To: Williams, Mitch A <mitch.a.williams@intel.com>
> >> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
> >> Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN
> >> features
> >>
> >> On Thu, Mar 31, 2016 at 10:35 AM, Mitch Williams
> >> <mitch.a.williams@intel.com> wrote:
> >> > Correctly set the VLAN feature flags after setting the rest of the
> >> > netdev flags. And don't set them in hw_features, because these can't be
> >> > controlled by the VF driver.
> >> >
> >> > Testing Hints: Make sure VLAN offloads work correctly when not using
> >> > port VLANs, and make sure they're not availble when using port VLANs.
> >> >
> >> > Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
> >> > ---
> >> >  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++++------
> ---
> >> -
> >> >  1 file changed, 11 insertions(+), 10 deletions(-)
> >> >
> >> > diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> >> b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> >> > index 4b70aae..039bbd2 100644
> >> > --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> >> > +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> >> > @@ -2259,6 +2259,10 @@ static int i40evf_change_mtu(struct net_device
> >> *netdev, int new_mtu)
> >> >         return 0;
> >> >  }
> >> >
> >> > +#define I40EVF_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_TX |\
> >> > +                              NETIF_F_HW_VLAN_CTAG_RX |\
> >> > +                              NETIF_F_HW_VLAN_CTAG_FILTER)
> >> > +
> >> >  static const struct net_device_ops i40evf_netdev_ops = {
> >> >         .ndo_open               = i40evf_open,
> >> >         .ndo_stop               = i40evf_close,
> >> > @@ -2320,16 +2324,6 @@ int i40evf_process_config(struct i40evf_adapter
> >> *adapter)
> >> >                 return -ENODEV;
> >> >         }
> >> >
> >> > -       if (adapter->vf_res->vf_offload_flags
> >> > -           & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> >> > -               netdev->vlan_features = netdev->features &
> >> > -                                       ~(NETIF_F_HW_VLAN_CTAG_TX |
> >> > -                                         NETIF_F_HW_VLAN_CTAG_RX |
> >> > -                                         NETIF_F_HW_VLAN_CTAG_FILTER);
> >> > -               netdev->features |= NETIF_F_HW_VLAN_CTAG_TX |
> >> > -                                   NETIF_F_HW_VLAN_CTAG_RX |
> >> > -                                   NETIF_F_HW_VLAN_CTAG_FILTER;
> >> > -       }
> >> >         netdev->features |= NETIF_F_HIGHDMA |
> >> >                             NETIF_F_SG |
> >> >                             NETIF_F_IP_CSUM |
> >> > @@ -2358,6 +2352,13 @@ int i40evf_process_config(struct i40evf_adapter
> >> *adapter)
> >> >         /* copy netdev features into list of user selectable features
> */
> >> >         netdev->hw_features |= netdev->features;
> >>
> >> This line here is actually a bit problematic.  I found while working
> >> on NETIF_F_GSO_PARTIAL that we end up calling i40evf_process_config
> >> multiple times.  What ends up happening is that features end up
> >> bleeding through into hw_features.  Same thing if you try going the
> >> other way.  Your best bend ends up actually being to populate
> >> hw_enc_features and then feed that into features and hw_features.
> >>
> >> >         netdev->hw_features &= ~NETIF_F_RXCSUM;
> >>
> >> I never noticed before but why are you clearing the NETIF_F_RXCSUM
> >> flag?  That is a feature you control via software isn't it?  You could
> >> just ignore the results from the hardware.  Why lock this feature for
> >> a VF?
> >>
> >> > +       netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
> >>
> >> There is no need to mask hw_features if you never set it.  I assume
> >> this is needed to deal with the bleeding through issue I referenced
> >> above where you are writing hw_features from features.
> >>
> >> > +       netdev->features &= ~(I40EVF_VLAN_FEATURES);
> >> > +
> >> > +       if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> >> > +               netdev->vlan_features = netdev->features;
> >> > +               netdev->features |= I40EVF_VLAN_FEATURES;
> >> > +       }
> >> >
> >> >         adapter->vsi.id = adapter->vsi_res->vsi_id;
> >>
> >> You can probably just set vlan_features always.  As far as I know the
> >> i40e/i40evf hardware doesn't penalize you if you have some extra data
> >> like a VLAN tag in the L2 header so TSO and checksums should all still
> >> work.
> >>
> >> - Alex
> >
> > This looks like it's causing build problems, so let's drop it and I'll
> respin. Again.
> 
> If you want I can just submit a patch in a couple hours to take care
> of most of this and a few other things I have found.  I was already
> working in the area as I have the GSO partial stuff and some code to
> add IPIP and SIT tunnel support for the PF and VF drivers.
> 
> - Alex

Thanks for the offer. Just pushed my v2.
-Mitch

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-04-01 20:52       ` Williams, Mitch A
@ 2016-04-01 20:55         ` Alexander Duyck
  2016-04-01 23:41           ` Jeff Kirsher
  0 siblings, 1 reply; 9+ messages in thread
From: Alexander Duyck @ 2016-04-01 20:55 UTC (permalink / raw)
  To: intel-wired-lan

On Fri, Apr 1, 2016 at 1:52 PM, Williams, Mitch A
<mitch.a.williams@intel.com> wrote:
>
>
>> -----Original Message-----
>> From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
>> Sent: Friday, April 01, 2016 1:07 PM
>> To: Williams, Mitch A <mitch.a.williams@intel.com>
>> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
>> Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN
>> features
>>
>> On Fri, Apr 1, 2016 at 10:32 AM, Williams, Mitch A
>> <mitch.a.williams@intel.com> wrote:
>> >
>> >
>> >> -----Original Message-----
>> >> From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
>> >> Sent: Thursday, March 31, 2016 1:50 PM
>> >> To: Williams, Mitch A <mitch.a.williams@intel.com>
>> >> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
>> >> Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN
>> >> features
>> >>
>> >> On Thu, Mar 31, 2016 at 10:35 AM, Mitch Williams
>> >> <mitch.a.williams@intel.com> wrote:
>> >> > Correctly set the VLAN feature flags after setting the rest of the
>> >> > netdev flags. And don't set them in hw_features, because these can't be
>> >> > controlled by the VF driver.
>> >> >
>> >> > Testing Hints: Make sure VLAN offloads work correctly when not using
>> >> > port VLANs, and make sure they're not availble when using port VLANs.
>> >> >
>> >> > Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
>> >> > ---
>> >> >  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21 +++++++++++------
>> ---
>> >> -
>> >> >  1 file changed, 11 insertions(+), 10 deletions(-)
>> >> >
>> >> > diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> >> b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> >> > index 4b70aae..039bbd2 100644
>> >> > --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> >> > +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
>> >> > @@ -2259,6 +2259,10 @@ static int i40evf_change_mtu(struct net_device
>> >> *netdev, int new_mtu)
>> >> >         return 0;
>> >> >  }
>> >> >
>> >> > +#define I40EVF_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_TX |\
>> >> > +                              NETIF_F_HW_VLAN_CTAG_RX |\
>> >> > +                              NETIF_F_HW_VLAN_CTAG_FILTER)
>> >> > +
>> >> >  static const struct net_device_ops i40evf_netdev_ops = {
>> >> >         .ndo_open               = i40evf_open,
>> >> >         .ndo_stop               = i40evf_close,
>> >> > @@ -2320,16 +2324,6 @@ int i40evf_process_config(struct i40evf_adapter
>> >> *adapter)
>> >> >                 return -ENODEV;
>> >> >         }
>> >> >
>> >> > -       if (adapter->vf_res->vf_offload_flags
>> >> > -           & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
>> >> > -               netdev->vlan_features = netdev->features &
>> >> > -                                       ~(NETIF_F_HW_VLAN_CTAG_TX |
>> >> > -                                         NETIF_F_HW_VLAN_CTAG_RX |
>> >> > -                                         NETIF_F_HW_VLAN_CTAG_FILTER);
>> >> > -               netdev->features |= NETIF_F_HW_VLAN_CTAG_TX |
>> >> > -                                   NETIF_F_HW_VLAN_CTAG_RX |
>> >> > -                                   NETIF_F_HW_VLAN_CTAG_FILTER;
>> >> > -       }
>> >> >         netdev->features |= NETIF_F_HIGHDMA |
>> >> >                             NETIF_F_SG |
>> >> >                             NETIF_F_IP_CSUM |
>> >> > @@ -2358,6 +2352,13 @@ int i40evf_process_config(struct i40evf_adapter
>> >> *adapter)
>> >> >         /* copy netdev features into list of user selectable features
>> */
>> >> >         netdev->hw_features |= netdev->features;
>> >>
>> >> This line here is actually a bit problematic.  I found while working
>> >> on NETIF_F_GSO_PARTIAL that we end up calling i40evf_process_config
>> >> multiple times.  What ends up happening is that features end up
>> >> bleeding through into hw_features.  Same thing if you try going the
>> >> other way.  Your best bend ends up actually being to populate
>> >> hw_enc_features and then feed that into features and hw_features.
>> >>
>> >> >         netdev->hw_features &= ~NETIF_F_RXCSUM;
>> >>
>> >> I never noticed before but why are you clearing the NETIF_F_RXCSUM
>> >> flag?  That is a feature you control via software isn't it?  You could
>> >> just ignore the results from the hardware.  Why lock this feature for
>> >> a VF?
>> >>
>> >> > +       netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
>> >>
>> >> There is no need to mask hw_features if you never set it.  I assume
>> >> this is needed to deal with the bleeding through issue I referenced
>> >> above where you are writing hw_features from features.
>> >>
>> >> > +       netdev->features &= ~(I40EVF_VLAN_FEATURES);
>> >> > +
>> >> > +       if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
>> >> > +               netdev->vlan_features = netdev->features;
>> >> > +               netdev->features |= I40EVF_VLAN_FEATURES;
>> >> > +       }
>> >> >
>> >> >         adapter->vsi.id = adapter->vsi_res->vsi_id;
>> >>
>> >> You can probably just set vlan_features always.  As far as I know the
>> >> i40e/i40evf hardware doesn't penalize you if you have some extra data
>> >> like a VLAN tag in the L2 header so TSO and checksums should all still
>> >> work.
>> >>
>> >> - Alex
>> >
>> > This looks like it's causing build problems, so let's drop it and I'll
>> respin. Again.
>>
>> If you want I can just submit a patch in a couple hours to take care
>> of most of this and a few other things I have found.  I was already
>> working in the area as I have the GSO partial stuff and some code to
>> add IPIP and SIT tunnel support for the PF and VF drivers.
>>
>> - Alex
>
> Thanks for the offer. Just pushed my v2.
> -Mitch

Yeah I saw that.  I'll probably wait for Jeff to apply it then I will
rebase my patches and submit the stuff for IPIP and SIT offload
support.

- Alex

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features
  2016-04-01 20:55         ` Alexander Duyck
@ 2016-04-01 23:41           ` Jeff Kirsher
  0 siblings, 0 replies; 9+ messages in thread
From: Jeff Kirsher @ 2016-04-01 23:41 UTC (permalink / raw)
  To: intel-wired-lan

On Fri, 2016-04-01 at 13:55 -0700, Alexander Duyck wrote:
> On Fri, Apr 1, 2016 at 1:52 PM, Williams, Mitch A
> <mitch.a.williams@intel.com> wrote:
> > 
> > 
> > 
> > > 
> > > -----Original Message-----
> > > From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
> > > Sent: Friday, April 01, 2016 1:07 PM
> > > To: Williams, Mitch A <mitch.a.williams@intel.com>
> > > Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
> > > Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly
> > > handle VLAN
> > > features
> > > 
> > > On Fri, Apr 1, 2016 at 10:32 AM, Williams, Mitch A
> > > <mitch.a.williams@intel.com> wrote:
> > > > 
> > > > 
> > > > 
> > > > > 
> > > > > -----Original Message-----
> > > > > From: Alexander Duyck [mailto:alexander.duyck at gmail.com]
> > > > > Sent: Thursday, March 31, 2016 1:50 PM
> > > > > To: Williams, Mitch A <mitch.a.williams@intel.com>
> > > > > Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>
> > > > > Subject: Re: [Intel-wired-lan] [next PATCH] i40evf: properly
> > > > > handle VLAN
> > > > > features
> > > > > 
> > > > > On Thu, Mar 31, 2016 at 10:35 AM, Mitch Williams
> > > > > <mitch.a.williams@intel.com> wrote:
> > > > > > 
> > > > > > Correctly set the VLAN feature flags after setting the rest
> > > > > > of the
> > > > > > netdev flags. And don't set them in hw_features, because
> > > > > > these can't be
> > > > > > controlled by the VF driver.
> > > > > > 
> > > > > > Testing Hints: Make sure VLAN offloads work correctly when
> > > > > > not using
> > > > > > port VLANs, and make sure they're not availble when using
> > > > > > port VLANs.
> > > > > > 
> > > > > > Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
> > > > > > ---
> > > > > > ?drivers/net/ethernet/intel/i40evf/i40evf_main.c | 21
> > > > > > +++++++++++------
> > > ---
> > > > 
> > > > > 
> > > > > -
> > > > > > 
> > > > > > ?1 file changed, 11 insertions(+), 10 deletions(-)
> > > > > > 
> > > > > > diff --git
> > > > > > a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> > > > > b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> > > > > > 
> > > > > > index 4b70aae..039bbd2 100644
> > > > > > --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> > > > > > +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> > > > > > @@ -2259,6 +2259,10 @@ static int i40evf_change_mtu(struct
> > > > > > net_device
> > > > > *netdev, int new_mtu)
> > > > > > 
> > > > > > ????????return 0;
> > > > > > ?}
> > > > > > 
> > > > > > +#define I40EVF_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_TX |\
> > > > > > +??????????????????????????????NETIF_F_HW_VLAN_CTAG_RX |\
> > > > > > +??????????????????????????????NETIF_F_HW_VLAN_CTAG_FILTER)
> > > > > > +
> > > > > > ?static const struct net_device_ops i40evf_netdev_ops = {
> > > > > > ????????.ndo_open???????????????= i40evf_open,
> > > > > > ????????.ndo_stop???????????????= i40evf_close,
> > > > > > @@ -2320,16 +2324,6 @@ int i40evf_process_config(struct
> > > > > > i40evf_adapter
> > > > > *adapter)
> > > > > > 
> > > > > > ????????????????return -ENODEV;
> > > > > > ????????}
> > > > > > 
> > > > > > -???????if (adapter->vf_res->vf_offload_flags
> > > > > > -???????????& I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> > > > > > -???????????????netdev->vlan_features = netdev->features &
> > > > > > -???????????????????????????????????????~(NETIF_F_HW_VLAN_C
> > > > > > TAG_TX |
> > > > > > -?????????????????????????????????????????NETIF_F_HW_VLAN_C
> > > > > > TAG_RX |
> > > > > > -?????????????????????????????????????????NETIF_F_HW_VLAN_C
> > > > > > TAG_FILTER);
> > > > > > -???????????????netdev->features |= NETIF_F_HW_VLAN_CTAG_TX
> > > > > > |
> > > > > > -???????????????????????????????????NETIF_F_HW_VLAN_CTAG_RX
> > > > > > |
> > > > > > -???????????????????????????????????NETIF_F_HW_VLAN_CTAG_FI
> > > > > > LTER;
> > > > > > -???????}
> > > > > > ????????netdev->features |= NETIF_F_HIGHDMA |
> > > > > > ????????????????????????????NETIF_F_SG |
> > > > > > ????????????????????????????NETIF_F_IP_CSUM |
> > > > > > @@ -2358,6 +2352,13 @@ int i40evf_process_config(struct
> > > > > > i40evf_adapter
> > > > > *adapter)
> > > > > > 
> > > > > > ????????/* copy netdev features into list of user
> > > > > > selectable features
> > > */
> > > > 
> > > > > 
> > > > > > 
> > > > > > ????????netdev->hw_features |= netdev->features;
> > > > > This line here is actually a bit problematic.??I found while
> > > > > working
> > > > > on NETIF_F_GSO_PARTIAL that we end up calling
> > > > > i40evf_process_config
> > > > > multiple times.??What ends up happening is that features end
> > > > > up
> > > > > bleeding through into hw_features.??Same thing if you try
> > > > > going the
> > > > > other way.??Your best bend ends up actually being to populate
> > > > > hw_enc_features and then feed that into features and
> > > > > hw_features.
> > > > > 
> > > > > > 
> > > > > > ????????netdev->hw_features &= ~NETIF_F_RXCSUM;
> > > > > I never noticed before but why are you clearing the
> > > > > NETIF_F_RXCSUM
> > > > > flag???That is a feature you control via software isn't
> > > > > it???You could
> > > > > just ignore the results from the hardware.??Why lock this
> > > > > feature for
> > > > > a VF?
> > > > > 
> > > > > > 
> > > > > > +???????netdev->hw_features &= ~(I40EVF_VLAN_FEATURES);
> > > > > There is no need to mask hw_features if you never set it.??I
> > > > > assume
> > > > > this is needed to deal with the bleeding through issue I
> > > > > referenced
> > > > > above where you are writing hw_features from features.
> > > > > 
> > > > > > 
> > > > > > +???????netdev->features &= ~(I40EVF_VLAN_FEATURES);
> > > > > > +
> > > > > > +???????if (vfres->vf_offload_flags &
> > > > > > I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
> > > > > > +???????????????netdev->vlan_features = netdev->features;
> > > > > > +???????????????netdev->features |= I40EVF_VLAN_FEATURES;
> > > > > > +???????}
> > > > > > 
> > > > > > ????????adapter->vsi.id = adapter->vsi_res->vsi_id;
> > > > > You can probably just set vlan_features always.??As far as I
> > > > > know the
> > > > > i40e/i40evf hardware doesn't penalize you if you have some
> > > > > extra data
> > > > > like a VLAN tag in the L2 header so TSO and checksums should
> > > > > all still
> > > > > work.
> > > > > 
> > > > > - Alex
> > > > This looks like it's causing build problems, so let's drop it
> > > > and I'll
> > > respin. Again.
> > > 
> > > If you want I can just submit a patch in a couple hours to take
> > > care
> > > of most of this and a few other things I have found.??I was
> > > already
> > > working in the area as I have the GSO partial stuff and some code
> > > to
> > > add IPIP and SIT tunnel support for the PF and VF drivers.
> > > 
> > > - Alex
> > Thanks for the offer. Just pushed my v2.
> > -Mitch
> Yeah I saw that.??I'll probably wait for Jeff to apply it then I will
> rebase my patches and submit the stuff for IPIP and SIT offload
> support.

I have applied Mitch's patch to dev-queue branch in my next-queue tree.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20160401/2fe95d20/attachment.asc>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-04-01 23:41 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-31 17:35 [Intel-wired-lan] [next PATCH] i40evf: properly handle VLAN features Mitch Williams
2016-03-31 20:50 ` Alexander Duyck
2016-04-01 17:32   ` Williams, Mitch A
2016-04-01 20:06     ` Alexander Duyck
2016-04-01 20:52       ` Williams, Mitch A
2016-04-01 20:55         ` Alexander Duyck
2016-04-01 23:41           ` Jeff Kirsher
2016-04-01  5:17 ` kbuild test robot
2016-04-01 13:10 ` kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.