<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/net/ipvlan, branch v6.8.4</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v6.8.4</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v6.8.4'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2024-02-09T22:12:02Z</updated>
<entry>
<title>net: fill in MODULE_DESCRIPTION()s for ipvtap</title>
<updated>2024-02-09T22:12:02Z</updated>
<author>
<name>Breno Leitao</name>
<email>leitao@debian.org</email>
</author>
<published>2024-02-08T16:42:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=830bd88cc151412f467423c3db0b29fe623c6487'/>
<id>urn:sha1:830bd88cc151412f467423c3db0b29fe623c6487</id>
<content type='text'>
W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
Add descriptions to the IP-VLAN based tap driver.

Signed-off-by: Breno Leitao &lt;leitao@debian.org&gt;
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Link: https://lore.kernel.org/r/20240208164244.3818498-9-leitao@debian.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ipvlan: Remove usage of the deprecated ida_simple_xx() API</title>
<updated>2024-01-07T22:32:48Z</updated>
<author>
<name>Christophe JAILLET</name>
<email>christophe.jaillet@wanadoo.fr</email>
</author>
<published>2024-01-05T09:27:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3ee29a4474e3e433268068a6e6337d4f635b79b7'/>
<id>urn:sha1:3ee29a4474e3e433268068a6e6337d4f635b79b7</id>
<content type='text'>
ida_alloc() and ida_free() should be preferred to the deprecated
ida_simple_get() and ida_simple_remove().

This is less verbose.

Note that the upper bound of ida_alloc_range() is inclusive while the one
of ida_simple_get() was exclusive. So calls have been updated accordingly.

Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: Fix a typo in a comment</title>
<updated>2024-01-07T22:32:48Z</updated>
<author>
<name>Christophe JAILLET</name>
<email>christophe.jaillet@wanadoo.fr</email>
</author>
<published>2024-01-05T09:27:08Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e900274f27c37de76279e34e342847d7b5756bec'/>
<id>urn:sha1:e900274f27c37de76279e34e342847d7b5756bec</id>
<content type='text'>
s/diffentiate/differentiate/

Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: implement .parse_protocol hook function in ipvlan_header_ops</title>
<updated>2023-12-05T12:42:08Z</updated>
<author>
<name>Zhengchao Shao</name>
<email>shaozhengchao@huawei.com</email>
</author>
<published>2023-12-02T13:04:38Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=fb70136ded2e1ea3cde27d0393cfadab4240a141'/>
<id>urn:sha1:fb70136ded2e1ea3cde27d0393cfadab4240a141</id>
<content type='text'>
The .parse_protocol hook function in the ipvlan_header_ops structure is
not implemented. As a result, when the AF_PACKET family is used to send
packets, skb-&gt;protocol will be set to 0.
Ipvlan is a device of type ARPHRD_ETHER (ether_setup). Therefore, use
eth_header_parse_protocol function to obtain the protocol.

Signed-off-by: Zhengchao Shao &lt;shaozhengchao@huawei.com&gt;
Reviewed-by: Willem de Bruijn &lt;willemb@google.com&gt;
Link: https://lore.kernel.org/r/20231202130438.2266343-1-shaozhengchao@huawei.com
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>ipvlan: add ipvlan_route_v6_outbound() helper</title>
<updated>2023-11-10T10:59:22Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2023-11-09T15:22:41Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=18f039428c7df183b09c69ebf10ffd4e521035d2'/>
<id>urn:sha1:18f039428c7df183b09c69ebf10ffd4e521035d2</id>
<content type='text'>
Inspired by syzbot reports using a stack of multiple ipvlan devices.

Reduce stack size needed in ipvlan_process_v6_outbound() by moving
the flowi6 struct used for the route lookup in an non inlined
helper. ipvlan_route_v6_outbound() needs 120 bytes on the stack,
immediately reclaimed.

Also make sure ipvlan_process_v4_outbound() is not inlined.

