diff options
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.patch | 14 |
1 files changed, 7 insertions, 7 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 163f9d22a..de8977ce4 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/351] softirq: Check preemption after reenabling interrupts -Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=edfadd52335e1c2709012ff052173aaa8bee23f7 +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 raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -116,7 +116,7 @@ index 86a709954f5a..9c069ef83d6d 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index 880b096eef8a..b11a0189124d 100644 +index b778f3596543..f766df2bd01d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2725,6 +2725,7 @@ static void __netif_reschedule(struct Qdisc *q) @@ -135,7 +135,7 @@ index 880b096eef8a..b11a0189124d 100644 } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4269,6 +4271,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4271,6 +4273,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -143,7 +143,7 @@ index 880b096eef8a..b11a0189124d 100644 atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -5820,12 +5823,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -5822,12 +5825,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 880b096eef8a..b11a0189124d 100644 } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -5903,6 +5908,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -5905,6 +5910,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 880b096eef8a..b11a0189124d 100644 } EXPORT_SYMBOL(__napi_schedule); -@@ -9527,6 +9533,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9529,6 +9535,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); |