<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/ipvlan, branch v5.13-rc3</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ipvlan: remove h from printk format specifier</title>
<updated>2021-01-29T01:47:33+00:00</updated>
<author>
<name>Tom Rix</name>
<email>trix@redhat.com</email>
</author>
<published>2021-01-24T19:08:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d7a177ea8fe6fc6fe146639d63a45090de196498'/>
<id>d7a177ea8fe6fc6fe146639d63a45090de196498</id>
<content type='text'>
This change fixes the checkpatch warning described in this commit
commit cbacb5ab0aa0 ("docs: printk-formats: Stop encouraging use of
  unnecessary %h[xudi] and %hh[xudi]")

Standard integer promotion is already done and %hx and %hhx is useless
so do not encourage the use of %hh[xudi] or %h[xudi].

Cleanup output to use __func__ over explicit function strings.

Signed-off-by: Tom Rix &lt;trix@redhat.com&gt;
Link: https://lore.kernel.org/r/20210124190804.1964580-1-trix@redhat.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change fixes the checkpatch warning described in this commit
commit cbacb5ab0aa0 ("docs: printk-formats: Stop encouraging use of
  unnecessary %h[xudi] and %hh[xudi]")

Standard integer promotion is already done and %hx and %hhx is useless
so do not encourage the use of %hh[xudi] or %h[xudi].

Cleanup output to use __func__ over explicit function strings.

Signed-off-by: Tom Rix &lt;trix@redhat.com&gt;
Link: https://lore.kernel.org/r/20210124190804.1964580-1-trix@redhat.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: don't include ethtool.h from netdevice.h</title>
<updated>2020-11-24T01:27:04+00:00</updated>
<author>
<name>Jakub Kicinski</name>
<email>kuba@kernel.org</email>
</author>
<published>2020-11-20T22:50:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cc69837fcaf467426ca19e5790085c26146a2300'/>
<id>cc69837fcaf467426ca19e5790085c26146a2300</id>
<content type='text'>
linux/netdevice.h is included in very many places, touching any
of its dependecies causes large incremental builds.

Drop the linux/ethtool.h include, linux/netdevice.h just needs
a forward declaration of struct ethtool_ops.

Fix all the places which made use of this implicit include.

Acked-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Acked-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Reviewed-by: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Link: https://lore.kernel.org/r/20201120225052.1427503-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
linux/netdevice.h is included in very many places, touching any
of its dependecies causes large incremental builds.

Drop the linux/ethtool.h include, linux/netdevice.h just needs
a forward declaration of struct ethtool_ops.

Fix all the places which made use of this implicit include.

Acked-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Acked-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Reviewed-by: Jesse Brandeburg &lt;jesse.brandeburg@intel.com&gt;
Link: https://lore.kernel.org/r/20201120225052.1427503-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipvlan: advertise link netns via netlink</title>
<updated>2020-08-24T22:53:33+00:00</updated>
<author>
<name>Taehee Yoo</name>
<email>ap420073@gmail.com</email>
</author>
<published>2020-08-21T17:47:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0bad834ca7bf9999ed9841f2bf9f5f07fbe02136'/>
<id>0bad834ca7bf9999ed9841f2bf9f5f07fbe02136</id>
<content type='text'>
Assign rtnl_link_ops-&gt;get_link_net() callback so that IFLA_LINK_NETNSID is
added to rtnetlink messages.

Test commands:
    ip netns add nst
    ip link add dummy0 type dummy
    ip link add ipvlan0 link dummy0 type ipvlan
    ip link set ipvlan0 netns nst
    ip netns exec nst ip link show ipvlan0

Result:
    ---Before---
    6: ipvlan0@if5: &lt;BROADCAST,MULTICAST&gt; ...
        link/ether 82:3a:78:ab:60:50 brd ff:ff:ff:ff:ff:ff

    ---After---
    12: ipvlan0@if11: &lt;BROADCAST,MULTICAST&gt; ...
        link/ether 42:b1:ad:57:4e:27 brd ff:ff:ff:ff:ff:ff link-netnsid 0
                                                           ~~~~~~~~~~~~~~

Signed-off-by: Taehee Yoo &lt;ap420073@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Assign rtnl_link_ops-&gt;get_link_net() callback so that IFLA_LINK_NETNSID is
added to rtnetlink messages.

Test commands:
    ip netns add nst
    ip link add dummy0 type dummy
    ip link add ipvlan0 link dummy0 type ipvlan
    ip link set ipvlan0 netns nst
    ip netns exec nst ip link show ipvlan0

Result:
    ---Before---
    6: ipvlan0@if5: &lt;BROADCAST,MULTICAST&gt; ...
        link/ether 82:3a:78:ab:60:50 brd ff:ff:ff:ff:ff:ff

    ---After---
    12: ipvlan0@if11: &lt;BROADCAST,MULTICAST&gt; ...
        link/ether 42:b1:ad:57:4e:27 brd ff:ff:ff:ff:ff:ff link-netnsid 0
                                                           ~~~~~~~~~~~~~~

Signed-off-by: Taehee Yoo &lt;ap420073@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipvlan: fix device features</title>
<updated>2020-08-16T22:15:00+00:00</updated>
<author>
<name>Mahesh Bandewar</name>
<email>maheshb@google.com</email>
</author>
<published>2020-08-15T05:53:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d0f5c7076e01fef6fcb86988d9508bf3ce258bd4'/>
<id>d0f5c7076e01fef6fcb86988d9508bf3ce258bd4</id>
<content type='text'>
Processing NETDEV_FEAT_CHANGE causes IPvlan links to lose
NETIF_F_LLTX feature because of the incorrect handling of
features in ipvlan_fix_features().

--before--
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: on [fixed]
lpaa10:~# ethtool -K ipvl0 tso off
Cannot change tcp-segmentation-offload
Actual changes:
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: off [fixed]
lpaa10:~#

--after--
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: on [fixed]
lpaa10:~# ethtool -K ipvl0 tso off
Cannot change tcp-segmentation-offload
Could not change any device features
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: on [fixed]
lpaa10:~#

Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Cc: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Processing NETDEV_FEAT_CHANGE causes IPvlan links to lose
NETIF_F_LLTX feature because of the incorrect handling of
features in ipvlan_fix_features().

--before--
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: on [fixed]
lpaa10:~# ethtool -K ipvl0 tso off
Cannot change tcp-segmentation-offload
Actual changes:
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: off [fixed]
lpaa10:~#

--after--
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: on [fixed]
lpaa10:~# ethtool -K ipvl0 tso off
Cannot change tcp-segmentation-offload
Could not change any device features
lpaa10:~# ethtool -k ipvl0 | grep tx-lockless
tx-lockless: on [fixed]
lpaa10:~#

Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Cc: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: partially revert dynamic lockdep key changes</title>
<updated>2020-05-04T19:05:56+00:00</updated>
<author>
<name>Cong Wang</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2020-05-03T05:22:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1a33e10e4a95cb109ff1145098175df3113313ef'/>
<id>1a33e10e4a95cb109ff1145098175df3113313ef</id>
<content type='text'>
This patch reverts the folowing commits:

commit 064ff66e2bef84f1153087612032b5b9eab005bd
"bonding: add missing netdev_update_lockdep_key()"

commit 53d374979ef147ab51f5d632dfe20b14aebeccd0
"net: avoid updating qdisc_xmit_lock_key in netdev_update_lockdep_key()"

commit 1f26c0d3d24125992ab0026b0dab16c08df947c7
"net: fix kernel-doc warning in &lt;linux/netdevice.h&gt;"

commit ab92d68fc22f9afab480153bd82a20f6e2533769
"net: core: add generic lockdep keys"

but keeps the addr_list_lock_key because we still lock
addr_list_lock nestedly on stack devices, unlikely xmit_lock
this is safe because we don't take addr_list_lock on any fast
path.

Reported-and-tested-by: syzbot+aaa6fa4949cc5d9b7b25@syzkaller.appspotmail.com
Cc: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Cc: Taehee Yoo &lt;ap420073@gmail.com&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Acked-by: Taehee Yoo &lt;ap420073@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch reverts the folowing commits:

commit 064ff66e2bef84f1153087612032b5b9eab005bd
"bonding: add missing netdev_update_lockdep_key()"

commit 53d374979ef147ab51f5d632dfe20b14aebeccd0
"net: avoid updating qdisc_xmit_lock_key in netdev_update_lockdep_key()"

commit 1f26c0d3d24125992ab0026b0dab16c08df947c7
"net: fix kernel-doc warning in &lt;linux/netdevice.h&gt;"

commit ab92d68fc22f9afab480153bd82a20f6e2533769
"net: core: add generic lockdep keys"

but keeps the addr_list_lock_key because we still lock
addr_list_lock nestedly on stack devices, unlikely xmit_lock
this is safe because we don't take addr_list_lock on any fast
path.

Reported-and-tested-by: syzbot+aaa6fa4949cc5d9b7b25@syzkaller.appspotmail.com
Cc: Dmitry Vyukov &lt;dvyukov@google.com&gt;
Cc: Taehee Yoo &lt;ap420073@gmail.com&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Acked-by: Taehee Yoo &lt;ap420073@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipvlan: do not use cond_resched_rcu() in ipvlan_process_multicast()</title>
<updated>2020-03-10T01:32:03+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2020-03-10T01:22:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=afe207d80a61e4d6e7cfa0611a4af46d0ba95628'/>
<id>afe207d80a61e4d6e7cfa0611a4af46d0ba95628</id>
<content type='text'>
Commit e18b353f102e ("ipvlan: add cond_resched_rcu() while
processing muticast backlog") added a cond_resched_rcu() in a loop
using rcu protection to iterate over slaves.

This is breaking rcu rules, so lets instead use cond_resched()
at a point we can reschedule

Fixes: e18b353f102e ("ipvlan: add cond_resched_rcu() while processing muticast backlog")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit e18b353f102e ("ipvlan: add cond_resched_rcu() while
processing muticast backlog") added a cond_resched_rcu() in a loop
using rcu protection to iterate over slaves.

This is breaking rcu rules, so lets instead use cond_resched()
at a point we can reschedule

Fixes: e18b353f102e ("ipvlan: add cond_resched_rcu() while processing muticast backlog")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipvlan: add cond_resched_rcu() while processing muticast backlog</title>
<updated>2020-03-10T01:00:58+00:00</updated>
<author>
<name>Mahesh Bandewar</name>
<email>maheshb@google.com</email>
</author>
<published>2020-03-09T22:57:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e18b353f102e371580f3f01dd47567a25acc3c1d'/>
<id>e18b353f102e371580f3f01dd47567a25acc3c1d</id>
<content type='text'>
If there are substantial number of slaves created as simulated by
Syzbot, the backlog processing could take much longer and result
into the issue found in the Syzbot report.

INFO: rcu_sched detected stalls on CPUs/tasks:
        (detected by 1, t=10502 jiffies, g=5049, c=5048, q=752)
All QSes seen, last rcu_sched kthread activity 10502 (4294965563-4294955061), jiffies_till_next_fqs=1, root -&gt;qsmask 0x0
syz-executor.1  R  running task on cpu   1  10984 11210   3866 0x30020008 179034491270
Call Trace:
 &lt;IRQ&gt;
 [&lt;ffffffff81497163&gt;] _sched_show_task kernel/sched/core.c:8063 [inline]
 [&lt;ffffffff81497163&gt;] _sched_show_task.cold+0x2fd/0x392 kernel/sched/core.c:8030
 [&lt;ffffffff8146a91b&gt;] sched_show_task+0xb/0x10 kernel/sched/core.c:8073
 [&lt;ffffffff815c931b&gt;] print_other_cpu_stall kernel/rcu/tree.c:1577 [inline]
 [&lt;ffffffff815c931b&gt;] check_cpu_stall kernel/rcu/tree.c:1695 [inline]
 [&lt;ffffffff815c931b&gt;] __rcu_pending kernel/rcu/tree.c:3478 [inline]
 [&lt;ffffffff815c931b&gt;] rcu_pending kernel/rcu/tree.c:3540 [inline]
 [&lt;ffffffff815c931b&gt;] rcu_check_callbacks.cold+0xbb4/0xc29 kernel/rcu/tree.c:2876
 [&lt;ffffffff815e3962&gt;] update_process_times+0x32/0x80 kernel/time/timer.c:1635
 [&lt;ffffffff816164f0&gt;] tick_sched_handle+0xa0/0x180 kernel/time/tick-sched.c:161
 [&lt;ffffffff81616ae4&gt;] tick_sched_timer+0x44/0x130 kernel/time/tick-sched.c:1193
 [&lt;ffffffff815e75f7&gt;] __run_hrtimer kernel/time/hrtimer.c:1393 [inline]
 [&lt;ffffffff815e75f7&gt;] __hrtimer_run_queues+0x307/0xd90 kernel/time/hrtimer.c:1455
 [&lt;ffffffff815e90ea&gt;] hrtimer_interrupt+0x2ea/0x730 kernel/time/hrtimer.c:1513
 [&lt;ffffffff844050f4&gt;] local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1031 [inline]
 [&lt;ffffffff844050f4&gt;] smp_apic_timer_interrupt+0x144/0x5e0 arch/x86/kernel/apic/apic.c:1056
 [&lt;ffffffff84401cbe&gt;] apic_timer_interrupt+0x8e/0xa0 arch/x86/entry/entry_64.S:778
RIP: 0010:do_raw_read_lock+0x22/0x80 kernel/locking/spinlock_debug.c:153
RSP: 0018:ffff8801dad07ab8 EFLAGS: 00000a02 ORIG_RAX: ffffffffffffff12
RAX: 0000000000000000 RBX: ffff8801c4135680 RCX: 0000000000000000
RDX: 1ffff10038826afe RSI: ffff88019d816bb8 RDI: ffff8801c41357f0
RBP: ffff8801dad07ac0 R08: 0000000000004b15 R09: 0000000000310273
R10: ffff88019d816bb8 R11: 0000000000000001 R12: ffff8801c41357e8
R13: 0000000000000000 R14: ffff8801cfb19850 R15: ffff8801cfb198b0
 [&lt;ffffffff8101460e&gt;] __raw_read_lock_bh include/linux/rwlock_api_smp.h:177 [inline]
 [&lt;ffffffff8101460e&gt;] _raw_read_lock_bh+0x3e/0x50 kernel/locking/spinlock.c:240
 [&lt;ffffffff840d78ca&gt;] ipv6_chk_mcast_addr+0x11a/0x6f0 net/ipv6/mcast.c:1006
 [&lt;ffffffff84023439&gt;] ip6_mc_input+0x319/0x8e0 net/ipv6/ip6_input.c:482
 [&lt;ffffffff840211c8&gt;] dst_input include/net/dst.h:449 [inline]
 [&lt;ffffffff840211c8&gt;] ip6_rcv_finish+0x408/0x610 net/ipv6/ip6_input.c:78
 [&lt;ffffffff840214de&gt;] NF_HOOK include/linux/netfilter.h:292 [inline]
 [&lt;ffffffff840214de&gt;] NF_HOOK include/linux/netfilter.h:286 [inline]
 [&lt;ffffffff840214de&gt;] ipv6_rcv+0x10e/0x420 net/ipv6/ip6_input.c:278
 [&lt;ffffffff83a29efa&gt;] __netif_receive_skb_one_core+0x12a/0x1f0 net/core/dev.c:5303
 [&lt;ffffffff83a2a15c&gt;] __netif_receive_skb+0x2c/0x1b0 net/core/dev.c:5417
 [&lt;ffffffff83a2f536&gt;] process_backlog+0x216/0x6c0 net/core/dev.c:6243
 [&lt;ffffffff83a30d1b&gt;] napi_poll net/core/dev.c:6680 [inline]
 [&lt;ffffffff83a30d1b&gt;] net_rx_action+0x47b/0xfb0 net/core/dev.c:6748
 [&lt;ffffffff846002c8&gt;] __do_softirq+0x2c8/0x99a kernel/softirq.c:317
 [&lt;ffffffff813e656a&gt;] invoke_softirq kernel/softirq.c:399 [inline]
 [&lt;ffffffff813e656a&gt;] irq_exit+0x16a/0x1a0 kernel/softirq.c:439
 [&lt;ffffffff84405115&gt;] exiting_irq arch/x86/include/asm/apic.h:561 [inline]
 [&lt;ffffffff84405115&gt;] smp_apic_timer_interrupt+0x165/0x5e0 arch/x86/kernel/apic/apic.c:1058
 [&lt;ffffffff84401cbe&gt;] apic_timer_interrupt+0x8e/0xa0 arch/x86/entry/entry_64.S:778
 &lt;/IRQ&gt;
RIP: 0010:__sanitizer_cov_trace_pc+0x26/0x50 kernel/kcov.c:102
RSP: 0018:ffff880196033bd8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff12
RAX: ffff88019d8161c0 RBX: 00000000ffffffff RCX: ffffc90003501000
RDX: 0000000000000002 RSI: ffffffff816236d1 RDI: 0000000000000005
RBP: ffff880196033bd8 R08: ffff88019d8161c0 R09: 0000000000000000
R10: 1ffff10032c067f0 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000080 R14: 0000000000000000 R15: 0000000000000000
 [&lt;ffffffff816236d1&gt;] do_futex+0x151/0x1d50 kernel/futex.c:3548
 [&lt;ffffffff816260f0&gt;] C_SYSC_futex kernel/futex_compat.c:201 [inline]
 [&lt;ffffffff816260f0&gt;] compat_SyS_futex+0x270/0x3b0 kernel/futex_compat.c:175
 [&lt;ffffffff8101da17&gt;] do_syscall_32_irqs_on arch/x86/entry/common.c:353 [inline]
 [&lt;ffffffff8101da17&gt;] do_fast_syscall_32+0x357/0xe1c arch/x86/entry/common.c:415
 [&lt;ffffffff84401a9b&gt;] entry_SYSENTER_compat+0x8b/0x9d arch/x86/entry/entry_64_compat.S:139
RIP: 0023:0xf7f23c69
RSP: 002b:00000000f5d1f12c EFLAGS: 00000282 ORIG_RAX: 00000000000000f0
RAX: ffffffffffffffda RBX: 000000000816af88 RCX: 0000000000000080
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000816af8c
RBP: 00000000f5d1f228 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
rcu_sched kthread starved for 10502 jiffies! g5049 c5048 f0x2 RCU_GP_WAIT_FQS(3) -&gt;state=0x0 -&gt;cpu=1
rcu_sched       R  running task on cpu   1  13048     8      2 0x90000000 179099587640
Call Trace:
 [&lt;ffffffff8147321f&gt;] context_switch+0x60f/0xa60 kernel/sched/core.c:3209
 [&lt;ffffffff8100095a&gt;] __schedule+0x5aa/0x1da0 kernel/sched/core.c:3934
 [&lt;ffffffff810021df&gt;] schedule+0x8f/0x1b0 kernel/sched/core.c:4011
 [&lt;ffffffff8101116d&gt;] schedule_timeout+0x50d/0xee0 kernel/time/timer.c:1803
 [&lt;ffffffff815c13f1&gt;] rcu_gp_kthread+0xda1/0x3b50 kernel/rcu/tree.c:2327
 [&lt;ffffffff8144b318&gt;] kthread+0x348/0x420 kernel/kthread.c:246
 [&lt;ffffffff84400266&gt;] ret_from_fork+0x56/0x70 arch/x86/entry/entry_64.S:393

Fixes: ba35f8588f47 (“ipvlan: Defer multicast / broadcast processing to a work-queue”)
Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If there are substantial number of slaves created as simulated by
Syzbot, the backlog processing could take much longer and result
into the issue found in the Syzbot report.

INFO: rcu_sched detected stalls on CPUs/tasks:
        (detected by 1, t=10502 jiffies, g=5049, c=5048, q=752)
All QSes seen, last rcu_sched kthread activity 10502 (4294965563-4294955061), jiffies_till_next_fqs=1, root -&gt;qsmask 0x0
syz-executor.1  R  running task on cpu   1  10984 11210   3866 0x30020008 179034491270
Call Trace:
 &lt;IRQ&gt;
 [&lt;ffffffff81497163&gt;] _sched_show_task kernel/sched/core.c:8063 [inline]
 [&lt;ffffffff81497163&gt;] _sched_show_task.cold+0x2fd/0x392 kernel/sched/core.c:8030
 [&lt;ffffffff8146a91b&gt;] sched_show_task+0xb/0x10 kernel/sched/core.c:8073
 [&lt;ffffffff815c931b&gt;] print_other_cpu_stall kernel/rcu/tree.c:1577 [inline]
 [&lt;ffffffff815c931b&gt;] check_cpu_stall kernel/rcu/tree.c:1695 [inline]
 [&lt;ffffffff815c931b&gt;] __rcu_pending kernel/rcu/tree.c:3478 [inline]
 [&lt;ffffffff815c931b&gt;] rcu_pending kernel/rcu/tree.c:3540 [inline]
 [&lt;ffffffff815c931b&gt;] rcu_check_callbacks.cold+0xbb4/0xc29 kernel/rcu/tree.c:2876
 [&lt;ffffffff815e3962&gt;] update_process_times+0x32/0x80 kernel/time/timer.c:1635
 [&lt;ffffffff816164f0&gt;] tick_sched_handle+0xa0/0x180 kernel/time/tick-sched.c:161
 [&lt;ffffffff81616ae4&gt;] tick_sched_timer+0x44/0x130 kernel/time/tick-sched.c:1193
 [&lt;ffffffff815e75f7&gt;] __run_hrtimer kernel/time/hrtimer.c:1393 [inline]
 [&lt;ffffffff815e75f7&gt;] __hrtimer_run_queues+0x307/0xd90 kernel/time/hrtimer.c:1455
 [&lt;ffffffff815e90ea&gt;] hrtimer_interrupt+0x2ea/0x730 kernel/time/hrtimer.c:1513
 [&lt;ffffffff844050f4&gt;] local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1031 [inline]
 [&lt;ffffffff844050f4&gt;] smp_apic_timer_interrupt+0x144/0x5e0 arch/x86/kernel/apic/apic.c:1056
 [&lt;ffffffff84401cbe&gt;] apic_timer_interrupt+0x8e/0xa0 arch/x86/entry/entry_64.S:778
RIP: 0010:do_raw_read_lock+0x22/0x80 kernel/locking/spinlock_debug.c:153
RSP: 0018:ffff8801dad07ab8 EFLAGS: 00000a02 ORIG_RAX: ffffffffffffff12
RAX: 0000000000000000 RBX: ffff8801c4135680 RCX: 0000000000000000
RDX: 1ffff10038826afe RSI: ffff88019d816bb8 RDI: ffff8801c41357f0
RBP: ffff8801dad07ac0 R08: 0000000000004b15 R09: 0000000000310273
R10: ffff88019d816bb8 R11: 0000000000000001 R12: ffff8801c41357e8
R13: 0000000000000000 R14: ffff8801cfb19850 R15: ffff8801cfb198b0
 [&lt;ffffffff8101460e&gt;] __raw_read_lock_bh include/linux/rwlock_api_smp.h:177 [inline]
 [&lt;ffffffff8101460e&gt;] _raw_read_lock_bh+0x3e/0x50 kernel/locking/spinlock.c:240
 [&lt;ffffffff840d78ca&gt;] ipv6_chk_mcast_addr+0x11a/0x6f0 net/ipv6/mcast.c:1006
 [&lt;ffffffff84023439&gt;] ip6_mc_input+0x319/0x8e0 net/ipv6/ip6_input.c:482
 [&lt;ffffffff840211c8&gt;] dst_input include/net/dst.h:449 [inline]
 [&lt;ffffffff840211c8&gt;] ip6_rcv_finish+0x408/0x610 net/ipv6/ip6_input.c:78
 [&lt;ffffffff840214de&gt;] NF_HOOK include/linux/netfilter.h:292 [inline]
 [&lt;ffffffff840214de&gt;] NF_HOOK include/linux/netfilter.h:286 [inline]
 [&lt;ffffffff840214de&gt;] ipv6_rcv+0x10e/0x420 net/ipv6/ip6_input.c:278
 [&lt;ffffffff83a29efa&gt;] __netif_receive_skb_one_core+0x12a/0x1f0 net/core/dev.c:5303
 [&lt;ffffffff83a2a15c&gt;] __netif_receive_skb+0x2c/0x1b0 net/core/dev.c:5417
 [&lt;ffffffff83a2f536&gt;] process_backlog+0x216/0x6c0 net/core/dev.c:6243
 [&lt;ffffffff83a30d1b&gt;] napi_poll net/core/dev.c:6680 [inline]
 [&lt;ffffffff83a30d1b&gt;] net_rx_action+0x47b/0xfb0 net/core/dev.c:6748
 [&lt;ffffffff846002c8&gt;] __do_softirq+0x2c8/0x99a kernel/softirq.c:317
 [&lt;ffffffff813e656a&gt;] invoke_softirq kernel/softirq.c:399 [inline]
 [&lt;ffffffff813e656a&gt;] irq_exit+0x16a/0x1a0 kernel/softirq.c:439
 [&lt;ffffffff84405115&gt;] exiting_irq arch/x86/include/asm/apic.h:561 [inline]
 [&lt;ffffffff84405115&gt;] smp_apic_timer_interrupt+0x165/0x5e0 arch/x86/kernel/apic/apic.c:1058
 [&lt;ffffffff84401cbe&gt;] apic_timer_interrupt+0x8e/0xa0 arch/x86/entry/entry_64.S:778
 &lt;/IRQ&gt;
RIP: 0010:__sanitizer_cov_trace_pc+0x26/0x50 kernel/kcov.c:102
RSP: 0018:ffff880196033bd8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff12
RAX: ffff88019d8161c0 RBX: 00000000ffffffff RCX: ffffc90003501000
RDX: 0000000000000002 RSI: ffffffff816236d1 RDI: 0000000000000005
RBP: ffff880196033bd8 R08: ffff88019d8161c0 R09: 0000000000000000
R10: 1ffff10032c067f0 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000080 R14: 0000000000000000 R15: 0000000000000000
 [&lt;ffffffff816236d1&gt;] do_futex+0x151/0x1d50 kernel/futex.c:3548
 [&lt;ffffffff816260f0&gt;] C_SYSC_futex kernel/futex_compat.c:201 [inline]
 [&lt;ffffffff816260f0&gt;] compat_SyS_futex+0x270/0x3b0 kernel/futex_compat.c:175
 [&lt;ffffffff8101da17&gt;] do_syscall_32_irqs_on arch/x86/entry/common.c:353 [inline]
 [&lt;ffffffff8101da17&gt;] do_fast_syscall_32+0x357/0xe1c arch/x86/entry/common.c:415
 [&lt;ffffffff84401a9b&gt;] entry_SYSENTER_compat+0x8b/0x9d arch/x86/entry/entry_64_compat.S:139
RIP: 0023:0xf7f23c69
RSP: 002b:00000000f5d1f12c EFLAGS: 00000282 ORIG_RAX: 00000000000000f0
RAX: ffffffffffffffda RBX: 000000000816af88 RCX: 0000000000000080
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000816af8c
RBP: 00000000f5d1f228 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
rcu_sched kthread starved for 10502 jiffies! g5049 c5048 f0x2 RCU_GP_WAIT_FQS(3) -&gt;state=0x0 -&gt;cpu=1
rcu_sched       R  running task on cpu   1  13048     8      2 0x90000000 179099587640
Call Trace:
 [&lt;ffffffff8147321f&gt;] context_switch+0x60f/0xa60 kernel/sched/core.c:3209
 [&lt;ffffffff8100095a&gt;] __schedule+0x5aa/0x1da0 kernel/sched/core.c:3934
 [&lt;ffffffff810021df&gt;] schedule+0x8f/0x1b0 kernel/sched/core.c:4011
 [&lt;ffffffff8101116d&gt;] schedule_timeout+0x50d/0xee0 kernel/time/timer.c:1803
 [&lt;ffffffff815c13f1&gt;] rcu_gp_kthread+0xda1/0x3b50 kernel/rcu/tree.c:2327
 [&lt;ffffffff8144b318&gt;] kthread+0x348/0x420 kernel/kthread.c:246
 [&lt;ffffffff84400266&gt;] ret_from_fork+0x56/0x70 arch/x86/entry/entry_64.S:393

Fixes: ba35f8588f47 (“ipvlan: Defer multicast / broadcast processing to a work-queue”)
Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Reported-by: syzbot &lt;syzkaller@googlegroups.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipvlan: don't deref eth hdr before checking it's set</title>
<updated>2020-03-10T00:59:25+00:00</updated>
<author>
<name>Mahesh Bandewar</name>
<email>maheshb@google.com</email>
</author>
<published>2020-03-09T22:56:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ad8192767c9f9cf97da57b9ffcea70fb100febef'/>
<id>ad8192767c9f9cf97da57b9ffcea70fb100febef</id>
<content type='text'>
IPvlan in L3 mode discards outbound multicast packets but performs
the check before ensuring the ether-header is set or not. This is
an error that Eric found through code browsing.

Fixes: 2ad7bf363841 (“ipvlan: Initial check-in of the IPVLAN driver.”)
Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Reported-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
IPvlan in L3 mode discards outbound multicast packets but performs
the check before ensuring the ether-header is set or not. This is
an error that Eric found through code browsing.

Fixes: 2ad7bf363841 (“ipvlan: Initial check-in of the IPVLAN driver.”)
Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Reported-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipvlan: do not add hardware address of master to its unicast filter list</title>
<updated>2020-03-09T04:13:50+00:00</updated>
<author>
<name>Jiri Wiesner</name>
<email>jwiesner@suse.com</email>
</author>
<published>2020-03-07T12:31:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=63aae7b17344d4b08a7d05cb07044de4c0f9dcc6'/>
<id>63aae7b17344d4b08a7d05cb07044de4c0f9dcc6</id>
<content type='text'>
There is a problem when ipvlan slaves are created on a master device that
is a vmxnet3 device (ipvlan in VMware guests). The vmxnet3 driver does not
support unicast address filtering. When an ipvlan device is brought up in
ipvlan_open(), the ipvlan driver calls dev_uc_add() to add the hardware
address of the vmxnet3 master device to the unicast address list of the
master device, phy_dev-&gt;uc. This inevitably leads to the vmxnet3 master
device being forced into promiscuous mode by __dev_set_rx_mode().

Promiscuous mode is switched on the master despite the fact that there is
still only one hardware address that the master device should use for
filtering in order for the ipvlan device to be able to receive packets.
The comment above struct net_device describes the uc_promisc member as a
"counter, that indicates, that promiscuous mode has been enabled due to
the need to listen to additional unicast addresses in a device that does
not implement ndo_set_rx_mode()". Moreover, the design of ipvlan
guarantees that only the hardware address of a master device,
phy_dev-&gt;dev_addr, will be used to transmit and receive all packets from
its ipvlan slaves. Thus, the unicast address list of the master device
should not be modified by ipvlan_open() and ipvlan_stop() in order to make
ipvlan a workable option on masters that do not support unicast address
filtering.

Fixes: 2ad7bf3638411 ("ipvlan: Initial check-in of the IPVLAN driver")
Reported-by: Per Sundstrom &lt;per.sundstrom@redqube.se&gt;
Signed-off-by: Jiri Wiesner &lt;jwiesner@suse.com&gt;
Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;
Acked-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a problem when ipvlan slaves are created on a master device that
is a vmxnet3 device (ipvlan in VMware guests). The vmxnet3 driver does not
support unicast address filtering. When an ipvlan device is brought up in
ipvlan_open(), the ipvlan driver calls dev_uc_add() to add the hardware
address of the vmxnet3 master device to the unicast address list of the
master device, phy_dev-&gt;uc. This inevitably leads to the vmxnet3 master
device being forced into promiscuous mode by __dev_set_rx_mode().

Promiscuous mode is switched on the master despite the fact that there is
still only one hardware address that the master device should use for
filtering in order for the ipvlan device to be able to receive packets.
The comment above struct net_device describes the uc_promisc member as a
"counter, that indicates, that promiscuous mode has been enabled due to
the need to listen to additional unicast addresses in a device that does
not implement ndo_set_rx_mode()". Moreover, the design of ipvlan
guarantees that only the hardware address of a master device,
phy_dev-&gt;dev_addr, will be used to transmit and receive all packets from
its ipvlan slaves. Thus, the unicast address list of the master device
should not be modified by ipvlan_open() and ipvlan_stop() in order to make
ipvlan a workable option on masters that do not support unicast address
filtering.

Fixes: 2ad7bf3638411 ("ipvlan: Initial check-in of the IPVLAN driver")
Reported-by: Per Sundstrom &lt;per.sundstrom@redqube.se&gt;
Signed-off-by: Jiri Wiesner &lt;jwiesner@suse.com&gt;
Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;
Acked-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
<updated>2019-11-02T20:54:56+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2019-11-02T20:12:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d31e95585ca697fb31440c6fe30113adc85ecfbd'/>
<id>d31e95585ca697fb31440c6fe30113adc85ecfbd</id>
<content type='text'>
The only slightly tricky merge conflict was the netdevsim because the
mutex locking fix overlapped a lot of driver reload reorganization.

The rest were (relatively) trivial in nature.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The only slightly tricky merge conflict was the netdevsim because the
mutex locking fix overlapped a lot of driver reload reorganization.

The rest were (relatively) trivial in nature.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
