diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2016-12-26 03:45:53 -0500 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2016-12-26 03:45:53 -0500 |
commit | 3deb98d8343c7b9274226d3d9c863858161abe4a (patch) | |
tree | 7325cba0e8bc2ab7e6c46a2d6796000ca5b18c1d | |
parent | 95e891e8bea5a5cfac379288c14ff72e881bdbc5 (diff) | |
download | 4.9-rt-patches-3deb98d8343c7b9274226d3d9c863858161abe4a.tar.gz |
tasklet: import refresh for __latent_entropy annotations
-rw-r--r-- | patches/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/patches/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch b/patches/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch index 803a0bd02b1b4..808d6cd4947e5 100644 --- a/patches/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch +++ b/patches/tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch @@ -43,7 +43,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h -@@ -500,8 +500,9 @@ static inline struct task_struct *this_c +@@ -508,8 +508,9 @@ static inline struct task_struct *this_c to be executed on some cpu at least once after this. * If the tasklet is already scheduled, but its execution is still not started, it will be executed only once. @@ -55,7 +55,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> * Tasklet is strictly serialized wrt itself, but not wrt another tasklets. If client needs some intertask synchronization, he makes it with spinlocks. -@@ -526,27 +527,36 @@ struct tasklet_struct name = { NULL, 0, +@@ -534,27 +535,36 @@ struct tasklet_struct name = { NULL, 0, enum { TASKLET_STATE_SCHED, /* Tasklet is scheduled for execution */ @@ -98,7 +98,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #define tasklet_unlock_wait(t) do { } while (0) #define tasklet_unlock(t) do { } while (0) #endif -@@ -595,12 +605,7 @@ static inline void tasklet_disable(struc +@@ -603,12 +613,7 @@ static inline void tasklet_disable(struc smp_mb(); } @@ -122,7 +122,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #include <linux/ftrace.h> #include <linux/smp.h> #include <linux/smpboot.h> -@@ -446,15 +447,45 @@ struct tasklet_head { +@@ -460,15 +461,45 @@ struct tasklet_head { static DEFINE_PER_CPU(struct tasklet_head, tasklet_vec); static DEFINE_PER_CPU(struct tasklet_head, tasklet_hi_vec); @@ -172,7 +172,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> local_irq_restore(flags); } EXPORT_SYMBOL(__tasklet_schedule); -@@ -464,10 +495,7 @@ void __tasklet_hi_schedule(struct taskle +@@ -478,10 +509,7 @@ void __tasklet_hi_schedule(struct taskle unsigned long flags; local_irq_save(flags); @@ -184,7 +184,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> local_irq_restore(flags); } EXPORT_SYMBOL(__tasklet_hi_schedule); -@@ -476,82 +504,122 @@ void __tasklet_hi_schedule_first(struct +@@ -490,82 +518,122 @@ void __tasklet_hi_schedule_first(struct { BUG_ON(!irqs_disabled()); @@ -195,7 +195,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } EXPORT_SYMBOL(__tasklet_hi_schedule_first); --static void tasklet_action(struct softirq_action *a) +-static __latent_entropy void tasklet_action(struct softirq_action *a) +void tasklet_enable(struct tasklet_struct *t) { - struct tasklet_struct *list; @@ -316,7 +316,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> + __tasklet_action(a, list); +} + - static void tasklet_hi_action(struct softirq_action *a) + static __latent_entropy void tasklet_hi_action(struct softirq_action *a) { struct tasklet_struct *list; @@ -356,7 +356,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } void tasklet_init(struct tasklet_struct *t, -@@ -572,7 +640,7 @@ void tasklet_kill(struct tasklet_struct +@@ -586,7 +654,7 @@ void tasklet_kill(struct tasklet_struct while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) { do { @@ -365,7 +365,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } while (test_bit(TASKLET_STATE_SCHED, &t->state)); } tasklet_unlock_wait(t); -@@ -646,6 +714,23 @@ void __init softirq_init(void) +@@ -660,6 +728,23 @@ void __init softirq_init(void) open_softirq(HI_SOFTIRQ, tasklet_hi_action); } |