diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch index 173c118c2..6ed414720 100644 --- a/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch +++ b/debian/patches-rt/0219-softirq-Check-preemption-after-reenabling-interrupts.patch @@ -1,8 +1,8 @@ -From c63275b524df4d3556c7cf1690bc874d4a8cd72e Mon Sep 17 00:00:00 2001 +From 5deee6753f583147f213b46951835c512c5068ff Mon Sep 17 00:00:00 2001 From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 13 Nov 2011 17:17:09 +0100 Subject: [PATCH 219/323] softirq: Check preemption after reenabling interrupts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.215-rt107.tar.xz raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> 3 files changed, 15 insertions(+) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 5ceac863e729..fb140e00f74d 100644 +index 5ceac863e7298..fb140e00f74dc 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -190,8 +190,10 @@ do { \ @@ -44,7 +44,7 @@ index 5ceac863e729..fb140e00f74d 100644 #endif /* CONFIG_PREEMPT_COUNT */ diff --git a/lib/irq_poll.c b/lib/irq_poll.c -index 2f17b488d58e..7557bf7ecf1f 100644 +index 2f17b488d58e1..7557bf7ecf1f1 100644 --- a/lib/irq_poll.c +++ b/lib/irq_poll.c @@ -37,6 +37,7 @@ void irq_poll_sched(struct irq_poll *iop) @@ -88,7 +88,7 @@ index 2f17b488d58e..7557bf7ecf1f 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index 3fc27b52bf42..3f23ac2ad497 100644 +index 0e2c433bebcd4..55d0c53864989 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3052,6 +3052,7 @@ static void __netif_reschedule(struct Qdisc *q) @@ -107,7 +107,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4596,6 +4598,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4604,6 +4606,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -115,7 +115,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -6348,12 +6351,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -6356,12 +6359,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) sd->rps_ipi_list = NULL; local_irq_enable(); @@ -130,7 +130,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -6431,6 +6436,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -6439,6 +6444,7 @@ void __napi_schedule(struct napi_struct *n) local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); @@ -138,7 +138,7 @@ index 3fc27b52bf42..3f23ac2ad497 100644 } EXPORT_SYMBOL(__napi_schedule); -@@ -10962,6 +10968,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -10970,6 +10976,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); @@ -147,5 +147,5 @@ index 3fc27b52bf42..3f23ac2ad497 100644 #ifdef CONFIG_RPS remsd = oldsd->rps_ipi_list; -- -2.43.0 +2.44.0 |