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 | 16 |
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 90826ae16..e3f55e764 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=d73dc06a3a63b3e883babd7e29fa160128c73e60 +Subject: [PATCH 119/354] softirq: Check preemption after reenabling interrupts +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=d7c68fecb29f3041ccce92063163f28179b408e4 raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -49,7 +49,7 @@ index 15c1f5e12eb8..1628277885a1 100644 EXPORT_SYMBOL(__blk_complete_request); diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index b7fe717eb1f4..9984f2b75b73 100644 +index 22829223534b..8dc7800151f0 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -187,8 +187,10 @@ do { \ @@ -116,7 +116,7 @@ index 86a709954f5a..9c069ef83d6d 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index 03903d3f1d69..4156bf7ca234 100644 +index 0f9214fb36e0..554590fc29f5 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2727,6 +2727,7 @@ static void __netif_reschedule(struct Qdisc *q) @@ -135,7 +135,7 @@ index 03903d3f1d69..4156bf7ca234 100644 } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4273,6 +4275,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4275,6 +4277,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -143,7 +143,7 @@ index 03903d3f1d69..4156bf7ca234 100644 atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -5824,12 +5827,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -5826,12 +5829,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 03903d3f1d69..4156bf7ca234 100644 } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -5907,6 +5912,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -5909,6 +5914,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 03903d3f1d69..4156bf7ca234 100644 } EXPORT_SYMBOL(__napi_schedule); -@@ -9531,6 +9537,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9523,6 +9529,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); |