~ubuntu-branches/debian/sid/linux-grsec/sid

« back to all changes in this revision

Viewing changes to debian/patches/features/all/rt/timers-prepare-for-full-preemption.patch

  • Committer: Package Import Robot
  • Author(s): Yves-Alexis Perez
  • Date: 2016-12-20 16:13:41 UTC
  • mfrom: (1.1.16)
  • Revision ID: package-import@ubuntu.com-20161220161341-sec3a0j4hvey3kr7
Tags: 4.8.15-1+grsec201612151923+1
* Merge changes from src:linux up to 4.8.15-1.
  - include the flex change, fixing FTBFS.                    closes: #848803
* Update grsecurity to 3.1-4.8.15-201612151923.
* debian/patches:
  - bugfix/all/net-handle-no-dst-on-skb-in-icmp6_send.patch disabled,
    already included in grsecurity.
* set CONFIG_LEGACY_VSYSCALL_NONE following src:linux.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
From: Ingo Molnar <mingo@elte.hu>
2
2
Date: Fri, 3 Jul 2009 08:29:34 -0500
3
3
Subject: timers: Prepare for full preemption
4
 
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.8/older/patches-4.8.6-rt5.tar.xz
 
4
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.8/older/patches-4.8.14-rt9.tar.xz
5
5
 
6
6
When softirqs can be preempted we need to make sure that cancelling
7
7
the timer from the active thread can not deadlock vs. a running timer
67
67
        unsigned long           clk;
68
68
        unsigned long           next_expiry;
69
69
        unsigned int            cpu;
70
 
@@ -1147,6 +1150,33 @@ void add_timer_on(struct timer_list *tim
 
70
@@ -1157,6 +1160,33 @@ void add_timer_on(struct timer_list *tim
71
71
 }
72
72
 EXPORT_SYMBOL_GPL(add_timer_on);
73
73
 
101
101
 /**
102
102
  * del_timer - deactive a timer.
103
103
  * @timer: the timer to be deactivated
104
 
@@ -1204,7 +1234,7 @@ int try_to_del_timer_sync(struct timer_l
 
104
@@ -1214,7 +1244,7 @@ int try_to_del_timer_sync(struct timer_l
105
105
 }
106
106
 EXPORT_SYMBOL(try_to_del_timer_sync);
107
107
 
110
110
 /**
111
111
  * del_timer_sync - deactivate a timer and wait for the handler to finish.
112
112
  * @timer: the timer to be deactivated
113
 
@@ -1264,7 +1294,7 @@ int del_timer_sync(struct timer_list *ti
 
113
@@ -1274,7 +1304,7 @@ int del_timer_sync(struct timer_list *ti
114
114
                int ret = try_to_del_timer_sync(timer);
115
115
                if (ret >= 0)
116
116
                        return ret;
119
119
        }
120
120
 }
121
121
 EXPORT_SYMBOL(del_timer_sync);
122
 
@@ -1329,13 +1359,16 @@ static void expire_timers(struct timer_b
 
122
@@ -1339,13 +1369,16 @@ static void expire_timers(struct timer_b
123
123
                fn = timer->function;
124
124
                data = timer->data;
125
125
 
137
137
                        raw_spin_lock_irq(&base->lock);
138
138
                }
139
139
        }
140
 
@@ -1626,8 +1659,8 @@ static inline void __run_timers(struct t
 
140
@@ -1640,8 +1673,8 @@ static inline void __run_timers(struct t
141
141
                while (levels--)
142
142
                        expire_timers(base, heads + levels);
143
143
        }
147
147
 }
148
148
 
149
149
 /*
150
 
@@ -1849,6 +1882,9 @@ static void __init init_timer_cpu(int cp
 
150
@@ -1863,6 +1896,9 @@ static void __init init_timer_cpu(int cp
151
151
                base->cpu = cpu;
152
152
                raw_spin_lock_init(&base->lock);
153
153
                base->clk = jiffies;