We might also have to lower MAX_NEST_DEV, because only syzbot uses
setups with more than four stacked devices.

BUG: TASK stack guard page was hit at ffffc9000e803ff8 (stack is ffffc9000e804000..ffffc9000e808000)
stack guard page: 0000 [#1] SMP KASAN
CPU: 0 PID: 13442 Comm: syz-executor.4 Not tainted 6.1.52-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/09/2023
RIP: 0010:kasan_check_range+0x4/0x2a0 mm/kasan/generic.c:188
Code: 48 01 c6 48 89 c7 e8 db 4e c1 03 31 c0 5d c3 cc 0f 0b eb 02 0f 0b b8 ea ff ff ff 5d c3 cc 00 00 cc cc 00 00 cc cc 55 48 89 e5 &lt;41&gt; 57 41 56 41 55 41 54 53 b0 01 48 85 f6 0f 84 a4 01 00 00 48 89
RSP: 0018:ffffc9000e804000 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff817e5bf2
RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffff887c6568
RBP: ffffc9000e804000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: dffffc0000000001 R12: 1ffff92001d0080c
R13: dffffc0000000000 R14: ffffffff87e6b100 R15: 0000000000000000
FS: 00007fd0c55826c0(0000) GS:ffff8881f6800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffc9000e803ff8 CR3: 0000000170ef7000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
&lt;#DF&gt;
&lt;/#DF&gt;
&lt;TASK&gt;
[&lt;ffffffff81f281d1&gt;] __kasan_check_read+0x11/0x20 mm/kasan/shadow.c:31
[&lt;ffffffff817e5bf2&gt;] instrument_atomic_read include/linux/instrumented.h:72 [inline]
[&lt;ffffffff817e5bf2&gt;] _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]
[&lt;ffffffff817e5bf2&gt;] cpumask_test_cpu include/linux/cpumask.h:506 [inline]
[&lt;ffffffff817e5bf2&gt;] cpu_online include/linux/cpumask.h:1092 [inline]
[&lt;ffffffff817e5bf2&gt;] trace_lock_acquire include/trace/events/lock.h:24 [inline]
[&lt;ffffffff817e5bf2&gt;] lock_acquire+0xe2/0x590 kernel/locking/lockdep.c:5632
[&lt;ffffffff8563221e&gt;] rcu_lock_acquire+0x2e/0x40 include/linux/rcupdate.h:306
[&lt;ffffffff8561464d&gt;] rcu_read_lock include/linux/rcupdate.h:747 [inline]
[&lt;ffffffff8561464d&gt;] ip6_pol_route+0x15d/0x1440 net/ipv6/route.c:2221
[&lt;ffffffff85618120&gt;] ip6_pol_route_output+0x50/0x80 net/ipv6/route.c:2606
[&lt;ffffffff856f65b5&gt;] pol_lookup_func include/net/ip6_fib.h:584 [inline]
[&lt;ffffffff856f65b5&gt;] fib6_rule_lookup+0x265/0x620 net/ipv6/fib6_rules.c:116
[&lt;ffffffff85618009&gt;] ip6_route_output_flags_noref+0x2d9/0x3a0 net/ipv6/route.c:2638
[&lt;ffffffff8561821a&gt;] ip6_route_output_flags+0xca/0x340 net/ipv6/route.c:2651
[&lt;ffffffff838bd5a3&gt;] ip6_route_output include/net/ip6_route.h:100 [inline]
[&lt;ffffffff838bd5a3&gt;] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:473 [inline]
[&lt;ffffffff838bd5a3&gt;] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[&lt;ffffffff838bd5a3&gt;] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[&lt;ffffffff838bd5a3&gt;] ipvlan_queue_xmit+0xc33/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[&lt;ffffffff838c2909&gt;] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[&lt;ffffffff84d03900&gt;] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[&lt;ffffffff84d03900&gt;] xmit_one net/core/dev.c:3644 [inline]
[&lt;ffffffff84d03900&gt;] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[&lt;ffffffff84d080e2&gt;] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[&lt;ffffffff855ce4cd&gt;] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_hh_output include/net/neighbour.h:529 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_output include/net/neighbour.h:543 [inline]
[&lt;ffffffff855ce4cd&gt;] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[&lt;ffffffff855b8616&gt;] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[&lt;ffffffff855b8616&gt;] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[&lt;ffffffff855b7e3c&gt;] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[&lt;ffffffff855b7e3c&gt;] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[&lt;ffffffff8575d27f&gt;] dst_output include/net/dst.h:444 [inline]
[&lt;ffffffff8575d27f&gt;] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[&lt;ffffffff838bdae4&gt;] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[&lt;ffffffff838c2909&gt;] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[&lt;ffffffff84d03900&gt;] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[&lt;ffffffff84d03900&gt;] xmit_one net/core/dev.c:3644 [inline]
[&lt;ffffffff84d03900&gt;] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[&lt;ffffffff84d080e2&gt;] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[&lt;ffffffff855ce4cd&gt;] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_hh_output include/net/neighbour.h:529 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_output include/net/neighbour.h:543 [inline]
[&lt;ffffffff855ce4cd&gt;] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[&lt;ffffffff855b8616&gt;] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[&lt;ffffffff855b8616&gt;] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[&lt;ffffffff855b7e3c&gt;] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[&lt;ffffffff855b7e3c&gt;] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[&lt;ffffffff8575d27f&gt;] dst_output include/net/dst.h:444 [inline]
[&lt;ffffffff8575d27f&gt;] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[&lt;ffffffff838bdae4&gt;] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[&lt;ffffffff838c2909&gt;] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[&lt;ffffffff84d03900&gt;] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[&lt;ffffffff84d03900&gt;] xmit_one net/core/dev.c:3644 [inline]
[&lt;ffffffff84d03900&gt;] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[&lt;ffffffff84d080e2&gt;] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[&lt;ffffffff855ce4cd&gt;] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_hh_output include/net/neighbour.h:529 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_output include/net/neighbour.h:543 [inline]
[&lt;ffffffff855ce4cd&gt;] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[&lt;ffffffff855b8616&gt;] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[&lt;ffffffff855b8616&gt;] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[&lt;ffffffff855b7e3c&gt;] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[&lt;ffffffff855b7e3c&gt;] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[&lt;ffffffff8575d27f&gt;] dst_output include/net/dst.h:444 [inline]
[&lt;ffffffff8575d27f&gt;] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[&lt;ffffffff838bdae4&gt;] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[&lt;ffffffff838c2909&gt;] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[&lt;ffffffff84d03900&gt;] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[&lt;ffffffff84d03900&gt;] xmit_one net/core/dev.c:3644 [inline]
[&lt;ffffffff84d03900&gt;] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[&lt;ffffffff84d080e2&gt;] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[&lt;ffffffff855ce4cd&gt;] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_hh_output include/net/neighbour.h:529 [inline]
[&lt;ffffffff855ce4cd&gt;] neigh_output include/net/neighbour.h:543 [inline]
[&lt;ffffffff855ce4cd&gt;] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[&lt;ffffffff855b8616&gt;] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[&lt;ffffffff855b8616&gt;] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[&lt;ffffffff855b7e3c&gt;] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[&lt;ffffffff855b7e3c&gt;] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[&lt;ffffffff8575d27f&gt;] dst_output include/net/dst.h:444 [inline]
[&lt;ffffffff8575d27f&gt;] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[&lt;ffffffff838bdae4&gt;] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[&lt;ffffffff838bdae4&gt;] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[&lt;ffffffff838c2909&gt;] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[&lt;ffffffff84d03900&gt;] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[&lt;ffffffff84d03900&gt;] xmit_one net/core/dev.c:3644 [inline]
[&lt;ffffffff84d03900&gt;] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[&lt;ffffffff84d080e2&gt;] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[&lt;ffffffff84d4a65e&gt;] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[&lt;ffffffff84d4a65e&gt;] neigh_resolve_output+0x64e/0x750 net/core/neighbour.c:1560
[&lt;ffffffff855ce503&gt;] neigh_output include/net/neighbour.h:545 [inline]
[&lt;ffffffff855ce503&gt;] ip6_finish_output2+0x1643/0x1ae0 net/ipv6/ip6_output.c:139
[&lt;ffffffff855b8616&gt;] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[&lt;ffffffff855b8616&gt;] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[&lt;ffffffff855b7e3c&gt;] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[&lt;ffffffff855b7e3c&gt;] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[&lt;ffffffff855b9ce4&gt;] dst_output include/net/dst.h:444 [inline]
[&lt;ffffffff855b9ce4&gt;] NF_HOOK include/linux/netfilter.h:309 [inline]
[&lt;ffffffff855b9ce4&gt;] ip6_xmit+0x11a4/0x1b20 net/ipv6/ip6_output.c:352
[&lt;ffffffff8597984e&gt;] sctp_v6_xmit+0x9ae/0x1230 net/sctp/ipv6.c:250
[&lt;ffffffff8594623e&gt;] sctp_packet_transmit+0x25de/0x2bc0 net/sctp/output.c:653
[&lt;ffffffff858f5142&gt;] sctp_packet_singleton+0x202/0x310 net/sctp/outqueue.c:783
[&lt;ffffffff858ea411&gt;] sctp_outq_flush_ctrl net/sctp/outqueue.c:914 [inline]
[&lt;ffffffff858ea411&gt;] sctp_outq_flush+0x661/0x3d40 net/sctp/outqueue.c:1212
[&lt;ffffffff858f02f9&gt;] sctp_outq_uncork+0x79/0xb0 net/sctp/outqueue.c:764
[&lt;ffffffff8589f060&gt;] sctp_side_effects net/sctp/sm_sideeffect.c:1199 [inline]
[&lt;ffffffff8589f060&gt;] sctp_do_sm+0x55c0/0x5c30 net/sctp/sm_sideeffect.c:1170
[&lt;ffffffff85941567&gt;] sctp_primitive_ASSOCIATE+0x97/0xc0 net/sctp/primitive.c:73
[&lt;ffffffff859408b2&gt;] sctp_sendmsg_to_asoc+0xf62/0x17b0 net/sctp/socket.c:1839
[&lt;ffffffff85910b5e&gt;] sctp_sendmsg+0x212e/0x33b0 net/sctp/socket.c:2029
[&lt;ffffffff8544d559&gt;] inet_sendmsg+0x149/0x310 net/ipv4/af_inet.c:849
[&lt;ffffffff84c6c4d2&gt;] sock_sendmsg_nosec net/socket.c:716 [inline]
[&lt;ffffffff84c6c4d2&gt;] sock_sendmsg net/socket.c:736 [inline]
[&lt;ffffffff84c6c4d2&gt;] ____sys_sendmsg+0x572/0x8c0 net/socket.c:2504
[&lt;ffffffff84c6ca91&gt;] ___sys_sendmsg net/socket.c:2558 [inline]
[&lt;ffffffff84c6ca91&gt;] __sys_sendmsg+0x271/0x360 net/socket.c:2587
[&lt;ffffffff84c6cbff&gt;] __do_sys_sendmsg net/socket.c:2596 [inline]
[&lt;ffffffff84c6cbff&gt;] __se_sys_sendmsg net/socket.c:2594 [inline]
[&lt;ffffffff84c6cbff&gt;] __x64_sys_sendmsg+0x7f/0x90 net/socket.c:2594
[&lt;ffffffff85b32553&gt;] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[&lt;ffffffff85b32553&gt;] do_syscall_64+0x53/0x80 arch/x86/entry/common.c:84
[&lt;ffffffff85c00087&gt;] entry_SYSCALL_64_after_hwframe+0x63/0xcd

Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Mahesh Bandewar &lt;maheshb@google.com&gt;
Cc: Willem de Bruijn &lt;willemb@google.com&gt;
Reviewed-by: Willem de Bruijn &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: properly track tx_errors</title>
<updated>2023-10-27T21:49:09Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2023-10-26T13:14:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ff672b9ffeb3f82135488ac16c5c5eb4b992999b'/>
<id>urn:sha1:ff672b9ffeb3f82135488ac16c5c5eb4b992999b</id>
<content type='text'>
Both ipvlan_process_v4_outbound() and ipvlan_process_v6_outbound()
increment dev-&gt;stats.tx_errors in case of errors.

