summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch')
-rw-r--r--debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch16
1 files changed, 8 insertions, 8 deletions
diff --git a/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
index de8977ce4..90826ae16 100644
--- a/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
+++ b/debian/patches-rt/0119-softirq-Check-preemption-after-reenabling-interrupts.patch
@@ -1,7 +1,7 @@
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 13 Nov 2011 17:17:09 +0100
Subject: [PATCH 119/353] softirq: Check preemption after reenabling interrupts
-Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d032bdf0faf17bd875c0068a076abeeca0d21b54
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d73dc06a3a63b3e883babd7e29fa160128c73e60
raise_softirq_irqoff() disables interrupts and wakes the softirq
daemon, but after reenabling interrupts there is no preemption check,
@@ -116,10 +116,10 @@ index 86a709954f5a..9c069ef83d6d 100644
return 0;
}
diff --git a/net/core/dev.c b/net/core/dev.c
-index b778f3596543..f766df2bd01d 100644
+index 03903d3f1d69..4156bf7ca234 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -2725,6 +2725,7 @@ static void __netif_reschedule(struct Qdisc *q)
+@@ -2727,6 +2727,7 @@ static void __netif_reschedule(struct Qdisc *q)
sd->output_queue_tailp = &q->next_sched;
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_restore(flags);
@@ -127,7 +127,7 @@ index b778f3596543..f766df2bd01d 100644
}
void __netif_schedule(struct Qdisc *q)
-@@ -2787,6 +2788,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason)
+@@ -2789,6 +2790,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason)
__this_cpu_write(softnet_data.completion_queue, skb);
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_restore(flags);
@@ -135,7 +135,7 @@ index b778f3596543..f766df2bd01d 100644
}
EXPORT_SYMBOL(__dev_kfree_skb_irq);
-@@ -4271,6 +4273,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu,
+@@ -4273,6 +4275,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu,
rps_unlock(sd);
local_irq_restore(flags);
@@ -143,7 +143,7 @@ index b778f3596543..f766df2bd01d 100644
atomic_long_inc(&skb->dev->rx_dropped);
kfree_skb(skb);
-@@ -5822,12 +5825,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
+@@ -5824,12 +5827,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd)
sd->rps_ipi_list = NULL;
local_irq_enable();
@@ -158,7 +158,7 @@ index b778f3596543..f766df2bd01d 100644
}
static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
-@@ -5905,6 +5910,7 @@ void __napi_schedule(struct napi_struct *n)
+@@ -5907,6 +5912,7 @@ void __napi_schedule(struct napi_struct *n)
local_irq_save(flags);
____napi_schedule(this_cpu_ptr(&softnet_data), n);
local_irq_restore(flags);
@@ -166,7 +166,7 @@ index b778f3596543..f766df2bd01d 100644
}
EXPORT_SYMBOL(__napi_schedule);
-@@ -9529,6 +9535,7 @@ static int dev_cpu_dead(unsigned int oldcpu)
+@@ -9531,6 +9537,7 @@ static int dev_cpu_dead(unsigned int oldcpu)
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_enable();