summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch')
-rw-r--r--debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch20
1 files changed, 10 insertions, 10 deletions
diff --git a/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
index caf96c5f5..c4c909787 100644
--- a/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
+++ b/debian/patches-rt/0198-net-move-xmit_recursion-to-per-task-variable-on-RT.patch
@@ -1,7 +1,7 @@
From: Clark Williams <williams@redhat.com>
Date: Fri, 17 Dec 2021 14:31:31 -0600
-Subject: [PATCH 198/353] net: move xmit_recursion to per-task variable on -RT
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=9fcf3310d12df456718d378ff2826b302f35c28b
+Subject: [PATCH 198/354] net: move xmit_recursion to per-task variable on -RT
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=f0c1a3fa8d4d3a2a90e975e9aa5dea6e7144a06b
A softirq on -RT can be preempted. That means one task is in
__dev_queue_xmit(), gets preempted and another task may enter
@@ -24,10 +24,10 @@ Signed-off-by: Clark Williams <williams@redhat.com>
3 files changed, 77 insertions(+), 3 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index d3e4b3f195ff..63a0574e2ac2 100644
+index 77209c1c2e7e..1644390430a3 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -590,7 +590,11 @@ struct netdev_queue {
+@@ -597,7 +597,11 @@ struct netdev_queue {
* write-mostly part
*/
spinlock_t _xmit_lock ____cacheline_aligned_in_smp;
@@ -39,7 +39,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
/*
* Time (in jiffies) of last Tx
*/
-@@ -3011,14 +3015,38 @@ static inline void input_queue_tail_incr_save(struct softnet_data *sd,
+@@ -3017,14 +3021,38 @@ static inline void input_queue_tail_incr_save(struct softnet_data *sd,
#endif
}
@@ -79,7 +79,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
static inline bool dev_xmit_recursion(void)
{
return unlikely(__this_cpu_read(softnet_data.xmit.recursion) >
-@@ -3034,6 +3062,7 @@ static inline void dev_xmit_recursion_dec(void)
+@@ -3040,6 +3068,7 @@ static inline void dev_xmit_recursion_dec(void)
{
__this_cpu_dec(softnet_data.xmit.recursion);
}
@@ -87,7 +87,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
void __netif_schedule(struct Qdisc *q);
void netif_schedule_queue(struct netdev_queue *txq);
-@@ -3843,6 +3872,44 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
+@@ -3849,6 +3878,44 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
return (1U << debug_value) - 1;
}
@@ -132,7 +132,7 @@ index d3e4b3f195ff..63a0574e2ac2 100644
static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
{
spin_lock(&txq->_xmit_lock);
-@@ -3895,7 +3962,7 @@ static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
+@@ -3901,7 +3968,7 @@ static inline void __netif_tx_unlock_bh(struct netdev_queue *txq)
static inline void txq_trans_update(struct netdev_queue *txq)
{
@@ -156,7 +156,7 @@ index 3bc6b3206e14..7aa299de5ebf 100644
int pagefault_disabled;
#ifdef CONFIG_MMU
diff --git a/net/core/dev.c b/net/core/dev.c
-index 7bce4581d6f0..32e8b237496c 100644
+index 97c74c2e500e..01f06514aed9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3837,10 +3837,14 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev)
@@ -174,7 +174,7 @@ index 7bce4581d6f0..32e8b237496c 100644
if (dev_xmit_recursion())
goto recursion_alert;
-@@ -8598,7 +8602,7 @@ static void netdev_init_one_queue(struct net_device *dev,
+@@ -8600,7 +8604,7 @@ static void netdev_init_one_queue(struct net_device *dev,
/* Initialize queue lock */
spin_lock_init(&queue->_xmit_lock);
netdev_set_xmit_lockdep_class(&queue->_xmit_lock, dev->type);