Unfortunately there are two issues :

1) ipvlan_get_stats64() does not propagate dev-&gt;stats.tx_errors to user.

2) Increments are not atomic. KCSAN would complain eventually.

Use DEV_STATS_INC() to not miss an update, and change ipvlan_get_stats64()
to copy the value back to user.

Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Mahesh Bandewar &lt;maheshb@google.com&gt;
Link: https://lore.kernel.org/r/20231026131446.3933175-1-edumazet@google.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ipvlan: Fix a reference count leak warning in ipvlan_ns_exit()</title>
<updated>2023-08-19T02:38:44Z</updated>
<author>
<name>Lu Wei</name>
<email>luwei32@huawei.com</email>
</author>
<published>2023-08-17T14:54:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=043d5f68d0ccdda91029b4b6dce7eeffdcfad281'/>
<id>urn:sha1:043d5f68d0ccdda91029b4b6dce7eeffdcfad281</id>
<content type='text'>
There are two network devices(veth1 and veth3) in ns1, and ipvlan1 with
L3S mode and ipvlan2 with L2 mode are created based on them as
figure (1). In this case, ipvlan_register_nf_hook() will be called to
register nf hook which is needed by ipvlans in L3S mode in ns1 and value
of ipvl_nf_hook_refcnt is set to 1.

(1)
           ns1                           ns2
      ------------                  ------------

   veth1--ipvlan1 (L3S)

   veth3--ipvlan2 (L2)

(2)
           ns1                           ns2
      ------------                  ------------

   veth1--ipvlan1 (L3S)

         ipvlan2 (L2)                  veth3
     |                                  |
     |-------&gt;--------&gt;---------&gt;--------
                    migrate

When veth3 migrates from ns1 to ns2 as figure (2), veth3 will register in
ns2 and calls call_netdevice_notifiers with NETDEV_REGISTER event:

dev_change_net_namespace
    call_netdevice_notifiers
        ipvlan_device_event
            ipvlan_migrate_l3s_hook
                ipvlan_register_nf_hook(newnet)      (I)
                ipvlan_unregister_nf_hook(oldnet)    (II)

In function ipvlan_migrate_l3s_hook(), ipvl_nf_hook_refcnt in ns1 is not 0
since veth1 with ipvlan1 still in ns1, (I) and (II) will be called to
register nf_hook in ns2 and unregister nf_hook in ns1. As a result,
ipvl_nf_hook_refcnt in ns1 is decreased incorrectly and this in ns2
is increased incorrectly. When the second net namespace is removed, a
reference count leak warning in ipvlan_ns_exit() will be triggered.

