kni: fix build on RHEL8

Message ID 1558929727-56647-1-git-send-email-michael.luo@intel.com (mailing list archive)
State Not Applicable, archived
Delegated to: Thomas Monjalon
Headers
Series kni: fix build on RHEL8 |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/intel-Performance-Testing success Performance Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS

Commit Message

Luo, Michael May 27, 2019, 4:02 a.m. UTC
  From: Luo Gaoliang <michael.luo@intel.com>

Build error was seen on RHEL8 when CONFIG_RTE_KNI_KMOD_ETHTOOL is enabled.

Build error log:
/root/kni/dpdk-19.05/kernel/linux/kni/ethtool/igb/kcompat.h:3928:25:
error: 'const struct net_device_ops' has no member named 'extended'
 #define ndo_set_vf_vlan extended.ndo_set_vf_vlan
                         ^~~~~~~~

RHEL8 defined ndo_set_vf_vlan in net_device_ops as well as the mainline kernel.

Signed-off-by: Luo Gaoliang <michael.luo@intel.com>
---
 kernel/linux/kni/ethtool/igb/kcompat.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Thomas Monjalon May 29, 2019, 9:48 p.m. UTC | #1
27/05/2019 06:02, michael.luo@intel.com:
> From: Luo Gaoliang <michael.luo@intel.com>
> 
> Build error was seen on RHEL8 when CONFIG_RTE_KNI_KMOD_ETHTOOL is enabled.
> 
> Build error log:
> /root/kni/dpdk-19.05/kernel/linux/kni/ethtool/igb/kcompat.h:3928:25:
> error: 'const struct net_device_ops' has no member named 'extended'
>  #define ndo_set_vf_vlan extended.ndo_set_vf_vlan
>                          ^~~~~~~~

This module has been removed from DPDK:
	http://git.dpdk.org/dpdk/commit/?id=ea6b39b5b84

Do we want to apply this patch directly in older releases (LTS)?
  
Ferruh Yigit June 4, 2019, 3 p.m. UTC | #2
On 5/29/2019 10:48 PM, Thomas Monjalon wrote:
> 27/05/2019 06:02, michael.luo@intel.com:
>> From: Luo Gaoliang <michael.luo@intel.com>
>>
>> Build error was seen on RHEL8 when CONFIG_RTE_KNI_KMOD_ETHTOOL is enabled.
>>
>> Build error log:
>> /root/kni/dpdk-19.05/kernel/linux/kni/ethtool/igb/kcompat.h:3928:25:
>> error: 'const struct net_device_ops' has no member named 'extended'
>>  #define ndo_set_vf_vlan extended.ndo_set_vf_vlan
>>                          ^~~~~~~~
> 
> This module has been removed from DPDK:
> 	http://git.dpdk.org/dpdk/commit/?id=ea6b39b5b84
> 
> Do we want to apply this patch directly in older releases (LTS)?

Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>

stable mail list already in the cc, but

Kevin, Yongsek,
This patch won't be in the master repo, is there anything needs to be done to
include the patch in LTS, or is this mail sufficient?

Thanks,
ferruh
  
Kevin Traynor June 4, 2019, 3:23 p.m. UTC | #3
On 04/06/2019 16:00, Ferruh Yigit wrote:
> On 5/29/2019 10:48 PM, Thomas Monjalon wrote:
>> 27/05/2019 06:02, michael.luo@intel.com:
>>> From: Luo Gaoliang <michael.luo@intel.com>
>>>
>>> Build error was seen on RHEL8 when CONFIG_RTE_KNI_KMOD_ETHTOOL is enabled.
>>>
>>> Build error log:
>>> /root/kni/dpdk-19.05/kernel/linux/kni/ethtool/igb/kcompat.h:3928:25:
>>> error: 'const struct net_device_ops' has no member named 'extended'
>>>  #define ndo_set_vf_vlan extended.ndo_set_vf_vlan
>>>                          ^~~~~~~~
>>
>> This module has been removed from DPDK:
>> 	http://git.dpdk.org/dpdk/commit/?id=ea6b39b5b84
>>
>> Do we want to apply this patch directly in older releases (LTS)?
> 
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> stable mail list already in the cc, but
> 
> Kevin, Yongsek,
> This patch won't be in the master repo, is there anything needs to be done to
> include the patch in LTS, or is this mail sufficient?
> 

Hi Ferruh, this mail is enough, will note it.

thanks,
Kevin.

> Thanks,
> ferruh
>
  

Patch

diff --git a/kernel/linux/kni/ethtool/igb/kcompat.h b/kernel/linux/kni/ethtool/igb/kcompat.h
index 649a69c..f041a3e 100644
--- a/kernel/linux/kni/ethtool/igb/kcompat.h
+++ b/kernel/linux/kni/ethtool/igb/kcompat.h
@@ -3922,7 +3922,8 @@  skb_set_hash(struct sk_buff *skb, __u32 hash, __always_unused int type)
      (SLE_VERSION_CODE && SLE_VERSION_CODE >= SLE_VERSION(12, 3, 0)) || \
      (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 4)))
 #define HAVE_VF_VLAN_PROTO
-#if (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 4))
+#if ((RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7, 4)) && \
+	(RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(8, 0)))
 /* In RHEL/Centos 7.4, the "new" version of ndo_set_vf_vlan
  * is in the struct net_device_ops_extended */
 #define ndo_set_vf_vlan extended.ndo_set_vf_vlan