Open xtaran opened 5 years ago
Can you try to build from the latest git head?
The log failure looks more or less the same, just some line numbers seem different. There's also no simple_strtoul
or is_vlan_dev
involved:
DKMS make.log for ipt-netflow-2.3 for kernel 5.0.0-3-generic (x86_64)
Wed Feb 6 16:33:12 UTC 2019
Compiling for kernel 5.0.0-3-generic
make -C /lib/modules/5.0.0-3-generic/build M=/var/lib/dkms/ipt-netflow/2.3/build modules CONFIG_DEBUG_INFO=y
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: Entering directory '/usr/src/linux-headers-5.0.0-3-generic'
CC [M] /var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.o
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c: In function 'nf_seq_show':
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:753:39: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 's64' {aka 'long long int'} [-Wformat=]
seq_printf(seq, " Flows selected %lu, discarded %lu.",
~~^
%llu
atomic64_read(&flows_selected),
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:753:54: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 's64' {aka 'long long int'} [-Wformat=]
seq_printf(seq, " Flows selected %lu, discarded %lu.",
~~^
%llu
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:755:8:
atomic64_read(&flows_observed) - atomic64_read(&flows_selected));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:757:39: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 's64' {aka 'long long int'} [-Wformat=]
seq_printf(seq, " Flows selected %lu.", atomic64_read(&flows_selected));
~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c: In function 'netflow_export_pdu_v5':
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:2632:2: error: implicit declaration of function 'do_gettimeofday'; did you mean 'do_settimeofday64'? [-Werror=implicit-function-declaration]
do_gettimeofday(&tv);
^~~~~~~~~~~~~~~
do_settimeofday64
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c: In function 'netflow_target':
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5241:12: error: 'struct sk_buff' has no member named 'nf_bridge'; did you mean 'nf_trace'?
if (skb->nf_bridge && skb->nf_bridge->physdev) \
^~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5246:3: note: in expansion of macro 'copy_dev'
copy_dev(nf->o_ifphys, physoutdev, if_out);
^~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5241:30: error: 'struct sk_buff' has no member named 'nf_bridge'; did you mean 'nf_trace'?
if (skb->nf_bridge && skb->nf_bridge->physdev) \
^~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5246:3: note: in expansion of macro 'copy_dev'
copy_dev(nf->o_ifphys, physoutdev, if_out);
^~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5242:28: error: 'struct sk_buff' has no member named 'nf_bridge'; did you mean 'nf_trace'?
out = resolve_snmp(skb->nf_bridge->physdev); \
^~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5246:3: note: in expansion of macro 'copy_dev'
copy_dev(nf->o_ifphys, physoutdev, if_out);
^~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5241:12: error: 'struct sk_buff' has no member named 'nf_bridge'; did you mean 'nf_trace'?
if (skb->nf_bridge && skb->nf_bridge->physdev) \
^~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5247:3: note: in expansion of macro 'copy_dev'
copy_dev(nf->i_ifphys, physindev, if_in);
^~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5241:30: error: 'struct sk_buff' has no member named 'nf_bridge'; did you mean 'nf_trace'?
if (skb->nf_bridge && skb->nf_bridge->physdev) \
^~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5247:3: note: in expansion of macro 'copy_dev'
copy_dev(nf->i_ifphys, physindev, if_in);
^~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5242:28: error: 'struct sk_buff' has no member named 'nf_bridge'; did you mean 'nf_trace'?
out = resolve_snmp(skb->nf_bridge->physdev); \
^~~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5247:3: note: in expansion of macro 'copy_dev'
copy_dev(nf->i_ifphys, physindev, if_in);
^~~~~~~~
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c: In function 'ipt_netflow_init':
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5538:43: error: invalid operands to binary << (have 'long unsigned int (*)(void)' and 'int')
unsigned long memksize = (num_physpages << PAGE_SHIFT) / 1024;
^~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:293: /var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.o] Error 1
make[1]: *** [Makefile:1582: _module_/var/lib/dkms/ipt-netflow/2.3/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.0.0-3-generic'
make: *** [Makefile:25: ipt_NETFLOW.ko] Error 2
I suspect that https://github.com/torvalds/linux/commit/de8bda1d22d38b7d5cd08b33f86efd94d4c86630#diff-ce59bbd8b4efd2475bfd7b50fe420671 is causing this as it removes skb->nf_bridge
.
Thanks. I will look into it later.
torvalds/linux@de8bda1 is only one part of the cause.
Another cause is that do_gettimeofday()
is gone, too. ktime_get_real_ts64()
seems a direct replacement.
A third cause seems this error:
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c: In function 'ipt_netflow_init':
/var/lib/dkms/ipt-netflow/2.3/build/ipt_NETFLOW.c:5541:43: error: invalid operands to binary << (have 'long unsigned int (*)(void)' and 'int')
unsigned long memksize = (num_physpages << PAGE_SHIFT) / 1024;
^~
This is basically a forward of this bug report in Ubuntu.
The Debian package of ipt_NETFLOW no more builds with DKMS when being build against the Linux Kernel 5.0-rc5. Following the DKMS build log: