intel / ethernet-linux-i40e

The i40e Linux Base Drivers for Intel Ethernet Network Connections.
GNU General Public License v2.0
13 stars 5 forks source link

[bug] i40e 2.26.8 doesn't compile with Linux 6.11-rc6 #6

Open JonKohler opened 2 months ago

JonKohler commented 2 months ago

Hey all - thanks for the most recent 2.26.8 update, that fixed up several compile issues that I saw with 6.10, however, one lingers on when working on latest mainline (6.11)

Driver Tag/Commit

https://github.com/intel/ethernet-linux-i40e/releases/tag/v2.26.8

Custom Code

No

OS Platform and Distribution

Linux 6.11-rc6 (431c1646e1f8) - https://github.com/torvalds/linux/tree/v6.11-rc6

Bug description

Intel i40e out of tree driver 2.26.8 does not compile with latest mainline, 6.11-rc6

Breakage appears to be from https://github.com/torvalds/linux/commit/2111375b85ad173d58e7b8604246a3de60950ac8 and series https://lore.kernel.org/all/20240709-feature_ptp_netnext-v17-0-b5317f50df2a@bootlin.com/

Reproduction steps

1. Pull latest rc tag from Linux tree (https://github.com/torvalds/linux/tree/v6.11-rc6)
2. Try to compile with 2.26.8
3. Watch it go kaboom with error noted in logs below

Expected Behavior

It compiles

Actual Behavior

It does not compile

Additional Data

Using mockbuild environment with el8 based userspace, and distro compiler (GCC 8.5 distro managed)

Relevant log output

[i40e] /builddir/build/BUILD/i40e-2.26.8/src/i40e_ethtool.c: In function 'i40e_get_ts_info':
[i40e] /builddir/build/BUILD/i40e-2.26.8/src/i40e_ethtool.c:3090:38: error: passing argument 2 of 'ethtool_op_get_ts_info' from incompatible pointer type [-Werror=incompatible-pointer-types]
[i40e]    return ethtool_op_get_ts_info(dev, info);
[i40e]                                       ^~~~
[i40e] In file included from /builddir/build/BUILD/i40e-2.26.8/src/kcompat.h:19,
[i40e]                  from /builddir/build/BUILD/i40e-2.26.8/src/i40e.h:32,
[i40e]                  from /builddir/build/BUILD/i40e-2.26.8/src/i40e_ethtool.c:6:
[i40e] ./include/linux/ethtool.h:1200:38: note: expected 'struct kernel_ethtool_ts_info *' but argument is of type 'struct ethtool_ts_info *'
[i40e]        struct kernel_ethtool_ts_info *eti);
[i40e]        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
[i40e] /builddir/build/BUILD/i40e-2.26.8/src/i40e_ethtool.c: At top level:
[i40e] /builddir/build/BUILD/i40e-2.26.8/src/i40e_ethtool.c:7521:18: error: initialization of 'int (*)(struct net_device *, struct kernel_ethtool_ts_info *)' from incompatible pointer type 'int (*)(struct net_device *, struct ethtool_ts_info *)' [-Werror=incompatible-pointer-types]
[i40e]   .get_ts_info  = i40e_get_ts_info,
[i40e]                   ^~~~~~~~~~~~~~~~
[i40e] /builddir/build/BUILD/i40e-2.26.8/src/i40e_ethtool.c:7521:18: note: (near initialization for 'i40e_ethtool_ops.get_ts_info')
[i40e] cc1: all warnings being treated as errors
JonKohler commented 2 months ago

cc @aloktion

aloktion commented 2 months ago

it will be fixed in the next release

ss-smk commented 1 month ago

CentOS 9 stream upgrades kernel yesterday (5.14.0-516.el9 -> 5.14.0-522.el9) compile latest driver 2.26.8 broke too, with same error.