From fa93c57f8437ce043da99eaffd881ed91b668cf6 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 22 Nov 2021 12:34:26 +0100 Subject: [PATCH] 5.15-stable patches added patches: tun-fix-bonding-active-backup-with-arp-monitoring.patch --- queue-5.15/series | 1 + ...ng-active-backup-with-arp-monitoring.patch | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 queue-5.15/tun-fix-bonding-active-backup-with-arp-monitoring.patch diff --git a/queue-5.15/series b/queue-5.15/series index 7f0acdd326d..1d51243d00c 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -187,3 +187,4 @@ perf-x86-intel-uncore-fix-iio-event-constraints-for-.patch-26758 s390-kexec-fix-return-code-handling.patch blk-cgroup-fix-missing-put-device-in-error-path-from.patch dmaengine-remove-debugfs-ifdef.patch +tun-fix-bonding-active-backup-with-arp-monitoring.patch diff --git a/queue-5.15/tun-fix-bonding-active-backup-with-arp-monitoring.patch b/queue-5.15/tun-fix-bonding-active-backup-with-arp-monitoring.patch new file mode 100644 index 00000000000..1b705296837 --- /dev/null +++ b/queue-5.15/tun-fix-bonding-active-backup-with-arp-monitoring.patch @@ -0,0 +1,45 @@ +From a31d27fbed5d518734cb60956303eb15089a7634 Mon Sep 17 00:00:00 2001 +From: Nicolas Dichtel +Date: Fri, 12 Nov 2021 08:56:03 +0100 +Subject: tun: fix bonding active backup with arp monitoring + +From: Nicolas Dichtel + +commit a31d27fbed5d518734cb60956303eb15089a7634 upstream. + +As stated in the bonding doc, trans_start must be set manually for drivers +using NETIF_F_LLTX: + Drivers that use NETIF_F_LLTX flag must also update + netdev_queue->trans_start. If they do not, then the ARP monitor will + immediately fail any slaves using that driver, and those slaves will stay + down. + +Link: https://www.kernel.org/doc/html/v5.15/networking/bonding.html#arp-monitor-operation +Signed-off-by: Nicolas Dichtel +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/tun.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/net/tun.c ++++ b/drivers/net/tun.c +@@ -1010,6 +1010,7 @@ static netdev_tx_t tun_net_xmit(struct s + { + struct tun_struct *tun = netdev_priv(dev); + int txq = skb->queue_mapping; ++ struct netdev_queue *queue; + struct tun_file *tfile; + int len = skb->len; + +@@ -1054,6 +1055,10 @@ static netdev_tx_t tun_net_xmit(struct s + if (ptr_ring_produce(&tfile->tx_ring, skb)) + goto drop; + ++ /* NETIF_F_LLTX requires to do our own update of trans_start */ ++ queue = netdev_get_tx_queue(dev, txq); ++ queue->trans_start = jiffies; ++ + /* Notify and wake up reader process */ + if (tfile->flags & TUN_FASYNC) + kill_fasync(&tfile->fasync, SIGIO, POLL_IN); -- 2.39.5