This patch add a check before ipvlan_migrate_l3s_hook() is called. The
warning can be triggered as follows:

$ ip netns add ns1
$ ip netns add ns2
$ ip netns exec ns1 ip link add veth1 type veth peer name veth2
$ ip netns exec ns1 ip link add veth3 type veth peer name veth4
$ ip netns exec ns1 ip link add ipv1 link veth1 type ipvlan mode l3s
$ ip netns exec ns1 ip link add ipv2 link veth3 type ipvlan mode l2
$ ip netns exec ns1 ip link set veth3 netns ns2
$ ip net del ns2

Fixes: 3133822f5ac1 ("ipvlan: use pernet operations and restrict l3s hooks to master netns")
Signed-off-by: Lu Wei &lt;luwei32@huawei.com&gt;
Reviewed-by: Florian Westphal &lt;fw@strlen.de&gt;
Link: https://lore.kernel.org/r/20230817145449.141827-1-luwei32@huawei.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
<updated>2023-06-27T16:45:22Z</updated>
<author>
<name>Jakub Kicinski</name>
<email>kuba@kernel.org</email>
</author>
<published>2023-06-27T16:45:22Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3674fbf0451df0395f9fa18df3122927006a3829'/>
<id>urn:sha1:3674fbf0451df0395f9fa18df3122927006a3829</id>
<content type='text'>
Merge in late fixes to prepare for the 6.5 net-next PR.

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ipvlan: Fix return value of ipvlan_queue_xmit()</title>
<updated>2023-06-27T09:44:46Z</updated>
<author>
<name>Cambda Zhu</name>
<email>cambda@linux.alibaba.com</email>
</author>
<published>2023-06-26T09:33:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8a9922e7be6d042fa00f894c376473b17a162b66'/>
<id>urn:sha1:8a9922e7be6d042fa00f894c376473b17a162b66</id>
<content type='text'>
ipvlan_queue_xmit() should return NET_XMIT_XXX, but
ipvlan_xmit_mode_l2/l3() returns rx_handler_result_t or NET_RX_XXX
in some cases. ipvlan_rcv_frame() will only return RX_HANDLER_CONSUMED
in ipvlan_xmit_mode_l2/l3() because 'local' is true. It's equal to
NET_XMIT_SUCCESS. But dev_forward_skb() can return NET_RX_SUCCESS or
NET_RX_DROP, and returning NET_RX_DROP(NET_XMIT_DROP) will increase
both ipvlan and ipvlan-&gt;phy_dev drops counter.

