[PATCH] mptcp:pm netlink: fix variable scope
by Matthieu Baerts
kbuild reported this warning from CPPCheck:
net/mptcp/pm_netlink.c:98:22: warning: The scope of the variable 'skc' can be reduced. [variableScope]
Signed-off-by: Matthieu Baerts <matthieu.baerts(a)tessares.net>
---
Notes:
I tried to reproduce this warning with CPPCheck (1.90) but without success.
Should I send this patch to netdev? In this function, it will not change
anything, no?
CPPCheck could also complain that 'cur' variable scope could be reduced.
With CPPCheck, I only got false positive warnings in net/mptcp/protocol.c:
Possible null pointer dereference: dfrag
net/mptcp/protocol.c:776:42: note: Calling function 'mptcp_sendmsg_frag', 4th argument 'NULL' value is 0
ret = mptcp_sendmsg_frag(sk, ssk, msg, NULL, &timeo, &mss_now,
It seems it doesn't understand "retransmision = !!dfrag". I don't know if I
should add cppcheck support in the CI. For the moment, I would only have to
suppress false positives :)
net/mptcp/pm_netlink.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c
index a0ce7f324499..3ad952affdcf 100644
--- a/net/mptcp/pm_netlink.c
+++ b/net/mptcp/pm_netlink.c
@@ -95,9 +95,10 @@ static bool lookup_subflow_by_saddr(const struct list_head *list,
{
struct mptcp_subflow_context *subflow;
struct mptcp_addr_info cur;
- struct sock_common *skc;
list_for_each_entry(subflow, list, node) {
+ struct sock_common *skc;
+
skc = (struct sock_common *)mptcp_subflow_tcp_sock(subflow);
local_address(skc, &cur);
--
2.25.1
2 years, 2 months
[PATCH] mptcp: move pr_fmt defining to protocol.h
by Geliang Tang
Some of the mptcp logs didn't print out the format string "MPTCP":
[ 129.185774] DSS
[ 129.185774] data_fin=0 dsn64=1 use_map=1 ack64=1 use_ack=1
[ 129.185774] data_ack=5481534886531492085
[ 129.185775] data_seq=15725204003114694615 subflow_seq=1425409 data_len=5216
[ 129.185776] subflow=0000000093526a92 fully established=1 seq=0:0 remaining=28
[ 129.185776] MPTCP: msk=00000000d5a704a6 ssk=00000000b5aabc31 data_avail=0 skb=0000000088f05424
[ 129.185777] MPTCP: seq=15725204003114694615 is64=1 ssn=1425409 data_len=5216 data_fin=0
[ 129.185777] MPTCP: msk=00000000d5a704a6 ssk=00000000b5aabc31 status=0
[ 129.185778] MPTCP: msk ack_seq=da3b25b9a233c2c7 subflow ack_seq=da3b25b9a233c2c7
[ 129.185778] MPTCP: msk=00000000d5a704a6 ssk=00000000b5aabc31 data_avail=1 skb=000000000caed2cc
[ 129.185779] subflow=0000000093526a92 fully established=1 seq=0:0 remaining=28
So this patch moves the pr_fmt defining from protocol.c to protocol.h, which
is included by all the C files. Then we can get the same format string
"MPTCP" in all mptcp logs like this:
[ 141.854787] MPTCP: DSS
[ 141.854788] MPTCP: data_fin=0 dsn64=1 use_map=1 ack64=1 use_ack=1
[ 141.854788] MPTCP: data_ack=18028325517710311871
[ 141.854788] MPTCP: data_seq=6163976859259356786 subflow_seq=3309569 data_len=8192
[ 141.854789] MPTCP: msk=000000005847a66a ssk=0000000022469903 data_avail=0 skb=00000000dd95efc3
[ 141.854789] MPTCP: seq=6163976859259356786 is64=1 ssn=3309569 data_len=8192 data_fin=0
[ 141.854790] MPTCP: msk=000000005847a66a ssk=0000000022469903 status=0
[ 141.854790] MPTCP: msk ack_seq=558ad84b9be1d162 subflow ack_seq=558ad84b9be1d162
[ 141.854791] MPTCP: msk=000000005847a66a ssk=0000000022469903 data_avail=1 skb=000000000b8926f6
[ 141.854791] MPTCP: subflow=00000000e4e4579c fully established=1 seq=0:0 remaining=28
[ 141.854792] MPTCP: subflow=00000000e4e4579c fully established=1 seq=0:dcdf2f3b remaining=28
Signed-off-by: Geliang Tang <geliangtang(a)gmail.com>
---
net/mptcp/protocol.c | 2 --
net/mptcp/protocol.h | 2 ++
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index 72f3176dc924..cc86137cd04f 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -4,8 +4,6 @@
* Copyright (c) 2017 - 2019, Intel Corporation.
*/
-#define pr_fmt(fmt) "MPTCP: " fmt
-
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/netdevice.h>
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 67448002a2d7..3eff041eeccf 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -7,6 +7,8 @@
#ifndef __MPTCP_PROTOCOL_H
#define __MPTCP_PROTOCOL_H
+#define pr_fmt(fmt) "MPTCP: " fmt
+
#include <linux/random.h>
#include <net/tcp.h>
#include <net/inet_connection_sock.h>
--
2.17.1
2 years, 2 months
[Weekly meetings] MoM - 2nd of April 2020
by Matthieu Baerts
Hello,
We just had our 93rd meeting with Mat (Intel OTC), Peter (), Davide and
Florian (RedHat) and myself (Tessares).
Thanks again for this new good meeting!
Here are the minutes of the meeting:
Accepted patches:
- The list of accepted patches can be seen on PatchWork:
https://patchwork.ozlabs.org/project/mptcp/list/?state=3
netdev (if mptcp ML is in cc) (by: Florian, Matthieu):
1263970 [net-next,1/1] selftests:mptcp: fix failure due to whitespace d
mptcp: fix tcp fallback crash
mptcp: subflow: check parent mptcp socket on subflow state change
mptcp: re-check dsn before reading from subflow
mptcp: fix "fn parameter not described" warnings
our repo (by: Florian Westphal, Mat Martineau, Matthieu Baerts):
1264688 mptcp: fix tcp fallback crash
1262978 squashto: mptcp: allow dumping subflow context to userspace
1262846 [6/6] topmsg: mptcp: add and use MIB counter infrastructure
1262847 [5/6] Squash-to: "mptcp: add and use MIB counter infrastructure
1262843 [4/6] topmsg: mptcp: rework mptcp_sendmsg_frag to accept option
1262845 [3/6] Squash-to: "mptcp: rework mptcp_sendmsg_frag to accept op
1262844 [2/6] topmsg: mptcp: queue data for mptcp level retransmission
1262841 [1/6] Squash-to: "mptcp: queue data for mptcp level retransmiss
1258245 [mptcp-next,v2] tcp: mptcp: use mptcp receive buffer space to s
Pending patches:
- The list of pending patches can be seen on PatchWork:
https://patchwork.ozlabs.org/project/mptcp/list/?state=*
netdev (if mptcp ML is in cc) (by: /):
/
our repo (by: Davide Caratti, Florian Westphal, Matthieu Baerts,
Paolo Abeni):
1253668: Changes Requested: mptcp: propagate sendbuf setting to subflow
on fallback
1253672: Changes Requested: mptcp: copy mptcp receive buffer setting to
subflow:
- to be archived
1262061: RFC: [RFC,1/2] uapi: update linux/mptcp.h
1262063: RFC: [RFC,2/2] add support for mptcp netlink interface.:
- Davide will continue the work
- Mat did a first review
1263271: RFC: [RFC,iproute2-next] ss: allow dumping MPTCP subflow
information:
- To be reviewed
1264726: Rejected: Re: [PATCH] mptcp: fix tcp fallback crash:
- to be archived too
1265469: New: selftests:mptcp:pm: rm the right tmp file:
- to be reviewed
FYI: Current Roadmap:
- Part 4 (next merge window):
- Shared recv window (full support)
- IPv6 - IPv4 mapped support
- not dropping MPTCP options (ADD_ADDR, etc.)
- FAST_CLOSE
- full MPTCP v1 support (reliable add_addr, etc.)
- after a few attempts of failed MPTCP, we fallback to TCP
(like TFO is doing)
- PM server (more advanced)
- Full DATA_FIN support [WIP]:
- could be nice to have it: if ready
- Active backup support [WIP]
- ADD_ADDR for MPTCPv1: echo bit
- Opti in TCP option structures (unions) [to be rebased]
- Part 5 (extra needed for prod):
- opti/perfs
- TFO
- PM netlink
- PM bpf
- Scheduler bpf
- syncookies
- [gs]etsockopt per subflow
- notify the userspace when a subflow is added/removed → cmsg
Part 3: planned fixes:
- Florian sent patches from the export branch
- what's left after that:
- mptcp:sendmsg: truncate source buffer if mptcp sndbuf size
was set from userspace:
- Florian plans to re-check if there is no other solution
for that
- tcp: mptcp: use mptcp receive buffer space to select rcv window:
- for net-next when it will re-open
Part 4: new features:
- Mat plans to continue to work on the DATA FIN for net-next when
it will be re-opened
- Peter plans to look at the ADD_ADDR echo bit
- don't hesitate to look at the roadmap and Github issues
general protection fault in __mptcp_flush_join_list:
- From Florian: No idea yet how to fix this other than hooking into
inet_accept()
- the code is certainly fine but lack of comments linked with the RFC:
- in which conditions we fallback or reset
- Florian will try to look at that
Extra tests:
- news about Syzkaller? (Christoph):
- Shared on ML
- Also https://github.com/multipath-tcp/mptcp_net-next/issues/12
- new about Intel's kbuild? (Mat):
- last week, there was a note from them about BPF selftests issues
- but no news from them
- we might have more feedback soon
- it seems they also test MPTCP kselftests from Linus' branch
- packetdrill (Davide):
- /
- CI (Matth):
- (now only testing at the end of the export branch because
part 3 has been applied upstream)
Congratulations for all the work to have part 3 applied upstream:
- when can we celebrate that?
- we all voted no to have a face-to-face meeting next week :'(
Next meeting:
- We propose to have the next meeting on Thursday, the 9th of April.
- Usual time: 16:00 UTC (9am PDT, 6pm CEST)
- Still open to everyone!
- https://annuel2.framapad.org/p/mptcp_upstreaming_20200409
Feel free to comment on these points and propose new ones for the next
meeting!
Talk to you next week,
Matt
--
Matthieu Baerts | R&D Engineer
matthieu.baerts(a)tessares.net
Tessares SA | Hybrid Access Solutions
www.tessares.net
1 Avenue Jean Monnet, 1348 Louvain-la-Neuve, Belgium
2 years, 2 months
[selftests] eedbc68532: kernel-selftests.net/mptcp.pm_netlink.sh.fail
by kernel test robot
FYI, we noticed the following commit (built with gcc-7):
commit: eedbc685321b38fea58a14c9fbd258c4b2c2747c ("selftests: add PM netlink functional tests")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master
in testcase: kernel-selftests
with following parameters:
group: kselftests-mptcp
test-description: The kernel contains a set of "self tests" under the tools/testing/selftests/ directory. These are intended to be small unit tests to exercise individual code paths in the kernel.
test-url: https://www.kernel.org/doc/Documentation/kselftest.txt
on test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 8G
caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):
If you fix the issue, kindly add following tag
Reported-by: kernel test robot <rong.a.chen(a)intel.com>
KERNEL SELFTESTS: linux_headers_dir is /usr/src/linux-headers-x86_64-rhel-7.6-eedbc685321b38fea58a14c9fbd258c4b2c2747c
2020-04-01 06:09:17 ln -sf /usr/bin/clang-6.0 /usr/bin/clang
2020-04-01 06:09:17 ln -sf /usr/bin/llc-6.0 /usr/bin/llc
2020-04-01 06:09:18 sed -i s/default_timeout=45/default_timeout=300/ kselftest/runner.sh
2020-04-01 06:09:18 make run_tests -C net/mptcp
make: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-eedbc685321b38fea58a14c9fbd258c4b2c2747c/tools/testing/selftests/net/mptcp'
make --no-builtin-rules ARCH=x86 -C ../../../../.. headers_install
make[1]: Entering directory '/usr/src/perf_selftests-x86_64-rhel-7.6-eedbc685321b38fea58a14c9fbd258c4b2c2747c'
HOSTCC scripts/basic/fixdep
HOSTCC scripts/unifdef
WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h
WRAP arch/x86/include/generated/uapi/asm/errno.h
WRAP arch/x86/include/generated/uapi/asm/fcntl.h
WRAP arch/x86/include/generated/uapi/asm/ioctl.h
WRAP arch/x86/include/generated/uapi/asm/ioctls.h
WRAP arch/x86/include/generated/uapi/asm/ipcbuf.h
WRAP arch/x86/include/generated/uapi/asm/param.h
WRAP arch/x86/include/generated/uapi/asm/poll.h
WRAP arch/x86/include/generated/uapi/asm/resource.h
WRAP arch/x86/include/generated/uapi/asm/socket.h
WRAP arch/x86/include/generated/uapi/asm/sockios.h
WRAP arch/x86/include/generated/uapi/asm/termbits.h
WRAP arch/x86/include/generated/uapi/asm/termios.h
WRAP arch/x86/include/generated/uapi/asm/types.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
UPD include/generated/uapi/linux/version.h
HDRINST usr/include/video/edid.h
HDRINST usr/include/video/sisfb.h
HDRINST usr/include/video/uvesafb.h
HDRINST usr/include/drm/v3d_drm.h
HDRINST usr/include/drm/radeon_drm.h
HDRINST usr/include/drm/panfrost_drm.h
HDRINST usr/include/drm/vgem_drm.h
HDRINST usr/include/drm/vmwgfx_drm.h
HDRINST usr/include/drm/drm_fourcc.h
HDRINST usr/include/drm/i915_drm.h
HDRINST usr/include/drm/virtgpu_drm.h
HDRINST usr/include/drm/r128_drm.h
HDRINST usr/include/drm/amdgpu_drm.h
HDRINST usr/include/drm/drm_mode.h
HDRINST usr/include/drm/etnaviv_drm.h
HDRINST usr/include/drm/mga_drm.h
HDRINST usr/include/drm/exynos_drm.h
HDRINST usr/include/drm/nouveau_drm.h
HDRINST usr/include/drm/vc4_drm.h
HDRINST usr/include/drm/sis_drm.h
HDRINST usr/include/drm/drm_sarea.h
HDRINST usr/include/drm/qxl_drm.h
HDRINST usr/include/drm/omap_drm.h
HDRINST usr/include/drm/i810_drm.h
HDRINST usr/include/drm/savage_drm.h
HDRINST usr/include/drm/drm.h
HDRINST usr/include/drm/armada_drm.h
HDRINST usr/include/drm/msm_drm.h
HDRINST usr/include/drm/tegra_drm.h
HDRINST usr/include/drm/lima_drm.h
HDRINST usr/include/drm/via_drm.h
HDRINST usr/include/mtd/mtd-user.h
HDRINST usr/include/mtd/inftl-user.h
HDRINST usr/include/mtd/ubi-user.h
HDRINST usr/include/mtd/mtd-abi.h
HDRINST usr/include/mtd/nftl-user.h
HDRINST usr/include/xen/gntalloc.h
HDRINST usr/include/xen/privcmd.h
HDRINST usr/include/xen/gntdev.h
HDRINST usr/include/xen/evtchn.h
HDRINST usr/include/asm-generic/param.h
HDRINST usr/include/asm-generic/int-l64.h
HDRINST usr/include/asm-generic/auxvec.h
HDRINST usr/include/asm-generic/ucontext.h
HDRINST usr/include/asm-generic/swab.h
HDRINST usr/include/asm-generic/posix_types.h
HDRINST usr/include/asm-generic/unistd.h
HDRINST usr/include/asm-generic/msgbuf.h
HDRINST usr/include/asm-generic/statfs.h
HDRINST usr/include/asm-generic/shmbuf.h
HDRINST usr/include/asm-generic/signal.h
HDRINST usr/include/asm-generic/ipcbuf.h
HDRINST usr/include/asm-generic/bpf_perf_event.h
HDRINST usr/include/asm-generic/ioctl.h
HDRINST usr/include/asm-generic/sembuf.h
HDRINST usr/include/asm-generic/resource.h
HDRINST usr/include/asm-generic/signal-defs.h
HDRINST usr/include/asm-generic/sockios.h
HDRINST usr/include/asm-generic/hugetlb_encode.h
HDRINST usr/include/asm-generic/kvm_para.h
HDRINST usr/include/asm-generic/termios.h
HDRINST usr/include/asm-generic/int-ll64.h
HDRINST usr/include/asm-generic/errno-base.h
HDRINST usr/include/asm-generic/socket.h
HDRINST usr/include/asm-generic/termbits.h
HDRINST usr/include/asm-generic/ioctls.h
HDRINST usr/include/asm-generic/poll.h
HDRINST usr/include/asm-generic/fcntl.h
HDRINST usr/include/asm-generic/mman-common.h
HDRINST usr/include/asm-generic/mman.h
HDRINST usr/include/asm-generic/errno.h
HDRINST usr/include/asm-generic/setup.h
HDRINST usr/include/asm-generic/siginfo.h
HDRINST usr/include/asm-generic/stat.h
HDRINST usr/include/asm-generic/bitsperlong.h
HDRINST usr/include/asm-generic/types.h
HDRINST usr/include/rdma/rdma_user_ioctl_cmds.h
HDRINST usr/include/rdma/mthca-abi.h
HDRINST usr/include/rdma/mlx5_user_ioctl_cmds.h
HDRINST usr/include/rdma/mlx5-abi.h
HDRINST usr/include/rdma/rvt-abi.h
HDRINST usr/include/rdma/rdma_netlink.h
HDRINST usr/include/rdma/ib_user_mad.h
HDRINST usr/include/rdma/rdma_user_ioctl.h
HDRINST usr/include/rdma/ib_user_verbs.h
HDRINST usr/include/rdma/rdma_user_rxe.h
HDRINST usr/include/rdma/ib_user_sa.h
HDRINST usr/include/rdma/bnxt_re-abi.h
HDRINST usr/include/rdma/vmw_pvrdma-abi.h
HDRINST usr/include/rdma/ocrdma-abi.h
HDRINST usr/include/rdma/qedr-abi.h
HDRINST usr/include/rdma/i40iw-abi.h
HDRINST usr/include/rdma/hns-abi.h
HDRINST usr/include/rdma/rdma_user_cm.h
HDRINST usr/include/rdma/ib_user_ioctl_verbs.h
HDRINST usr/include/rdma/ib_user_ioctl_cmds.h
HDRINST usr/include/rdma/efa-abi.h
HDRINST usr/include/rdma/cxgb4-abi.h
HDRINST usr/include/rdma/siw-abi.h
HDRINST usr/include/rdma/mlx4-abi.h
HDRINST usr/include/rdma/hfi/hfi1_user.h
HDRINST usr/include/rdma/hfi/hfi1_ioctl.h
HDRINST usr/include/rdma/mlx5_user_ioctl_verbs.h
HDRINST usr/include/misc/xilinx_sdfec.h
HDRINST usr/include/misc/fastrpc.h
HDRINST usr/include/misc/habanalabs.h
HDRINST usr/include/misc/ocxl.h
HDRINST usr/include/misc/cxl.h
HDRINST usr/include/misc/pvpanic.h
HDRINST usr/include/linux/if_tun.h
HDRINST usr/include/linux/msg.h
HDRINST usr/include/linux/synclink.h
HDRINST usr/include/linux/v4l2-controls.h
HDRINST usr/include/linux/dlm_netlink.h
HDRINST usr/include/linux/isdn/capicmd.h
HDRINST usr/include/linux/virtio_pmem.h
HDRINST usr/include/linux/param.h
HDRINST usr/include/linux/raid/md_u.h
HDRINST usr/include/linux/raid/md_p.h
HDRINST usr/include/linux/virtio_types.h
HDRINST usr/include/linux/bcm933xx_hcs.h
HDRINST usr/include/linux/zorro.h
HDRINST usr/include/linux/btf.h
HDRINST usr/include/linux/memfd.h
HDRINST usr/include/linux/genwqe/genwqe_card.h
HDRINST usr/include/linux/elf.h
HDRINST usr/include/linux/virtio_vsock.h
HDRINST usr/include/linux/wmi.h
HDRINST usr/include/linux/irqnr.h
HDRINST usr/include/linux/phantom.h
HDRINST usr/include/linux/netfilter_decnet.h
HDRINST usr/include/linux/map_to_7segment.h
HDRINST usr/include/linux/gen_stats.h
HDRINST usr/include/linux/aio_abi.h
HDRINST usr/include/linux/netfilter_arp.h
HDRINST usr/include/linux/blkpg.h
HDRINST usr/include/linux/kdev_t.h
HDRINST usr/include/linux/if_bridge.h
HDRINST usr/include/linux/ip6_tunnel.h
HDRINST usr/include/linux/adb.h
HDRINST usr/include/linux/virtio_input.h
HDRINST usr/include/linux/bcache.h
HDRINST usr/include/linux/if_infiniband.h
HDRINST usr/include/linux/agpgart.h
HDRINST usr/include/linux/target_core_user.h
HDRINST usr/include/linux/atm_nicstar.h
HDRINST usr/include/linux/tc_ematch/tc_em_cmp.h
HDRINST usr/include/linux/tc_ematch/tc_em_meta.h
HDRINST usr/include/linux/tc_ematch/tc_em_ipt.h
HDRINST usr/include/linux/tc_ematch/tc_em_nbyte.h
HDRINST usr/include/linux/tc_ematch/tc_em_text.h
HDRINST usr/include/linux/smc.h
HDRINST usr/include/linux/uleds.h
HDRINST usr/include/linux/binfmts.h
HDRINST usr/include/linux/virtio_pci.h
HDRINST usr/include/linux/tcp_metrics.h
HDRINST usr/include/linux/virtio_blk.h
HDRINST usr/include/linux/rfkill.h
HDRINST usr/include/linux/psample.h
HDRINST usr/include/linux/falloc.h
HDRINST usr/include/linux/raw.h
HDRINST usr/include/linux/mroute.h
HDRINST usr/include/linux/ppp-ioctl.h
HDRINST usr/include/linux/sed-opal.h
HDRINST usr/include/linux/ipsec.h
HDRINST usr/include/linux/net_dropmon.h
HDRINST usr/include/linux/ipc.h
HDRINST usr/include/linux/virtio_gpu.h
HDRINST usr/include/linux/joystick.h
HDRINST usr/include/linux/if_fddi.h
HDRINST usr/include/linux/if_alg.h
HDRINST usr/include/linux/vsockmon.h
HDRINST usr/include/linux/arm_sdei.h
HDRINST usr/include/linux/cycx_cfm.h
HDRINST usr/include/linux/tty_flags.h
HDRINST usr/include/linux/ip.h
HDRINST usr/include/linux/fdreg.h
HDRINST usr/include/linux/qrtr.h
HDRINST usr/include/linux/quota.h
HDRINST usr/include/linux/rtc.h
HDRINST usr/include/linux/hiddev.h
HDRINST usr/include/linux/dlm.h
HDRINST usr/include/linux/pr.h
HDRINST usr/include/linux/psp-sev.h
HDRINST usr/include/linux/wireless.h
HDRINST usr/include/linux/nfs_fs.h
HDRINST usr/include/linux/openat2.h
HDRINST usr/include/linux/qnx4_fs.h
HDRINST usr/include/linux/android/binderfs.h
HDRINST usr/include/linux/android/binder.h
HDRINST usr/include/linux/inotify.h
HDRINST usr/include/linux/soundcard.h
HDRINST usr/include/linux/auxvec.h
HDRINST usr/include/linux/am437x-vpfe.h
HDRINST usr/include/linux/fadvise.h
HDRINST usr/include/linux/radeonfb.h
HDRINST usr/include/linux/gtp.h
HDRINST usr/include/linux/ipmi.h
HDRINST usr/include/linux/uuid.h
HDRINST usr/include/linux/usbip.h
HDRINST usr/include/linux/if_ether.h
HDRINST usr/include/linux/i2c-dev.h
HDRINST usr/include/linux/cm4000_cs.h
HDRINST usr/include/linux/xilinx-v4l2-controls.h
HDRINST usr/include/linux/serio.h
HDRINST usr/include/linux/tipc_config.h
HDRINST usr/include/linux/if_xdp.h
HDRINST usr/include/linux/kfd_ioctl.h
HDRINST usr/include/linux/dns_resolver.h
HDRINST usr/include/linux/ethtool.h
HDRINST usr/include/linux/if_packet.h
HDRINST usr/include/linux/if_addrlabel.h
HDRINST usr/include/linux/sysctl.h
HDRINST usr/include/linux/ptp_clock.h
HDRINST usr/include/linux/cgroupstats.h
HDRINST usr/include/linux/tcp.h
HDRINST usr/include/linux/swab.h
HDRINST usr/include/linux/atmapi.h
HDRINST usr/include/linux/if_link.h
HDRINST usr/include/linux/atmppp.h
HDRINST usr/include/linux/vbox_err.h
HDRINST usr/include/linux/posix_types.h
HDRINST usr/include/linux/adfs_fs.h
HDRINST usr/include/linux/aspeed-lpc-ctrl.h
HDRINST usr/include/linux/mpls_iptunnel.h
HDRINST usr/include/linux/netdevice.h
HDRINST usr/include/linux/unistd.h
HDRINST usr/include/linux/mptcp.h
HDRINST usr/include/linux/gpio.h
HDRINST usr/include/linux/scif_ioctl.h
HDRINST usr/include/linux/hidraw.h
HDRINST usr/include/linux/atm.h
HDRINST usr/include/linux/media-bus-format.h
HDRINST usr/include/linux/fsl_hypervisor.h
HDRINST usr/include/linux/ptrace.h
HDRINST usr/include/linux/rpmsg.h
HDRINST usr/include/linux/time.h
HDRINST usr/include/linux/rtnetlink.h
HDRINST usr/include/linux/i2o-dev.h
HDRINST usr/include/linux/serial_reg.h
HDRINST usr/include/linux/nfs4_mount.h
HDRINST usr/include/linux/caif/if_caif.h
HDRINST usr/include/linux/caif/caif_socket.h
HDRINST usr/include/linux/in6.h
HDRINST usr/include/linux/atmioc.h
HDRINST usr/include/linux/membarrier.h
HDRINST usr/include/linux/magic.h
HDRINST usr/include/linux/dqblk_xfs.h
HDRINST usr/include/linux/times.h
HDRINST usr/include/linux/personality.h
HDRINST usr/include/linux/snmp.h
HDRINST usr/include/linux/vhost.h
HDRINST usr/include/linux/keyboard.h
HDRINST usr/include/linux/futex.h
HDRINST usr/include/linux/if_ppp.h
HDRINST usr/include/linux/dma-buf.h
HDRINST usr/include/linux/nilfs2_ondisk.h
HDRINST usr/include/linux/dm-log-userspace.h
HDRINST usr/include/linux/dlm_plock.h
HDRINST usr/include/linux/sysinfo.h
HDRINST usr/include/linux/uhid.h
HDRINST usr/include/linux/icmpv6.h
HDRINST usr/include/linux/utsname.h
HDRINST usr/include/linux/if.h
HDRINST usr/include/linux/const.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_ECN.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_ah.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_LOG.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_TTL.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_REJECT.h
HDRINST usr/include/linux/netfilter_ipv4/ip_tables.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_ecn.h
HDRINST usr/include/linux/netfilter_ipv4/ipt_ttl.h
HDRINST usr/include/linux/capi.h
HDRINST usr/include/linux/virtio_ids.h
HDRINST usr/include/linux/openvswitch.h
HDRINST usr/include/linux/virtio_iommu.h
HDRINST usr/include/linux/cramfs_fs.h
HDRINST usr/include/linux/signal.h
HDRINST usr/include/linux/apm_bios.h
HDRINST usr/include/linux/limits.h
HDRINST usr/include/linux/oom.h
HDRINST usr/include/linux/ivtvfb.h
HDRINST usr/include/linux/rio_mport_cdev.h
HDRINST usr/include/linux/batadv_packet.h
HDRINST usr/include/linux/nvme_ioctl.h
HDRINST usr/include/linux/sched/types.h
HDRINST usr/include/linux/neighbour.h
HDRINST usr/include/linux/hdlcdrv.h
HDRINST usr/include/linux/vtpm_proxy.h
HDRINST usr/include/linux/cciss_defs.h
HDRINST usr/include/linux/seccomp.h
HDRINST usr/include/linux/kernelcapi.h
HDRINST usr/include/linux/sound.h
HDRINST usr/include/linux/nfs.h
HDRINST usr/include/linux/wireguard.h
HDRINST usr/include/linux/seg6_iptunnel.h
HDRINST usr/include/linux/firewire-cdev.h
HDRINST usr/include/linux/vm_sockets_diag.h
HDRINST usr/include/linux/un.h
HDRINST usr/include/linux/romfs_fs.h
HDRINST usr/include/linux/hdlc/ioctl.h
HDRINST usr/include/linux/cuda.h
HDRINST usr/include/linux/mmc/ioctl.h
HDRINST usr/include/linux/bfs_fs.h
HDRINST usr/include/linux/seg6_genl.h
HDRINST usr/include/linux/ipx.h
HDRINST usr/include/linux/serial.h
HDRINST usr/include/linux/if_eql.h
HDRINST usr/include/linux/btrfs_tree.h
HDRINST usr/include/linux/ppp-comp.h
HDRINST usr/include/linux/nbd.h
HDRINST usr/include/linux/mic_ioctl.h
HDRINST usr/include/linux/hyperv.h
HDRINST usr/include/linux/auto_dev-ioctl.h
HDRINST usr/include/linux/if_arp.h
HDRINST usr/include/linux/uio.h
HDRINST usr/include/linux/xfrm.h
HDRINST usr/include/linux/bpf_perf_event.h
HDRINST usr/include/linux/nfs_mount.h
HDRINST usr/include/linux/cifs/cifs_mount.h
HDRINST usr/include/linux/keyctl.h
HDRINST usr/include/linux/virtio_balloon.h
HDRINST usr/include/linux/netfilter_ipv4.h
HDRINST usr/include/linux/pmu.h
HDRINST usr/include/linux/xattr.h
HDRINST usr/include/linux/fuse.h
HDRINST usr/include/linux/mempolicy.h
HDRINST usr/include/linux/cryptouser.h
HDRINST usr/include/linux/hsr_netlink.h
HDRINST usr/include/linux/ioctl.h
HDRINST usr/include/linux/mei.h
HDRINST usr/include/linux/string.h
HDRINST usr/include/linux/pg.h
HDRINST usr/include/linux/unix_diag.h
HDRINST usr/include/linux/byteorder/little_endian.h
HDRINST usr/include/linux/byteorder/big_endian.h
HDRINST usr/include/linux/meye.h
HDRINST usr/include/linux/kernel.h
HDRINST usr/include/linux/gsmmux.h
HDRINST usr/include/linux/lirc.h
HDRINST usr/include/linux/iio/events.h
HDRINST usr/include/linux/iio/types.h
HDRINST usr/include/linux/coff.h
HDRINST usr/include/linux/if_phonet.h
HDRINST usr/include/linux/v4l2-mediabus.h
HDRINST usr/include/linux/sock_diag.h
HDRINST usr/include/linux/ppp_defs.h
HDRINST usr/include/linux/nfs_idmap.h
HDRINST usr/include/linux/vm_sockets.h
HDRINST usr/include/linux/llc.h
HDRINST usr/include/linux/dvb/version.h
HDRINST usr/include/linux/dvb/video.h
HDRINST usr/include/linux/dvb/osd.h
HDRINST usr/include/linux/dvb/audio.h
HDRINST usr/include/linux/dvb/net.h
HDRINST usr/include/linux/dvb/dmx.h
HDRINST usr/include/linux/dvb/frontend.h
HDRINST usr/include/linux/dvb/ca.h
HDRINST usr/include/linux/timerfd.h
HDRINST usr/include/linux/utime.h
HDRINST usr/include/linux/hsi/hsi_char.h
HDRINST usr/include/linux/hsi/cs-protocol.h
HDRINST usr/include/linux/nfs4.h
HDRINST usr/include/linux/posix_acl_xattr.h
HDRINST usr/include/linux/mtio.h
HDRINST usr/include/linux/io_uring.h
HDRINST usr/include/linux/bsg.h
HDRINST usr/include/linux/sctp.h
HDRINST usr/include/linux/ipmi_msgdefs.h
HDRINST usr/include/linux/cyclades.h
HDRINST usr/include/linux/v4l2-common.h
HDRINST usr/include/linux/if_addr.h
HDRINST usr/include/linux/sched.h
HDRINST usr/include/linux/reiserfs_fs.h
HDRINST usr/include/linux/sonet.h
HDRINST usr/include/linux/max2175.h
HDRINST usr/include/linux/scc.h
HDRINST usr/include/linux/seg6_local.h
HDRINST usr/include/linux/nexthop.h
HDRINST usr/include/linux/mdio.h
HDRINST usr/include/linux/userfaultfd.h
HDRINST usr/include/linux/seg6_hmac.h
HDRINST usr/include/linux/edd.h
HDRINST usr/include/linux/dn.h
HDRINST usr/include/linux/netfilter.h
HDRINST usr/include/linux/ax25.h
HDRINST usr/include/linux/mroute6.h
HDRINST usr/include/linux/posix_acl.h
HDRINST usr/include/linux/selinux_netlink.h
HDRINST usr/include/linux/vhost_types.h
HDRINST usr/include/linux/netfilter_ipv6.h
HDRINST usr/include/linux/nfs2.h
HDRINST usr/include/linux/pkt_cls.h
HDRINST usr/include/linux/if_slip.h
HDRINST usr/include/linux/if_macsec.h
HDRINST usr/include/linux/fiemap.h
HDRINST usr/include/linux/fpga-dfl.h
HDRINST usr/include/linux/input-event-codes.h
HDRINST usr/include/linux/fb.h
HDRINST usr/include/linux/kcmp.h
HDRINST usr/include/linux/sem.h
HDRINST usr/include/linux/kcov.h
HDRINST usr/include/linux/hdlc.h
HDRINST usr/include/linux/bpfilter.h
HDRINST usr/include/linux/if_arcnet.h
HDRINST usr/include/linux/seg6.h
HDRINST usr/include/linux/tipc.h
HDRINST usr/include/linux/cec-funcs.h
HDRINST usr/include/linux/resource.h
HDRINST usr/include/linux/ife.h
HDRINST usr/include/linux/virtio_crypto.h
HDRINST usr/include/linux/matroxfb.h
HDRINST usr/include/linux/if_plip.h
HDRINST usr/include/linux/ethtool_netlink.h
HDRINST usr/include/linux/omapfb.h
HDRINST usr/include/linux/v4l2-subdev.h
HDRINST usr/include/linux/fs.h
HDRINST usr/include/linux/uinput.h
HDRINST usr/include/linux/smc_diag.h
HDRINST usr/include/linux/if_team.h
HDRINST usr/include/linux/coda.h
HDRINST usr/include/linux/hid.h
HDRINST usr/include/linux/sockios.h
HDRINST usr/include/linux/shm.h
HDRINST usr/include/linux/tee.h
HDRINST usr/include/linux/netfilter/xt_LOG.h
HDRINST usr/include/linux/netfilter/nfnetlink_compat.h
HDRINST usr/include/linux/netfilter/xt_CT.h
HDRINST usr/include/linux/netfilter/xt_cpu.h
HDRINST usr/include/linux/netfilter/nf_conntrack_ftp.h
HDRINST usr/include/linux/netfilter/xt_ecn.h
HDRINST usr/include/linux/netfilter/xt_connlabel.h
HDRINST usr/include/linux/netfilter/xt_SECMARK.h
HDRINST usr/include/linux/netfilter/xt_TEE.h
HDRINST usr/include/linux/netfilter/xt_esp.h
HDRINST usr/include/linux/netfilter/nf_conntrack_tuple_common.h
HDRINST usr/include/linux/netfilter/nfnetlink_queue.h
HDRINST usr/include/linux/netfilter/x_tables.h
HDRINST usr/include/linux/netfilter/nfnetlink_acct.h
HDRINST usr/include/linux/netfilter/nf_conntrack_sctp.h
HDRINST usr/include/linux/netfilter/xt_LED.h
HDRINST usr/include/linux/netfilter/xt_statistic.h
HDRINST usr/include/linux/netfilter/xt_TCPMSS.h
HDRINST usr/include/linux/netfilter/xt_addrtype.h
HDRINST usr/include/linux/netfilter/xt_SYNPROXY.h
HDRINST usr/include/linux/netfilter/xt_realm.h
HDRINST usr/include/linux/netfilter/xt_mac.h
HDRINST usr/include/linux/netfilter/xt_socket.h
HDRINST usr/include/linux/netfilter/xt_u32.h
HDRINST usr/include/linux/netfilter/xt_set.h
HDRINST usr/include/linux/netfilter/nf_nat.h
HDRINST usr/include/linux/netfilter/xt_time.h
HDRINST usr/include/linux/netfilter/nfnetlink_log.h
HDRINST usr/include/linux/netfilter/xt_RATEEST.h
HDRINST usr/include/linux/netfilter/nfnetlink.h
HDRINST usr/include/linux/netfilter/xt_multiport.h
HDRINST usr/include/linux/netfilter/xt_helper.h
HDRINST usr/include/linux/netfilter/xt_cgroup.h
HDRINST usr/include/linux/netfilter/xt_MARK.h
HDRINST usr/include/linux/netfilter/xt_connmark.h
HDRINST usr/include/linux/netfilter/ipset/ip_set.h
HDRINST usr/include/linux/netfilter/ipset/ip_set_bitmap.h
HDRINST usr/include/linux/netfilter/ipset/ip_set_hash.h
HDRINST usr/include/linux/netfilter/ipset/ip_set_list.h
HDRINST usr/include/linux/netfilter/xt_l2tp.h
HDRINST usr/include/linux/netfilter/xt_comment.h
HDRINST usr/include/linux/netfilter/nf_log.h
HDRINST usr/include/linux/netfilter/xt_ipcomp.h
HDRINST usr/include/linux/netfilter/xt_state.h
HDRINST usr/include/linux/netfilter/xt_DSCP.h
HDRINST usr/include/linux/netfilter/xt_conntrack.h
HDRINST usr/include/linux/netfilter/xt_nfacct.h
HDRINST usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
HDRINST usr/include/linux/netfilter/xt_length.h
HDRINST usr/include/linux/netfilter/nf_conntrack_tcp.h
HDRINST usr/include/linux/netfilter/xt_pkttype.h
HDRINST usr/include/linux/netfilter/xt_NFQUEUE.h
HDRINST usr/include/linux/netfilter/xt_osf.h
HDRINST usr/include/linux/netfilter/xt_recent.h
HDRINST usr/include/linux/netfilter/nf_conntrack_common.h
HDRINST usr/include/linux/netfilter/xt_dccp.h
HDRINST usr/include/linux/netfilter/nfnetlink_cttimeout.h
HDRINST usr/include/linux/netfilter/xt_mark.h
HDRINST usr/include/linux/netfilter/nfnetlink_cthelper.h
HDRINST usr/include/linux/netfilter/xt_bpf.h
HDRINST usr/include/linux/netfilter/xt_quota.h
HDRINST usr/include/linux/netfilter/nf_tables_compat.h
HDRINST usr/include/linux/netfilter/xt_policy.h
HDRINST usr/include/linux/netfilter/xt_tcpudp.h
HDRINST usr/include/linux/netfilter/xt_NFLOG.h
HDRINST usr/include/linux/netfilter/xt_TPROXY.h
HDRINST usr/include/linux/netfilter/xt_rateest.h
HDRINST usr/include/linux/netfilter/xt_hashlimit.h
HDRINST usr/include/linux/netfilter/xt_CONNMARK.h
HDRINST usr/include/linux/netfilter/xt_CONNSECMARK.h
HDRINST usr/include/linux/netfilter/xt_connbytes.h
HDRINST usr/include/linux/netfilter/nfnetlink_conntrack.h
HDRINST usr/include/linux/netfilter/xt_HMARK.h
HDRINST usr/include/linux/netfilter/nf_synproxy.h
HDRINST usr/include/linux/netfilter/xt_sctp.h
HDRINST usr/include/linux/netfilter/xt_devgroup.h
HDRINST usr/include/linux/netfilter/xt_cluster.h
HDRINST usr/include/linux/netfilter/xt_owner.h
HDRINST usr/include/linux/netfilter/nf_tables.h
HDRINST usr/include/linux/netfilter/xt_rpfilter.h
HDRINST usr/include/linux/netfilter/xt_string.h
HDRINST usr/include/linux/netfilter/xt_IDLETIMER.h
HDRINST usr/include/linux/netfilter/xt_physdev.h
HDRINST usr/include/linux/netfilter/xt_CHECKSUM.h
HDRINST usr/include/linux/netfilter/xt_dscp.h
HDRINST usr/include/linux/netfilter/xt_tcpmss.h
HDRINST usr/include/linux/netfilter/xt_iprange.h
HDRINST usr/include/linux/netfilter/nfnetlink_osf.h
HDRINST usr/include/linux/netfilter/xt_ipvs.h
HDRINST usr/include/linux/netfilter/xt_connlimit.h
HDRINST usr/include/linux/netfilter/xt_limit.h
HDRINST usr/include/linux/netfilter/xt_AUDIT.h
HDRINST usr/include/linux/netfilter/xt_CLASSIFY.h
HDRINST usr/include/linux/dlm_device.h
HDRINST usr/include/linux/dlmconstants.h
HDRINST usr/include/linux/suspend_ioctls.h
HDRINST usr/include/linux/errqueue.h
HDRINST usr/include/linux/fsmap.h
HDRINST usr/include/linux/kvm_para.h
HDRINST usr/include/linux/rseq.h
HDRINST usr/include/linux/cdrom.h
HDRINST usr/include/linux/fd.h
HDRINST usr/include/linux/pktcdvd.h
HDRINST usr/include/linux/ivtv.h
HDRINST usr/include/linux/udf_fs_i.h
HDRINST usr/include/linux/lightnvm.h
HDRINST usr/include/linux/blkzoned.h
HDRINST usr/include/linux/netlink_diag.h
HDRINST usr/include/linux/sunrpc/debug.h
HDRINST usr/include/linux/tipc_netlink.h
HDRINST usr/include/linux/aspeed-p2a-ctrl.h
HDRINST usr/include/linux/atm_he.h
HDRINST usr/include/linux/auto_fs4.h
HDRINST usr/include/linux/can.h
HDRINST usr/include/linux/atm_eni.h
HDRINST usr/include/linux/sonypi.h
HDRINST usr/include/linux/efs_fs_sb.h
HDRINST usr/include/linux/bpf_common.h
HDRINST usr/include/linux/libc-compat.h
HDRINST usr/include/linux/uvcvideo.h
HDRINST usr/include/linux/genetlink.h
HDRINST usr/include/linux/if_x25.h
HDRINST usr/include/linux/n_r3964.h
HDRINST usr/include/linux/net.h
HDRINST usr/include/linux/atmsap.h
HDRINST usr/include/linux/virtio_mmio.h
HDRINST usr/include/linux/if_cablemodem.h
HDRINST usr/include/linux/toshiba.h
HDRINST usr/include/linux/nubus.h
HDRINST usr/include/linux/virtio_net.h
HDRINST usr/include/linux/rxrpc.h
HDRINST usr/include/linux/batman_adv.h
HDRINST usr/include/linux/tty.h
HDRINST usr/include/linux/rose.h
HDRINST usr/include/linux/stm.h
HDRINST usr/include/linux/gfs2_ondisk.h
HDRINST usr/include/linux/if_bonding.h
HDRINST usr/include/linux/tc_act/tc_ife.h
HDRINST usr/include/linux/tc_act/tc_skbedit.h
HDRINST usr/include/linux/tc_act/tc_defact.h
HDRINST usr/include/linux/tc_act/tc_bpf.h
HDRINST usr/include/linux/tc_act/tc_tunnel_key.h
HDRINST usr/include/linux/tc_act/tc_gact.h
HDRINST usr/include/linux/tc_act/tc_ct.h
HDRINST usr/include/linux/tc_act/tc_ctinfo.h
HDRINST usr/include/linux/tc_act/tc_sample.h
HDRINST usr/include/linux/tc_act/tc_mirred.h
HDRINST usr/include/linux/tc_act/tc_nat.h
HDRINST usr/include/linux/tc_act/tc_connmark.h
HDRINST usr/include/linux/tc_act/tc_mpls.h
HDRINST usr/include/linux/tc_act/tc_csum.h
HDRINST usr/include/linux/tc_act/tc_pedit.h
HDRINST usr/include/linux/tc_act/tc_vlan.h
HDRINST usr/include/linux/tc_act/tc_ipt.h
HDRINST usr/include/linux/tc_act/tc_skbmod.h
HDRINST usr/include/linux/mqueue.h
HDRINST usr/include/linux/kd.h
HDRINST usr/include/linux/ip_vs.h
HDRINST usr/include/linux/atm_idt77105.h
HDRINST usr/include/linux/atmdev.h
HDRINST usr/include/linux/atalk.h
HDRINST usr/include/linux/isst_if.h
HDRINST usr/include/linux/nilfs2_api.h
HDRINST usr/include/linux/ppdev.h
HDRINST usr/include/linux/if_tunnel.h
HDRINST usr/include/linux/termios.h
HDRINST usr/include/linux/reiserfs_xattr.h
HDRINST usr/include/linux/affs_hardblocks.h
HDRINST usr/include/linux/timex.h
HDRINST usr/include/linux/elf-em.h
HDRINST usr/include/linux/phonet.h
HDRINST usr/include/linux/erspan.h
HDRINST usr/include/linux/i8k.h
HDRINST usr/include/linux/netrom.h
HDRINST usr/include/linux/iommu.h
HDRINST usr/include/linux/blktrace_api.h
HDRINST usr/include/linux/dma-heap.h
HDRINST usr/include/linux/random.h
HDRINST usr/include/linux/bpqether.h
HDRINST usr/include/linux/if_ltalk.h
HDRINST usr/include/linux/virtio_config.h
HDRINST usr/include/linux/switchtec_ioctl.h
HDRINST usr/include/linux/nfs3.h
HDRINST usr/include/linux/mount.h
HDRINST usr/include/linux/atmmpc.h
HDRINST usr/include/linux/netfilter_bridge.h
HDRINST usr/include/linux/omap3isp.h
HDRINST usr/include/linux/udp.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_HL.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_NPT.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_rt.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_LOG.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_srh.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
HDRINST usr/include/linux/netfilter_ipv6/ip6_tables.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_opts.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_frag.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_hl.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_ah.h
HDRINST usr/include/linux/netfilter_ipv6/ip6t_mh.h
HDRINST usr/include/linux/fib_rules.h
HDRINST usr/include/linux/zorro_ids.h
HDRINST usr/include/linux/inet_diag.h
HDRINST usr/include/linux/i2c.h
HDRINST usr/include/linux/vboxguest.h
HDRINST usr/include/linux/elf-fdpic.h
HDRINST usr/include/linux/loop.h
HDRINST usr/include/linux/bt-bmc.h
HDRINST usr/include/linux/atmarp.h
HDRINST usr/include/linux/reboot.h
HDRINST usr/include/linux/minix_fs.h
HDRINST usr/include/linux/vt.h
HDRINST usr/include/linux/videodev2.h
HDRINST usr/include/linux/socket.h
HDRINST usr/include/linux/icmp.h
HDRINST usr/include/linux/ila.h
HDRINST usr/include/linux/if_fc.h
HDRINST usr/include/linux/lp.h
HDRINST usr/include/linux/jffs2.h
HDRINST usr/include/linux/fsi.h
HDRINST usr/include/linux/in_route.h
HDRINST usr/include/linux/ipv6_route.h
HDRINST usr/include/linux/l2tp.h
HDRINST usr/include/linux/tls.h
HDRINST usr/include/linux/dccp.h
HDRINST usr/include/linux/pci.h
HDRINST usr/include/linux/chio.h
HDRINST usr/include/linux/coresight-stm.h
HDRINST usr/include/linux/tipc_sockets_diag.h
HDRINST usr/include/linux/ncsi.h
HDRINST usr/include/linux/atmbr2684.h
HDRINST usr/include/linux/spi/spidev.h
HDRINST usr/include/linux/veth.h
HDRINST usr/include/linux/dcbnl.h
HDRINST usr/include/linux/xdp_diag.h
HDRINST usr/include/linux/parport.h
HDRINST usr/include/linux/smiapp.h
HDRINST usr/include/linux/nfsacl.h
HDRINST usr/include/linux/packet_diag.h
HDRINST usr/include/linux/baycom.h
HDRINST usr/include/linux/tiocl.h
HDRINST usr/include/linux/kvm.h
HDRINST usr/include/linux/if_hippi.h
HDRINST usr/include/linux/firewire-constants.h
HDRINST usr/include/linux/netfilter_arp/arpt_mangle.h
HDRINST usr/include/linux/netfilter_arp/arp_tables.h
HDRINST usr/include/linux/can/gw.h
HDRINST usr/include/linux/can/raw.h
HDRINST usr/include/linux/can/bcm.h
HDRINST usr/include/linux/can/error.h
HDRINST usr/include/linux/can/j1939.h
HDRINST usr/include/linux/can/netlink.h
HDRINST usr/include/linux/can/vxcan.h
HDRINST usr/include/linux/signalfd.h
HDRINST usr/include/linux/arcfb.h
HDRINST usr/include/linux/sync_file.h
HDRINST usr/include/linux/pps.h
HDRINST usr/include/linux/taskstats.h
HDRINST usr/include/linux/nbd-netlink.h
HDRINST usr/include/linux/auto_fs.h
HDRINST usr/include/linux/perf_event.h
HDRINST usr/include/linux/devlink.h
HDRINST usr/include/linux/net_namespace.h
HDRINST usr/include/linux/atmclip.h
HDRINST usr/include/linux/prctl.h
HDRINST usr/include/linux/acct.h
HDRINST usr/include/linux/cn_proc.h
HDRINST usr/include/linux/if_vlan.h
HDRINST usr/include/linux/nfc.h
HDRINST usr/include/linux/poll.h
HDRINST usr/include/linux/elfcore.h
HDRINST usr/include/linux/ipmi_bmc.h
HDRINST usr/include/linux/usbdevice_fs.h
HDRINST usr/include/linux/kernel-page-flags.h
HDRINST usr/include/linux/atm_zatm.h
HDRINST usr/include/linux/patchkey.h
HDRINST usr/include/linux/virtio_scsi.h
HDRINST usr/include/linux/nfsd/cld.h
HDRINST usr/include/linux/nfsd/nfsfh.h
HDRINST usr/include/linux/nfsd/debug.h
HDRINST usr/include/linux/nfsd/export.h
HDRINST usr/include/linux/nfsd/stats.h
HDRINST usr/include/linux/gameport.h
HDRINST usr/include/linux/stddef.h
HDRINST usr/include/linux/a.out.h
HDRINST usr/include/linux/qnxtypes.h
HDRINST usr/include/linux/vfio.h
HDRINST usr/include/linux/idxd.h
HDRINST usr/include/linux/pci_regs.h
HDRINST usr/include/linux/eventpoll.h
HDRINST usr/include/linux/pkt_sched.h
HDRINST usr/include/linux/fcntl.h
HDRINST usr/include/linux/nl80211.h
HDRINST usr/include/linux/btrfs.h
HDRINST usr/include/linux/igmp.h
HDRINST usr/include/linux/netfilter_bridge/ebtables.h
HDRINST usr/include/linux/netfilter_bridge/ebt_stp.h
HDRINST usr/include/linux/netfilter_bridge/ebt_redirect.h
HDRINST usr/include/linux/netfilter_bridge/ebt_log.h
HDRINST usr/include/linux/netfilter_bridge/ebt_pkttype.h
HDRINST usr/include/linux/netfilter_bridge/ebt_nat.h
HDRINST usr/include/linux/netfilter_bridge/ebt_arp.h
HDRINST usr/include/linux/netfilter_bridge/ebt_802_3.h
HDRINST usr/include/linux/netfilter_bridge/ebt_among.h
HDRINST usr/include/linux/netfilter_bridge/ebt_limit.h
HDRINST usr/include/linux/netfilter_bridge/ebt_arpreply.h
HDRINST usr/include/linux/netfilter_bridge/ebt_ip6.h
HDRINST usr/include/linux/netfilter_bridge/ebt_mark_t.h
HDRINST usr/include/linux/netfilter_bridge/ebt_vlan.h
HDRINST usr/include/linux/netfilter_bridge/ebt_ip.h
HDRINST usr/include/linux/netfilter_bridge/ebt_nflog.h
HDRINST usr/include/linux/netfilter_bridge/ebt_mark_m.h
HDRINST usr/include/linux/net_tstamp.h
HDRINST usr/include/linux/connector.h
HDRINST usr/include/linux/screen_info.h
HDRINST usr/include/linux/if_pppol2tp.h
HDRINST usr/include/linux/kcm.h
HDRINST usr/include/linux/sdla.h
HDRINST usr/include/linux/mic_common.h
HDRINST usr/include/linux/atmsvc.h
HDRINST usr/include/linux/time_types.h
HDRINST usr/include/linux/netlink.h
HDRINST usr/include/linux/hdreg.h
HDRINST usr/include/linux/serial_core.h
HDRINST usr/include/linux/v4l2-dv-timings.h
HDRINST usr/include/linux/input.h
HDRINST usr/include/linux/media.h
HDRINST usr/include/linux/atmlec.h
HDRINST usr/include/linux/hpet.h
HDRINST usr/include/linux/atm_tcp.h
HDRINST usr/include/linux/securebits.h
HDRINST usr/include/linux/virtio_9p.h
HDRINST usr/include/linux/mman.h
HDRINST usr/include/linux/wimax.h
HDRINST usr/include/linux/kexec.h
HDRINST usr/include/linux/x25.h
HDRINST usr/include/linux/msdos_fs.h
HDRINST usr/include/linux/netconf.h
HDRINST usr/include/linux/mmtimer.h
HDRINST usr/include/linux/errno.h
HDRINST usr/include/linux/cec.h
HDRINST usr/include/linux/usb/tmc.h
HDRINST usr/include/linux/usb/video.h
HDRINST usr/include/linux/usb/g_uvc.h
HDRINST usr/include/linux/usb/midi.h
HDRINST usr/include/linux/usb/audio.h
HDRINST usr/include/linux/usb/ch11.h
HDRINST usr/include/linux/usb/functionfs.h
HDRINST usr/include/linux/usb/ch9.h
HDRINST usr/include/linux/usb/charger.h
HDRINST usr/include/linux/usb/cdc-wdm.h
HDRINST usr/include/linux/usb/gadgetfs.h
HDRINST usr/include/linux/usb/cdc.h
HDRINST usr/include/linux/usb/g_printer.h
HDRINST usr/include/linux/hw_breakpoint.h
HDRINST usr/include/linux/mii.h
HDRINST usr/include/linux/cciss_ioctl.h
HDRINST usr/include/linux/fou.h
HDRINST usr/include/linux/module.h
HDRINST usr/include/linux/fanotify.h
HDRINST usr/include/linux/if_frad.h
HDRINST usr/include/linux/udmabuf.h
HDRINST usr/include/linux/bpf.h
HDRINST usr/include/linux/audit.h
HDRINST usr/include/linux/psci.h
HDRINST usr/include/linux/nsfs.h
HDRINST usr/include/linux/lwtunnel.h
HDRINST usr/include/linux/filter.h
HDRINST usr/include/linux/watchdog.h
HDRINST usr/include/linux/fscrypt.h
HDRINST usr/include/linux/virtio_console.h
HDRINST usr/include/linux/qemu_fw_cfg.h
HDRINST usr/include/linux/ultrasound.h
HDRINST usr/include/linux/fsverity.h
HDRINST usr/include/linux/stat.h
HDRINST usr/include/linux/userio.h
HDRINST usr/include/linux/pfkeyv2.h
HDRINST usr/include/linux/thermal.h
HDRINST usr/include/linux/dm-ioctl.h
HDRINST usr/include/linux/rio_cm_cdev.h
HDRINST usr/include/linux/vfio_ccw.h
HDRINST usr/include/linux/virtio_fs.h
HDRINST usr/include/linux/hash_info.h
HDRINST usr/include/linux/virtio_ring.h
HDRINST usr/include/linux/if_pppox.h
HDRINST usr/include/linux/major.h
HDRINST usr/include/linux/in.h
HDRINST usr/include/linux/iso_fs.h
HDRINST usr/include/linux/ndctl.h
HDRINST usr/include/linux/vmcore.h
HDRINST usr/include/linux/virtio_rng.h
HDRINST usr/include/linux/mpls.h
HDRINST usr/include/linux/wait.h
HDRINST usr/include/linux/pcitest.h
HDRINST usr/include/linux/ipv6.h
HDRINST usr/include/linux/capability.h
HDRINST usr/include/linux/rds.h
HDRINST usr/include/linux/wimax/i2400m.h
HDRINST usr/include/linux/vbox_vmmdev_types.h
HDRINST usr/include/linux/nvram.h
HDRINST usr/include/linux/types.h
HDRINST usr/include/linux/route.h
HDRINST usr/include/sound/hdspm.h
HDRINST usr/include/sound/compress_offload.h
HDRINST usr/include/sound/snd_sst_tokens.h
HDRINST usr/include/sound/sfnt_info.h
HDRINST usr/include/sound/firewire.h
HDRINST usr/include/sound/compress_params.h
HDRINST usr/include/sound/asound_fm.h
HDRINST usr/include/sound/asequencer.h
HDRINST usr/include/sound/sb16_csp.h
HDRINST usr/include/sound/usb_stream.h
HDRINST usr/include/sound/skl-tplg-interface.h
HDRINST usr/include/sound/tlv.h
HDRINST usr/include/sound/emu10k1.h
HDRINST usr/include/sound/hdsp.h
HDRINST usr/include/sound/asound.h
HDRINST usr/include/sound/asoc.h
HDRINST usr/include/sound/sof/fw.h
HDRINST usr/include/sound/sof/abi.h
HDRINST usr/include/sound/sof/tokens.h
HDRINST usr/include/sound/sof/header.h
HDRINST usr/include/scsi/scsi_netlink.h
HDRINST usr/include/scsi/fc/fc_els.h
HDRINST usr/include/scsi/fc/fc_fs.h
HDRINST usr/include/scsi/fc/fc_ns.h
HDRINST usr/include/scsi/fc/fc_gs.h
HDRINST usr/include/scsi/scsi_netlink_fc.h
HDRINST usr/include/scsi/cxlflash_ioctl.h
HDRINST usr/include/scsi/scsi_bsg_ufs.h
HDRINST usr/include/scsi/scsi_bsg_fc.h
HDRINST usr/include/linux/version.h
HDRINST usr/include/asm/posix_types_x32.h
HDRINST usr/include/asm/mtrr.h
HDRINST usr/include/asm/mce.h
HDRINST usr/include/asm/kvm_perf.h
HDRINST usr/include/asm/auxvec.h
HDRINST usr/include/asm/msr.h
HDRINST usr/include/asm/bootparam.h
HDRINST usr/include/asm/ucontext.h
HDRINST usr/include/asm/swab.h
HDRINST usr/include/asm/posix_types.h
HDRINST usr/include/asm/perf_regs.h
HDRINST usr/include/asm/unistd.h
HDRINST usr/include/asm/ptrace.h
HDRINST usr/include/asm/vm86.h
HDRINST usr/include/asm/msgbuf.h
HDRINST usr/include/asm/statfs.h
HDRINST usr/include/asm/posix_types_32.h
HDRINST usr/include/asm/shmbuf.h
HDRINST usr/include/asm/signal.h
HDRINST usr/include/asm/ptrace-abi.h
HDRINST usr/include/asm/debugreg.h
HDRINST usr/include/asm/sembuf.h
HDRINST usr/include/asm/sigcontext32.h
HDRINST usr/include/asm/ist.h
HDRINST usr/include/asm/sigcontext.h
HDRINST usr/include/asm/byteorder.h
HDRINST usr/include/asm/kvm_para.h
HDRINST usr/include/asm/svm.h
HDRINST usr/include/asm/e820.h
HDRINST usr/include/asm/posix_types_64.h
HDRINST usr/include/asm/processor-flags.h
HDRINST usr/include/asm/vmx.h
HDRINST usr/include/asm/hwcap2.h
HDRINST usr/include/asm/kvm.h
HDRINST usr/include/asm/prctl.h
HDRINST usr/include/asm/vsyscall.h
HDRINST usr/include/asm/a.out.h
HDRINST usr/include/asm/mman.h
HDRINST usr/include/asm/ldt.h
HDRINST usr/include/asm/hw_breakpoint.h
HDRINST usr/include/asm/setup.h
HDRINST usr/include/asm/boot.h
HDRINST usr/include/asm/siginfo.h
HDRINST usr/include/asm/stat.h
HDRINST usr/include/asm/bitsperlong.h
HDRINST usr/include/asm/unistd_x32.h
HDRINST usr/include/asm/unistd_64.h
HDRINST usr/include/asm/unistd_32.h
HDRINST usr/include/asm/types.h
HDRINST usr/include/asm/termios.h
HDRINST usr/include/asm/termbits.h
HDRINST usr/include/asm/sockios.h
HDRINST usr/include/asm/socket.h
HDRINST usr/include/asm/resource.h
HDRINST usr/include/asm/poll.h
HDRINST usr/include/asm/param.h
HDRINST usr/include/asm/ipcbuf.h
HDRINST usr/include/asm/ioctls.h
HDRINST usr/include/asm/ioctl.h
HDRINST usr/include/asm/fcntl.h
HDRINST usr/include/asm/errno.h
HDRINST usr/include/asm/bpf_perf_event.h
INSTALL ./usr/include
make[1]: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-eedbc685321b38fea58a14c9fbd258c4b2c2747c'
gcc -Wall -Wl,--no-as-needed -O2 -g -I../../../../../usr/include mptcp_connect.c -o /usr/src/perf_selftests-x86_64-rhel-7.6-eedbc685321b38fea58a14c9fbd258c4b2c2747c/tools/testing/selftests/net/mptcp/mptcp_connect
gcc -Wall -Wl,--no-as-needed -O2 -g -I../../../../../usr/include pm_nl_ctl.c -o /usr/src/perf_selftests-x86_64-rhel-7.6-eedbc685321b38fea58a14c9fbd258c4b2c2747c/tools/testing/selftests/net/mptcp/pm_nl_ctl
TAP version 13
1..2
# selftests: net/mptcp: mptcp_connect.sh
# INFO: set ns3-5e83bf9a-oc79yp dev ns3eth2: ethtool -K gso off
# Created /tmp/tmp.4mtITcRVSD (size 8348158) containing data sent by client
# Created /tmp/tmp.tJfkegqNLG (size 890624) containing data sent by server
# New MPTCP socket can be blocked via sysctl [ OK ]
# setsockopt(..., TCP_ULP, "mptcp", ...) blocked [ OK ]
# INFO: validating network environment with pings
# INFO: Using loss of 0.34% delay 35 ms reorder 99% 46% on ns3eth4
# ns1 MPTCP -> ns1 (10.0.1.1:10000 ) MPTCP (duration 101ms) [ OK ]
# ns1 MPTCP -> ns1 (10.0.1.1:10001 ) TCP (duration 14ms) [ OK ]
# ns1 TCP -> ns1 (10.0.1.1:10002 ) MPTCP (duration 15ms) [ OK ]
# ns1 MPTCP -> ns1 (dead:beef:1::1:10003) MPTCP (duration 153ms) [ OK ]
# ns1 MPTCP -> ns1 (dead:beef:1::1:10004) TCP (duration 28ms) [ OK ]
# ns1 TCP -> ns1 (dead:beef:1::1:10005) MPTCP (duration 18ms) [ OK ]
# ns1 MPTCP -> ns2 (10.0.1.2:10006 ) MPTCP (duration 109ms) [ OK ]
# ns1 MPTCP -> ns2 (dead:beef:1::2:10007) MPTCP (duration 63ms) [ OK ]
# ns1 MPTCP -> ns2 (10.0.2.1:10008 ) MPTCP (duration 72ms) [ OK ]
# ns1 MPTCP -> ns2 (dead:beef:2::1:10009) MPTCP (duration 34ms) [ OK ]
# ns1 MPTCP -> ns3 (10.0.2.2:10010 ) MPTCP (duration 38ms) [ OK ]
# ns1 MPTCP -> ns3 (dead:beef:2::2:10011) MPTCP (duration 49ms) [ OK ]
# ns1 MPTCP -> ns3 (10.0.3.2:10012 ) MPTCP (duration 64ms) [ OK ]
# ns1 MPTCP -> ns3 (dead:beef:3::2:10013) MPTCP (duration 51ms) [ OK ]
# ns1 MPTCP -> ns4 (10.0.3.1:10014 ) MPTCP (duration 87ms) [ OK ]
# ns1 MPTCP -> ns4 (dead:beef:3::1:10015) MPTCP (duration 74ms) [ OK ]
# ns2 MPTCP -> ns1 (10.0.1.1:10016 ) MPTCP (duration 21ms) [ OK ]
# ns2 MPTCP -> ns1 (dead:beef:1::1:10017) MPTCP (duration 41ms) [ OK ]
# ns2 MPTCP -> ns3 (10.0.2.2:10018 ) MPTCP (duration 81ms) [ OK ]
# ns2 MPTCP -> ns3 (dead:beef:2::2:10019) MPTCP (duration 70ms) [ OK ]
# ns2 MPTCP -> ns3 (10.0.3.2:10020 ) MPTCP (duration 109ms) [ OK ]
# ns2 MPTCP -> ns3 (dead:beef:3::2:10021) MPTCP (duration 46ms) [ OK ]
# ns2 MPTCP -> ns4 (10.0.3.1:10022 ) MPTCP (duration 36ms) [ OK ]
# ns2 MPTCP -> ns4 (dead:beef:3::1:10023) MPTCP (duration 63ms) [ OK ]
# ns3 MPTCP -> ns1 (10.0.1.1:10024 ) MPTCP (duration 31ms) [ OK ]
# ns3 MPTCP -> ns1 (dead:beef:1::1:10025) MPTCP (duration 80ms) [ OK ]
# ns3 MPTCP -> ns2 (10.0.1.2:10026 ) MPTCP (duration 29ms) [ OK ]
# ns3 MPTCP -> ns2 (dead:beef:1::2:10027) MPTCP (duration 69ms) [ OK ]
# ns3 MPTCP -> ns2 (10.0.2.1:10028 ) MPTCP (duration 61ms) [ OK ]
# ns3 MPTCP -> ns2 (dead:beef:2::1:10029) MPTCP (duration 25ms) [ OK ]
# ns3 MPTCP -> ns4 (10.0.3.1:10030 ) MPTCP (duration 80ms) [ OK ]
# ns3 MPTCP -> ns4 (dead:beef:3::1:10031) MPTCP (duration 118ms) [ OK ]
# ns4 MPTCP -> ns1 (10.0.1.1:10032 ) MPTCP (duration 58ms) [ OK ]
# ns4 MPTCP -> ns1 (dead:beef:1::1:10033) MPTCP (duration 78ms) [ OK ]
# ns4 MPTCP -> ns2 (10.0.1.2:10034 ) MPTCP (duration 75ms) [ OK ]
# ns4 MPTCP -> ns2 (dead:beef:1::2:10035) MPTCP (duration 89ms) [ OK ]
# ns4 MPTCP -> ns2 (10.0.2.1:10036 ) MPTCP (duration 44ms) [ OK ]
# ns4 MPTCP -> ns2 (dead:beef:2::1:10037) MPTCP (duration 26ms) [ OK ]
# ns4 MPTCP -> ns3 (10.0.2.2:10038 ) MPTCP (duration 38ms) [ OK ]
# ns4 MPTCP -> ns3 (dead:beef:2::2:10039) MPTCP (duration 29ms) [ OK ]
# ns4 MPTCP -> ns3 (10.0.3.2:10040 ) MPTCP (duration 32ms) [ OK ]
# ns4 MPTCP -> ns3 (dead:beef:3::2:10041) MPTCP (duration 48ms) [ OK ]
# Time: 6 seconds
ok 1 selftests: net/mptcp: mptcp_connect.sh
# selftests: net/mptcp: pm_netlink.sh
# defaults addr list [ OK ]
# defaults limits [ OK ]
# simple add/get addr [ OK ]
# dump addrs [FAIL] expected 'id 1 flags 10.0.1.1
# id 2 flags subflow dev lo 10.0.1.2
# id 3 flags signal,backup 10.0.1.3 ' got 'id 1 flags 10.0.1.1
# id 2 flags subflow dev lo 10.0.1.2
# id 3 flags signal,backup 10.0.1.3 '
# simple del addr [ OK ]
# dump addrs after del [FAIL] expected 'id 1 flags 10.0.1.1
# id 3 flags signal,backup 10.0.1.3 ' got 'id 1 flags 10.0.1.1
# id 3 flags signal,backup 10.0.1.3 '
# duplicate addr [ OK ]
# id addr increment [ OK ]
# hard addr limit [ OK ]
# above hard addr limit [ OK ]
# id limit [FAIL] expected 'id 1 flags 10.0.1.1
# id 3 flags signal,backup 10.0.1.3
# id 4 flags signal 10.0.1.4
# id 5 flags signal 10.0.1.5
# id 6 flags signal 10.0.1.6
# id 7 flags signal 10.0.1.7
# id 8 flags signal 10.0.1.8 ' got 'id 1 flags 10.0.1.1
# id 3 flags signal,backup 10.0.1.3
# id 4 flags signal 10.0.1.4
# id 5 flags signal 10.0.1.5
# id 6 flags signal 10.0.1.6
# id 7 flags signal 10.0.1.7
# id 8 flags signal 10.0.1.8 '
# flush addrs [ OK ]
# rcv addrs above hard limit [ OK ]
# subflows above hard limit [ OK ]
# set limits [ OK ]
not ok 2 selftests: net/mptcp: pm_netlink.sh # exit=1
make: Leaving directory '/usr/src/perf_selftests-x86_64-rhel-7.6-eedbc685321b38fea58a14c9fbd258c4b2c2747c/tools/testing/selftests/net/mptcp'
To reproduce:
# build kernel
cd linux
cp config-5.6.0-02086-geedbc685321b3 .config
make HOSTCC=gcc-7 CC=gcc-7 ARCH=x86_64 olddefconfig prepare modules_prepare bzImage
git clone https://github.com/intel/lkp-tests.git
cd lkp-tests
bin/lkp qemu -k <bzImage> job-script # job-script is attached in this email
Thanks,
Rong Chen
2 years, 2 months
[PATCH] selftests:mptcp:pm: rm the right tmp file
by Matthieu Baerts
"$err" is a variable pointing to a temp file. "$out" is not: only used
as a local variable in "check()" and representing the output of a
command line.
Fixes: eedbc685321b (selftests: add PM netlink functional tests)
Signed-off-by: Matthieu Baerts <matthieu.baerts(a)tessares.net>
---
tools/testing/selftests/net/mptcp/pm_netlink.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/selftests/net/mptcp/pm_netlink.sh
index 9172746b6cf0..15f4f46ca3a9 100755
--- a/tools/testing/selftests/net/mptcp/pm_netlink.sh
+++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh
@@ -30,7 +30,7 @@ ret=0
cleanup()
{
- rm -f $out
+ rm -f $err
ip netns del $ns1
}
--
2.25.1
2 years, 2 months
[syzkaller] INFO: task hung in lock_sock_nested
by Christoph Paasch
Hello,
another syzkaller on top of 6fe9a949d3fe with Florian's patch as well.
INFO: task syz-executor.4:22557 blocked for more than 143 seconds.
Not tainted 5.6.0 #64
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
syz-executor.4 D 0 22557 2905 0x00000004
Call Trace:
context_switch kernel/sched/core.c:3380 [inline]
__schedule+0x23c/0x5f0 kernel/sched/core.c:4080
schedule+0x4a/0x100 kernel/sched/core.c:4154
__lock_sock+0x80/0xd0 net/core/sock.c:2424
lock_sock_nested+0x77/0x80 net/core/sock.c:2949
lock_sock include/net/sock.h:1574 [inline]
inet_stream_connect+0x27/0x60 net/ipv4/af_inet.c:718
mptcp_stream_connect+0xad/0x130 net/mptcp/protocol.c:1658
__sys_connect_file net/socket.c:1859 [inline]
__sys_connect+0x140/0x180 net/socket.c:1876
__do_sys_connect net/socket.c:1887 [inline]
__se_sys_connect net/socket.c:1884 [inline]
__x64_sys_connect+0x1e/0x30 net/socket.c:1884
do_syscall_64+0x91/0x2f0 arch/x86/entry/common.c:294
entry_SYSCALL_64_after_hwframe+0x44/0xa9
syzkaller-repro is:
# {Threaded:false Collide:false Repeat:false RepeatTimes:0 Procs:1 Sandbox: Fault:false FaultCall:-1 FaultNth:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false UseTmpDir:false HandleSegv:false Repro:false Trace:false}
r0 = socket$inet_mptcp(0x2, 0x1, 0x106)
bind$inet(r0, &(0x7f00000013c0)={0x2, 0x4e20}, 0x10)
listen(r0, 0x0)
r1 = socket$inet_mptcp(0x2, 0x1, 0x106)
connect$inet(r1, &(0x7f0000000040)={0x2, 0x4e20, @loopback}, 0x4d)
r2 = accept(r0, 0x0, 0x0)
connect$unix(r2, 0x0, 0x0)
I also created a github-issue just for easier tracking of these issues.
https://github.com/multipath-tcp/mptcp_net-next/issues/12
Cheers,
Christoph
2 years, 2 months
[PATCH] mptcp: fix tcp fallback crash
by Florian Westphal
Christoph Paasch reports following crash:
general protection fault, probably for non-canonical address 0xfe85e717fe88a633: 0000 [#1] PREEMPT SMP
CPU: 0 PID: 2874 Comm: syz-executor072 Not tainted 5.6.0-rc5 #62
RIP: 0010:__pv_queued_spin_lock_slowpath+0x1b3/0x2f0 kernel/locking/qspinlock.c:471
[..]
queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:50 [inline]
do_raw_spin_lock include/linux/spinlock.h:181 [inline]
spin_lock_bh include/linux/spinlock.h:343 [inline]
__mptcp_flush_join_list+0x44/0xb0 net/mptcp/protocol.c:278
mptcp_shutdown+0xb3/0x230 net/mptcp/protocol.c:1882
[..]
Problem is that mptcp_shutdown() socket isn't an mptcp socket,
its a plain tcp_sk. Thus, trying to access mptcp_sk specific
members accesses garbage.
Root cause is that accept() returns a fallback (tcp) socket,
not an mptcp one. There is code in getpeername to detect this
and override the sockets stream_ops. But this will only run when
accept() caller provided a sockaddr struct. "accept(fd, NULL, 0)"
will therefore result in mptcp stream ops, with sock->sk being a
tcp_sk. Update the existing fallback handling to detect this as well.
Moreover, mptcp_shutdown did not have fallback handling, and
mptcp_poll did it too late so add that there as well.
Reported-by: Christoph Paasch <cpaasch(a)apple.com>
Signed-off-by: Florian Westphal <fw(a)strlen.de>
---
net/mptcp/protocol.c | 50 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 46 insertions(+), 4 deletions(-)
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index a3523bc0739b..72f3176dc924 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -57,10 +57,43 @@ static bool __mptcp_needs_tcp_fallback(const struct mptcp_sock *msk)
return msk->first && !sk_is_mptcp(msk->first);
}
+static struct socket *mptcp_is_tcpsk(struct sock *sk)
+{
+ struct socket *sock = sk->sk_socket;
+
+ if (sock->sk != sk)
+ return NULL;
+
+ if (unlikely(sk->sk_prot == &tcp_prot)) {
+ /* we are being invoked after mptcp_accept() has
+ * accepted a non-mp-capable flow: sk is a tcp_sk,
+ * not an mptcp one.
+ *
+ * Hand the socket over to tcp so all further socket ops
+ * bypass mptcp.
+ */
+ sock->ops = &inet_stream_ops;
+ return sock;
+#if IS_ENABLED(CONFIG_MPTCP_IPV6)
+ } else if (unlikely(sk->sk_prot == &tcpv6_prot)) {
+ sock->ops = &inet6_stream_ops;
+ return sock;
+#endif
+ }
+
+ return NULL;
+}
+
static struct socket *__mptcp_tcp_fallback(struct mptcp_sock *msk)
{
+ struct socket *sock;
+
sock_owned_by_me((const struct sock *)msk);
+ sock = mptcp_is_tcpsk((struct sock *)msk);
+ if (unlikely(sock))
+ return sock;
+
if (likely(!__mptcp_needs_tcp_fallback(msk)))
return NULL;
@@ -84,6 +117,10 @@ static struct socket *__mptcp_socket_create(struct mptcp_sock *msk, int state)
struct socket *ssock;
int err;
+ ssock = __mptcp_tcp_fallback(msk);
+ if (unlikely(ssock))
+ return ssock;
+
ssock = __mptcp_nmpc_socket(msk);
if (ssock)
goto set_state;
@@ -1820,7 +1857,9 @@ static __poll_t mptcp_poll(struct file *file, struct socket *sock,
msk = mptcp_sk(sk);
lock_sock(sk);
- ssock = __mptcp_nmpc_socket(msk);
+ ssock = __mptcp_tcp_fallback(msk);
+ if (!ssock)
+ ssock = __mptcp_nmpc_socket(msk);
if (ssock) {
mask = ssock->ops->poll(file, ssock, wait);
release_sock(sk);
@@ -1830,9 +1869,6 @@ static __poll_t mptcp_poll(struct file *file, struct socket *sock,
release_sock(sk);
sock_poll_wait(file, sock, wait);
lock_sock(sk);
- ssock = __mptcp_tcp_fallback(msk);
- if (unlikely(ssock))
- return ssock->ops->poll(file, ssock, NULL);
if (test_bit(MPTCP_DATA_READY, &msk->flags))
mask = EPOLLIN | EPOLLRDNORM;
@@ -1851,11 +1887,17 @@ static int mptcp_shutdown(struct socket *sock, int how)
{
struct mptcp_sock *msk = mptcp_sk(sock->sk);
struct mptcp_subflow_context *subflow;
+ struct socket *ssock;
int ret = 0;
pr_debug("sk=%p, how=%d", msk, how);
lock_sock(sock->sk);
+ ssock = __mptcp_tcp_fallback(msk);
+ if (ssock) {
+ release_sock(sock->sk);
+ return inet_shutdown(ssock, how);
+ }
if (how == SHUT_WR || how == SHUT_RDWR)
inet_sk_state_store(sock->sk, TCP_FIN_WAIT1);
--
2.24.1
2 years, 2 months