[Intel-wired-lan] [jkirsher-next-queue:dev-queue 35/55] drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:9925:12: error: 'struct sk_buff' has no member named 'sp'; did you mean 'sk'?

Alexander Duyck alexander.duyck at gmail.com
Wed Mar 21 15:53:45 UTC 2018


On Wed, Mar 21, 2018 at 8:33 AM, Shannon Nelson
<shannon.nelson at oracle.com> wrote:
>
>
> On 3/20/2018 2:50 PM, Duyck, Alexander H wrote:
>>
>> On Wed, 2018-03-21 at 02:17 +0800, kbuild test robot wrote:
>>>
>>> tree:
>>> https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
>>> dev-queue
>>> head:   87cc3719efa6c6bd875e67892450bd03a9e147e4
>>> commit: 747053c601fe8547518069b8791337716b71c4c6 [35/55] ixgbe: enable
>>> tso with ipsec offload
>>> config: powerpc-skiroot_defconfig (attached as .config)
>>> compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
>>> reproduce:
>>>          wget
>>> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
>>> ~/bin/make.cross
>>>          chmod +x ~/bin/make.cross
>>>          git checkout 747053c601fe8547518069b8791337716b71c4c6
>>>          # save the attached .config to linux build tree
>>>          make.cross ARCH=powerpc
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>>     drivers/net/ethernet/intel/ixgbe/ixgbe_main.c: In function
>>> 'ixgbe_features_check':
>>>>>
>>>>> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:9925:12: error: 'struct
>>>>> sk_buff' has no member named 'sp'; did you mean 'sk'?
>>>
>>>
>>>           !skb->sp)
>>>                 ^~
>>>                 sk
>>>
>>> vim +9925 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>>>
>>>    9896
>>>    9897 static netdev_features_t
>>>    9898 ixgbe_features_check(struct sk_buff *skb, struct net_device *dev,
>>>    9899                      netdev_features_t features)
>>>    9900 {
>>>    9901         unsigned int network_hdr_len, mac_hdr_len;
>>>    9902
>>>    9903         /* Make certain the headers can be described by a context
>>> descriptor */
>>>    9904         mac_hdr_len = skb_network_header(skb) - skb->data;
>>>    9905         if (unlikely(mac_hdr_len > IXGBE_MAX_MAC_HDR_LEN))
>>>    9906                 return features & ~(NETIF_F_HW_CSUM |
>>>    9907                                     NETIF_F_SCTP_CRC |
>>>    9908                                     NETIF_F_HW_VLAN_CTAG_TX |
>>>    9909                                     NETIF_F_TSO |
>>>    9910                                     NETIF_F_TSO6);
>>>    9911
>>>    9912         network_hdr_len = skb_checksum_start(skb) -
>>> skb_network_header(skb);
>>>    9913         if (unlikely(network_hdr_len >
>>> IXGBE_MAX_NETWORK_HDR_LEN))
>>>    9914                 return features & ~(NETIF_F_HW_CSUM |
>>>    9915                                     NETIF_F_SCTP_CRC |
>>>    9916                                     NETIF_F_TSO |
>>>    9917                                     NETIF_F_TSO6);
>>>    9918
>>>    9919         /* We can only support IPV4 TSO in tunnels if we can
>>> mangle the
>>>    9920          * inner IP ID field, so strip TSO if MANGLEID is not
>>> supported.
>>>    9921          * IPsec offoad sets skb->encapsulation but still can
>>> handle
>>>    9922          * the TSO, so it's the exception.
>>>    9923          */
>>>    9924         if (skb->encapsulation && !(features &
>>> NETIF_F_TSO_MANGLEID) &&
>>>>
>>>> 9925                !skb->sp)
>>>
>>>
>>>    9926                 features &= ~NETIF_F_TSO;
>>>    9927
>>>    9928         return features;
>>>    9929 }
>>
>>
>> What you may want to look at doing in order to fix this is flip the
>> logic like so:
>>
>>         if (!skb->encapsulation || (features & NETIF_F_TSO_MANGLEID))
>>                 return features;
>> #ifdef CONFIG_XFRM
>>         /* IPSec is a special case excluded from the above rule */
>>         if (skb->sp)
>>                 return features;
>> #endif
>>         return features & ~NETIF_F_TSO;
>>
>> Anyway just my $0.02, thanks.
>
>
> Thanks, Alex, but I think this obfuscates the code a little, and might make
> it harder to add other feature concerns in the future.  I'd rather keep the
> look of the exception if possible.  Maybe something like this?
>
>         if (skb->encapsulation && !(features & NETIF_F_TSO_MANGLEID))
> #ifdef CONFIG_XFRM
>                 if (!skb->sp)
> #endif
>                         features &= ~NETIF_F_TSO;
>
>         return features;
>
>
> sln

That works. My only ask then would be add braces around the statement
since it is technically a multi-line statement at that point.

- Alex


More information about the Intel-wired-lan mailing list