The skb to forward can be treated as xmitted successfully. This patch
makes ipvlan_queue_xmit() return NET_XMIT_SUCCESS for forward skb.

Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
Signed-off-by: Cambda Zhu &lt;cambda@linux.alibaba.com&gt;
Link: https://lore.kernel.org/r/20230626093347.7492-1-cambda@linux.alibaba.com
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
<updated>2023-06-16T05:19:41Z</updated>
<author>
<name>Jakub Kicinski</name>
<email>kuba@kernel.org</email>
</author>
<published>2023-06-16T05:18:58Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=173780ff18a93298ca84224cc79df69f9cc198ce'/>
<id>urn:sha1:173780ff18a93298ca84224cc79df69f9cc198ce</id>
<content type='text'>
Cross-merge networking fixes after downstream PR.

Conflicts:

include/linux/mlx5/driver.h
  617f5db1a626 ("RDMA/mlx5: Fix affinity assignment")
  dc13180824b7 ("net/mlx5: Enable devlink port for embedded cpu VF vports")
https://lore.kernel.org/all/20230613125939.595e50b8@canb.auug.org.au/

tools/testing/selftests/net/mptcp/mptcp_join.sh
  47867f0a7e83 ("selftests: mptcp: join: skip check if MIB counter not supported")
  425ba803124b ("selftests: mptcp: join: support RM_ADDR for used endpoints or not")
  45b1a1227a7a ("mptcp: introduces more address related mibs")
  0639fa230a21 ("selftests: mptcp: add explicit check for new mibs")
https://lore.kernel.org/netdev/20230609-upstream-net-20230610-mptcp-selftests-support-old-kernels-part-3-v1-0-2896fe2ee8a3@tessares.net/

No adjacent changes.

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
</feed>
