1 |
commit: 11ab97af23c6f4c9dc3d3765ce5de3b57e1ad89d |
2 |
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Sep 2 19:42:59 2013 +0000 |
4 |
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Sep 2 19:47:33 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-patchset.git;a=commit;h=11ab97af |
7 |
|
8 |
Grsec/PaX: 2.9.1-3.10.10-201308301923 |
9 |
|
10 |
--- |
11 |
{3.10.9 => 3.10.10}/0000_README | 2 +- |
12 |
...420_grsecurity-2.9.1-3.10.10-201308301923.patch | 423 +++++++++++++-------- |
13 |
{3.10.9 => 3.10.10}/4425_grsec_remove_EI_PAX.patch | 0 |
14 |
.../4427_force_XATTR_PAX_tmpfs.patch | 0 |
15 |
.../4430_grsec-remove-localversion-grsec.patch | 0 |
16 |
{3.10.9 => 3.10.10}/4435_grsec-mute-warnings.patch | 0 |
17 |
.../4440_grsec-remove-protected-paths.patch | 0 |
18 |
.../4450_grsec-kconfig-default-gids.patch | 0 |
19 |
.../4465_selinux-avc_audit-log-curr_ip.patch | 0 |
20 |
{3.10.9 => 3.10.10}/4470_disable-compat_vdso.patch | 0 |
21 |
{3.10.9 => 3.10.10}/4475_emutramp_default_on.patch | 0 |
22 |
11 files changed, 271 insertions(+), 154 deletions(-) |
23 |
|
24 |
diff --git a/3.10.9/0000_README b/3.10.10/0000_README |
25 |
similarity index 96% |
26 |
rename from 3.10.9/0000_README |
27 |
rename to 3.10.10/0000_README |
28 |
index d335961..bd3df03 100644 |
29 |
--- a/3.10.9/0000_README |
30 |
+++ b/3.10.10/0000_README |
31 |
@@ -2,7 +2,7 @@ README |
32 |
----------------------------------------------------------------------------- |
33 |
Individual Patch Descriptions: |
34 |
----------------------------------------------------------------------------- |
35 |
-Patch: 4420_grsecurity-2.9.1-3.10.9-201308282054.patch |
36 |
+Patch: 4420_grsecurity-2.9.1-3.10.10-201308301923.patch |
37 |
From: http://www.grsecurity.net |
38 |
Desc: hardened-sources base patch from upstream grsecurity |
39 |
|
40 |
|
41 |
diff --git a/3.10.9/4420_grsecurity-2.9.1-3.10.9-201308282054.patch b/3.10.10/4420_grsecurity-2.9.1-3.10.10-201308301923.patch |
42 |
similarity index 99% |
43 |
rename from 3.10.9/4420_grsecurity-2.9.1-3.10.9-201308282054.patch |
44 |
rename to 3.10.10/4420_grsecurity-2.9.1-3.10.10-201308301923.patch |
45 |
index ed67d72..cd96025 100644 |
46 |
--- a/3.10.9/4420_grsecurity-2.9.1-3.10.9-201308282054.patch |
47 |
+++ b/3.10.10/4420_grsecurity-2.9.1-3.10.10-201308301923.patch |
48 |
@@ -281,7 +281,7 @@ index 2fe6e76..889ee23 100644 |
49 |
|
50 |
pcd. [PARIDE] |
51 |
diff --git a/Makefile b/Makefile |
52 |
-index 4b31d62..ac99d49 100644 |
53 |
+index b119684..13ac256 100644 |
54 |
--- a/Makefile |
55 |
+++ b/Makefile |
56 |
@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ |
57 |
@@ -3632,7 +3632,7 @@ index cad3ca86..1d79e0f 100644 |
58 |
extern void ux500_cpu_die(unsigned int cpu); |
59 |
|
60 |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig |
61 |
-index 2950082..d0f0782 100644 |
62 |
+index 08c9fe9..191320c 100644 |
63 |
--- a/arch/arm/mm/Kconfig |
64 |
+++ b/arch/arm/mm/Kconfig |
65 |
@@ -436,7 +436,7 @@ config CPU_32v5 |
66 |
@@ -3660,8 +3660,8 @@ index 2950082..d0f0782 100644 |
67 |
help |
68 |
Warning: disabling this option may break user programs. |
69 |
|
70 |
-@@ -790,7 +792,7 @@ config KUSER_HELPERS |
71 |
- run on ARMv4 through to ARMv7 without modification. |
72 |
+@@ -792,7 +794,7 @@ config KUSER_HELPERS |
73 |
+ See Documentation/arm/kernel_user_helpers.txt for details. |
74 |
|
75 |
However, the fixed address nature of these helpers can be used |
76 |
- by ROP (return orientated programming) authors when creating |
77 |
@@ -5346,7 +5346,7 @@ index 4efe96a..60e8699 100644 |
78 |
#define SMP_CACHE_BYTES L1_CACHE_BYTES |
79 |
|
80 |
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h |
81 |
-index 08b6079..e94e6da 100644 |
82 |
+index 08b6079..8b554d2 100644 |
83 |
--- a/arch/mips/include/asm/atomic.h |
84 |
+++ b/arch/mips/include/asm/atomic.h |
85 |
@@ -21,15 +21,39 @@ |
86 |
@@ -5773,39 +5773,51 @@ index 08b6079..e94e6da 100644 |
87 |
|
88 |
/** |
89 |
* __atomic_add_unless - add unless the number is a given value |
90 |
-@@ -324,6 +666,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
91 |
+@@ -324,6 +666,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
92 |
|
93 |
#define atomic_dec_return(v) atomic_sub_return(1, (v)) |
94 |
#define atomic_inc_return(v) atomic_add_return(1, (v)) |
95 |
-+#define atomic_inc_return_unchecked(v) atomic_add_return_unchecked(1, (v)) |
96 |
++static __inline__ int atomic_inc_return_unchecked(atomic_unchecked_t *v) |
97 |
++{ |
98 |
++ return atomic_add_return_unchecked(1, v); |
99 |
++} |
100 |
|
101 |
/* |
102 |
* atomic_sub_and_test - subtract value from variable and test result |
103 |
-@@ -345,6 +688,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
104 |
+@@ -345,6 +691,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
105 |
* other cases. |
106 |
*/ |
107 |
#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) |
108 |
-+#define atomic_inc_and_test_unchecked(v) (atomic_add_return_unchecked(1, (v)) == 0) |
109 |
++static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v) |
110 |
++{ |
111 |
++ return atomic_add_return_unchecked(1, v) == 0; |
112 |
++} |
113 |
|
114 |
/* |
115 |
* atomic_dec_and_test - decrement by 1 and test |
116 |
-@@ -369,6 +713,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
117 |
+@@ -369,6 +719,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
118 |
* Atomically increments @v by 1. |
119 |
*/ |
120 |
#define atomic_inc(v) atomic_add(1, (v)) |
121 |
-+#define atomic_inc_unchecked(v) atomic_add_unchecked(1, (v)) |
122 |
++static __inline__ void atomic_inc_unchecked(atomic_unchecked_t *v) |
123 |
++{ |
124 |
++ atomic_add_unchecked(1, v); |
125 |
++} |
126 |
|
127 |
/* |
128 |
* atomic_dec - decrement and test |
129 |
-@@ -377,6 +722,7 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
130 |
+@@ -377,6 +731,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
131 |
* Atomically decrements @v by 1. |
132 |
*/ |
133 |
#define atomic_dec(v) atomic_sub(1, (v)) |
134 |
-+#define atomic_dec_unchecked(v) atomic_sub_return_unchecked(1, (v)) |
135 |
++static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v) |
136 |
++{ |
137 |
++ atomic_sub_unchecked(1, v); |
138 |
++} |
139 |
|
140 |
/* |
141 |
* atomic_add_negative - add and test if negative |
142 |
-@@ -398,14 +744,30 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
143 |
+@@ -398,14 +756,30 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
144 |
* @v: pointer of type atomic64_t |
145 |
* |
146 |
*/ |
147 |
@@ -5838,7 +5850,7 @@ index 08b6079..e94e6da 100644 |
148 |
|
149 |
/* |
150 |
* atomic64_add - add integer to atomic variable |
151 |
-@@ -414,7 +776,66 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
152 |
+@@ -414,7 +788,66 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
153 |
* |
154 |
* Atomically adds @i to @v. |
155 |
*/ |
156 |
@@ -5906,7 +5918,7 @@ index 08b6079..e94e6da 100644 |
157 |
{ |
158 |
if (kernel_uses_llsc && R10000_LLSC_WAR) { |
159 |
long temp; |
160 |
-@@ -457,7 +878,67 @@ static __inline__ void atomic64_add(long i, atomic64_t * v) |
161 |
+@@ -457,7 +890,67 @@ static __inline__ void atomic64_add(long i, atomic64_t * v) |
162 |
* |
163 |
* Atomically subtracts @i from @v. |
164 |
*/ |
165 |
@@ -5975,7 +5987,7 @@ index 08b6079..e94e6da 100644 |
166 |
{ |
167 |
if (kernel_uses_llsc && R10000_LLSC_WAR) { |
168 |
long temp; |
169 |
-@@ -496,7 +977,93 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v) |
170 |
+@@ -496,7 +989,93 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v) |
171 |
/* |
172 |
* Same as above, but return the result value |
173 |
*/ |
174 |
@@ -6070,7 +6082,7 @@ index 08b6079..e94e6da 100644 |
175 |
{ |
176 |
long result; |
177 |
|
178 |
-@@ -546,7 +1113,97 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v) |
179 |
+@@ -546,7 +1125,97 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v) |
180 |
return result; |
181 |
} |
182 |
|
183 |
@@ -6169,7 +6181,7 @@ index 08b6079..e94e6da 100644 |
184 |
{ |
185 |
long result; |
186 |
|
187 |
-@@ -605,7 +1262,7 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v) |
188 |
+@@ -605,7 +1274,7 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v) |
189 |
* Atomically test @v and subtract @i if @v is greater or equal than @i. |
190 |
* The function returns the old value of @v minus @i. |
191 |
*/ |
192 |
@@ -6178,7 +6190,7 @@ index 08b6079..e94e6da 100644 |
193 |
{ |
194 |
long result; |
195 |
|
196 |
-@@ -662,9 +1319,26 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) |
197 |
+@@ -662,9 +1331,26 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) |
198 |
return result; |
199 |
} |
200 |
|
201 |
@@ -6208,7 +6220,7 @@ index 08b6079..e94e6da 100644 |
202 |
|
203 |
/** |
204 |
* atomic64_add_unless - add unless the number is a given value |
205 |
-@@ -694,6 +1368,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
206 |
+@@ -694,6 +1380,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
207 |
|
208 |
#define atomic64_dec_return(v) atomic64_sub_return(1, (v)) |
209 |
#define atomic64_inc_return(v) atomic64_add_return(1, (v)) |
210 |
@@ -6216,7 +6228,7 @@ index 08b6079..e94e6da 100644 |
211 |
|
212 |
/* |
213 |
* atomic64_sub_and_test - subtract value from variable and test result |
214 |
-@@ -715,6 +1390,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
215 |
+@@ -715,6 +1402,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
216 |
* other cases. |
217 |
*/ |
218 |
#define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0) |
219 |
@@ -6224,7 +6236,7 @@ index 08b6079..e94e6da 100644 |
220 |
|
221 |
/* |
222 |
* atomic64_dec_and_test - decrement by 1 and test |
223 |
-@@ -739,6 +1415,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
224 |
+@@ -739,6 +1427,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
225 |
* Atomically increments @v by 1. |
226 |
*/ |
227 |
#define atomic64_inc(v) atomic64_add(1, (v)) |
228 |
@@ -6232,7 +6244,7 @@ index 08b6079..e94e6da 100644 |
229 |
|
230 |
/* |
231 |
* atomic64_dec - decrement and test |
232 |
-@@ -747,6 +1424,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
233 |
+@@ -747,6 +1436,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
234 |
* Atomically decrements @v by 1. |
235 |
*/ |
236 |
#define atomic64_dec(v) atomic64_sub(1, (v)) |
237 |
@@ -25624,7 +25636,7 @@ index 0000000..5877189 |
238 |
+ return arch_get_unmapped_area(filp, addr0, len, pgoff, flags); |
239 |
+} |
240 |
diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c |
241 |
-index 48f8375..ace2781 100644 |
242 |
+index 30277e2..5664a29 100644 |
243 |
--- a/arch/x86/kernel/sys_x86_64.c |
244 |
+++ b/arch/x86/kernel/sys_x86_64.c |
245 |
@@ -81,8 +81,8 @@ out: |
246 |
@@ -25642,8 +25654,8 @@ index 48f8375..ace2781 100644 |
247 |
*begin = new_begin; |
248 |
} |
249 |
} else { |
250 |
-- *begin = mmap_legacy_base(); |
251 |
-+ *begin = mm->mmap_base; |
252 |
+- *begin = current->mm->mmap_legacy_base; |
253 |
++ *begin = mm->mmap_legacy_base; |
254 |
*end = TASK_SIZE; |
255 |
} |
256 |
} |
257 |
@@ -31458,7 +31470,7 @@ index d87dd6d..bf3fa66 100644 |
258 |
|
259 |
pte = kmemcheck_pte_lookup(address); |
260 |
diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c |
261 |
-index c1af323..4758dad 100644 |
262 |
+index 5c1ae28..45f4ac9 100644 |
263 |
--- a/arch/x86/mm/mmap.c |
264 |
+++ b/arch/x86/mm/mmap.c |
265 |
@@ -52,7 +52,7 @@ static unsigned int stack_maxrandom_size(void) |
266 |
@@ -31498,8 +31510,8 @@ index c1af323..4758dad 100644 |
267 |
* Bottom-up (legacy) layout on X86_32 did not support randomization, X86_64 |
268 |
* does, but not when emulating X86_32 |
269 |
*/ |
270 |
--unsigned long mmap_legacy_base(void) |
271 |
-+unsigned long mmap_legacy_base(struct mm_struct *mm) |
272 |
+-static unsigned long mmap_legacy_base(void) |
273 |
++static unsigned long mmap_legacy_base(struct mm_struct *mm) |
274 |
{ |
275 |
- if (mmap_is_ia32()) |
276 |
+ if (mmap_is_ia32()) { |
277 |
@@ -31516,32 +31528,24 @@ index c1af323..4758dad 100644 |
278 |
return TASK_UNMAPPED_BASE + mmap_rnd(); |
279 |
} |
280 |
|
281 |
-@@ -113,11 +126,23 @@ unsigned long mmap_legacy_base(void) |
282 |
+@@ -112,8 +125,15 @@ static unsigned long mmap_legacy_base(void) |
283 |
+ */ |
284 |
void arch_pick_mmap_layout(struct mm_struct *mm) |
285 |
{ |
286 |
- if (mmap_is_legacy()) { |
287 |
-- mm->mmap_base = mmap_legacy_base(); |
288 |
-+ mm->mmap_base = mmap_legacy_base(mm); |
289 |
+- mm->mmap_legacy_base = mmap_legacy_base(); |
290 |
+- mm->mmap_base = mmap_base(); |
291 |
++ mm->mmap_legacy_base = mmap_legacy_base(mm); |
292 |
++ mm->mmap_base = mmap_base(mm); |
293 |
+ |
294 |
+#ifdef CONFIG_PAX_RANDMMAP |
295 |
-+ if (mm->pax_flags & MF_PAX_RANDMMAP) |
296 |
-+ mm->mmap_base += mm->delta_mmap; |
297 |
-+#endif |
298 |
-+ |
299 |
- mm->get_unmapped_area = arch_get_unmapped_area; |
300 |
- mm->unmap_area = arch_unmap_area; |
301 |
- } else { |
302 |
-- mm->mmap_base = mmap_base(); |
303 |
-+ mm->mmap_base = mmap_base(mm); |
304 |
-+ |
305 |
-+#ifdef CONFIG_PAX_RANDMMAP |
306 |
-+ if (mm->pax_flags & MF_PAX_RANDMMAP) |
307 |
-+ mm->mmap_base -= mm->delta_mmap + mm->delta_stack; |
308 |
++ if (mm->pax_flags & MF_PAX_RANDMMAP) { |
309 |
++ mm->mmap_legacy_base += mm->delta_mmap; |
310 |
++ mm->mmap_base -= mm->delta_mmap + mm->delta_stack; |
311 |
++ } |
312 |
+#endif |
313 |
-+ |
314 |
- mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
315 |
- mm->unmap_area = arch_unmap_area_topdown; |
316 |
- } |
317 |
+ |
318 |
+ if (mmap_is_legacy()) { |
319 |
+ mm->mmap_base = mm->mmap_legacy_base; |
320 |
diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c |
321 |
index dc0b727..f612039 100644 |
322 |
--- a/arch/x86/mm/mmio-mod.c |
323 |
@@ -34174,7 +34178,7 @@ index fdc3ba2..3daee39 100644 |
324 |
.alloc_pud = xen_alloc_pmd_init, |
325 |
.release_pud = xen_release_pmd_init, |
326 |
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c |
327 |
-index d99cae8..18401e1 100644 |
328 |
+index a1e58e1..9392ad8 100644 |
329 |
--- a/arch/x86/xen/smp.c |
330 |
+++ b/arch/x86/xen/smp.c |
331 |
@@ -240,11 +240,6 @@ static void __init xen_smp_prepare_boot_cpu(void) |
332 |
@@ -41619,6 +41623,19 @@ index 0003992..854bbce 100644 |
333 |
closure_set_ip(cl); |
334 |
cl->fn = fn; |
335 |
cl->wq = wq; |
336 |
+diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c |
337 |
+index b4713ce..b30139b 100644 |
338 |
+--- a/drivers/md/bcache/super.c |
339 |
++++ b/drivers/md/bcache/super.c |
340 |
+@@ -1603,7 +1603,7 @@ err_unlock_gc: |
341 |
+ err: |
342 |
+ closure_sync(&op.cl); |
343 |
+ /* XXX: test this, it's broken */ |
344 |
+- bch_cache_set_error(c, err); |
345 |
++ bch_cache_set_error(c, "%s", err); |
346 |
+ } |
347 |
+ |
348 |
+ static bool can_attach_cache(struct cache *ca, struct cache_set *c) |
349 |
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c |
350 |
index 5a2c754..0fa55db 100644 |
351 |
--- a/drivers/md/bitmap.c |
352 |
@@ -44228,22 +44245,6 @@ index ae30343..a117806 100644 |
353 |
|
354 |
struct ath_nf_limits { |
355 |
s16 max; |
356 |
-diff --git a/drivers/net/wireless/hostap/hostap_ioctl.c b/drivers/net/wireless/hostap/hostap_ioctl.c |
357 |
-index ac07473..e509030 100644 |
358 |
---- a/drivers/net/wireless/hostap/hostap_ioctl.c |
359 |
-+++ b/drivers/net/wireless/hostap/hostap_ioctl.c |
360 |
-@@ -523,9 +523,9 @@ static int prism2_ioctl_giwaplist(struct net_device *dev, |
361 |
- |
362 |
- data->length = prism2_ap_get_sta_qual(local, addr, qual, IW_MAX_AP, 1); |
363 |
- |
364 |
-- memcpy(extra, &addr, sizeof(struct sockaddr) * data->length); |
365 |
-+ memcpy(extra, addr, sizeof(struct sockaddr) * data->length); |
366 |
- data->flags = 1; /* has quality information */ |
367 |
-- memcpy(extra + sizeof(struct sockaddr) * data->length, &qual, |
368 |
-+ memcpy(extra + sizeof(struct sockaddr) * data->length, qual, |
369 |
- sizeof(struct iw_quality) * data->length); |
370 |
- |
371 |
- kfree(addr); |
372 |
diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c |
373 |
index b37a582..680835d 100644 |
374 |
--- a/drivers/net/wireless/iwlegacy/3945-mac.c |
375 |
@@ -44395,8 +44396,29 @@ index d532948..e0d8bb1 100644 |
376 |
|
377 |
memset(buf, 0, sizeof(buf)); |
378 |
buf_size = min(count, sizeof(buf) - 1); |
379 |
+diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c |
380 |
+index a8afc7b..de058b2 100644 |
381 |
+--- a/drivers/net/wireless/iwlwifi/dvm/main.c |
382 |
++++ b/drivers/net/wireless/iwlwifi/dvm/main.c |
383 |
+@@ -1189,7 +1189,7 @@ static void iwl_option_config(struct iwl_priv *priv) |
384 |
+ static int iwl_eeprom_init_hw_params(struct iwl_priv *priv) |
385 |
+ { |
386 |
+ struct iwl_nvm_data *data = priv->nvm_data; |
387 |
+- char *debug_msg; |
388 |
++ static const char debug_msg[] = "Device SKU: 24GHz %s %s, 52GHz %s %s, 11.n %s %s\n"; |
389 |
+ |
390 |
+ if (data->sku_cap_11n_enable && |
391 |
+ !priv->cfg->ht_params) { |
392 |
+@@ -1203,7 +1203,6 @@ static int iwl_eeprom_init_hw_params(struct iwl_priv *priv) |
393 |
+ return -EINVAL; |
394 |
+ } |
395 |
+ |
396 |
+- debug_msg = "Device SKU: 24GHz %s %s, 52GHz %s %s, 11.n %s %s\n"; |
397 |
+ IWL_DEBUG_INFO(priv, debug_msg, |
398 |
+ data->sku_cap_band_24GHz_enable ? "" : "NOT", "enabled", |
399 |
+ data->sku_cap_band_52GHz_enable ? "" : "NOT", "enabled", |
400 |
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c |
401 |
-index 50ba0a4..29424e7 100644 |
402 |
+index aeb70e1..d7b5bb5 100644 |
403 |
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c |
404 |
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c |
405 |
@@ -1329,7 +1329,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file, |
406 |
@@ -44891,6 +44913,19 @@ index 7d72c5e..edce02c 100644 |
407 |
char name[SLOT_NAME_SIZE]; |
408 |
int retval = -ENOMEM; |
409 |
|
410 |
+diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c |
411 |
+index 5127f3f..cc115f7 100644 |
412 |
+--- a/drivers/pci/hotplug/pciehp_hpc.c |
413 |
++++ b/drivers/pci/hotplug/pciehp_hpc.c |
414 |
+@@ -780,7 +780,7 @@ static int pcie_init_slot(struct controller *ctrl) |
415 |
+ return -ENOMEM; |
416 |
+ |
417 |
+ snprintf(name, sizeof(name), "pciehp-%u", PSN(ctrl)); |
418 |
+- slot->wq = alloc_workqueue(name, 0, 0); |
419 |
++ slot->wq = alloc_workqueue("%s", 0, 0, name); |
420 |
+ if (!slot->wq) |
421 |
+ goto abort; |
422 |
+ |
423 |
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c |
424 |
index 5b4a9d9..cd5ac1f 100644 |
425 |
--- a/drivers/pci/pci-sysfs.c |
426 |
@@ -45169,6 +45204,19 @@ index 54d31c0..3f896d3 100644 |
427 |
|
428 |
/* |
429 |
* Polling driver |
430 |
+diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c |
431 |
+index e4ac38a..b13344c 100644 |
432 |
+--- a/drivers/platform/x86/wmi.c |
433 |
++++ b/drivers/platform/x86/wmi.c |
434 |
+@@ -743,7 +743,7 @@ static int wmi_create_device(const struct guid_block *gblock, |
435 |
+ wblock->dev.class = &wmi_class; |
436 |
+ |
437 |
+ wmi_gtoa(gblock->guid, guid_string); |
438 |
+- dev_set_name(&wblock->dev, guid_string); |
439 |
++ dev_set_name(&wblock->dev, "%s", guid_string); |
440 |
+ |
441 |
+ dev_set_drvdata(&wblock->dev, wblock); |
442 |
+ |
443 |
diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c |
444 |
index 769d265..a3a05ca 100644 |
445 |
--- a/drivers/pnp/pnpbios/bioscalls.c |
446 |
@@ -46375,7 +46423,7 @@ index f379c7f..e8fc69c 100644 |
447 |
|
448 |
transport_setup_device(&rport->dev); |
449 |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c |
450 |
-index 610417e..1544fa9 100644 |
451 |
+index 610417e..167c46c 100644 |
452 |
--- a/drivers/scsi/sd.c |
453 |
+++ b/drivers/scsi/sd.c |
454 |
@@ -2928,7 +2928,7 @@ static int sd_probe(struct device *dev) |
455 |
@@ -46387,6 +46435,15 @@ index 610417e..1544fa9 100644 |
456 |
|
457 |
if (!sdp->request_queue->rq_timeout) { |
458 |
if (sdp->type != TYPE_MOD) |
459 |
+@@ -2941,7 +2941,7 @@ static int sd_probe(struct device *dev) |
460 |
+ device_initialize(&sdkp->dev); |
461 |
+ sdkp->dev.parent = dev; |
462 |
+ sdkp->dev.class = &sd_disk_class; |
463 |
+- dev_set_name(&sdkp->dev, dev_name(dev)); |
464 |
++ dev_set_name(&sdkp->dev, "%s", dev_name(dev)); |
465 |
+ |
466 |
+ if (device_add(&sdkp->dev)) |
467 |
+ goto out_free_index; |
468 |
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c |
469 |
index df5e961..df6b97f 100644 |
470 |
--- a/drivers/scsi/sg.c |
471 |
@@ -48356,6 +48413,28 @@ index 028fc83..65bb105 100644 |
472 |
} |
473 |
|
474 |
/* |
475 |
+diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c |
476 |
+index 6d78736..65be90e 100644 |
477 |
+--- a/drivers/vfio/vfio.c |
478 |
++++ b/drivers/vfio/vfio.c |
479 |
+@@ -486,7 +486,7 @@ static int vfio_group_nb_add_dev(struct vfio_group *group, struct device *dev) |
480 |
+ return 0; |
481 |
+ |
482 |
+ /* TODO Prevent device auto probing */ |
483 |
+- WARN("Device %s added to live group %d!\n", dev_name(dev), |
484 |
++ WARN(1, "Device %s added to live group %d!\n", dev_name(dev), |
485 |
+ iommu_group_id(group->iommu_group)); |
486 |
+ |
487 |
+ return 0; |
488 |
+@@ -506,7 +506,7 @@ static int vfio_group_nb_del_dev(struct vfio_group *group, struct device *dev) |
489 |
+ if (likely(!device)) |
490 |
+ return 0; |
491 |
+ |
492 |
+- WARN("Device %s removed from live group %d!\n", dev_name(dev), |
493 |
++ WARN(1, "Device %s removed from live group %d!\n", dev_name(dev), |
494 |
+ iommu_group_id(group->iommu_group)); |
495 |
+ |
496 |
+ vfio_device_put(device); |
497 |
diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c |
498 |
index 5174eba..86e764a 100644 |
499 |
--- a/drivers/vhost/vringh.c |
500 |
@@ -51745,19 +51824,6 @@ index 88714ae..16c2e11 100644 |
501 |
|
502 |
|
503 |
static inline u32 get_pll_internal_frequency(u32 ref_freq, |
504 |
-diff --git a/drivers/xen/events.c b/drivers/xen/events.c |
505 |
-index 6a6bbe4..c733886 100644 |
506 |
---- a/drivers/xen/events.c |
507 |
-+++ b/drivers/xen/events.c |
508 |
-@@ -346,7 +346,7 @@ static void init_evtchn_cpu_bindings(void) |
509 |
- |
510 |
- for_each_possible_cpu(i) |
511 |
- memset(per_cpu(cpu_evtchn_mask, i), |
512 |
-- (i == 0) ? ~0 : 0, sizeof(*per_cpu(cpu_evtchn_mask, i))); |
513 |
-+ (i == 0) ? ~0 : 0, NR_EVENT_CHANNELS/8); |
514 |
- } |
515 |
- |
516 |
- static inline void clear_evtchn(int port) |
517 |
diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c |
518 |
index fef20db..d28b1ab 100644 |
519 |
--- a/drivers/xen/xenfs/xenstored.c |
520 |
@@ -53024,38 +53090,10 @@ index d50bbe5..af3b649 100644 |
521 |
goto err; |
522 |
} |
523 |
diff --git a/fs/bio.c b/fs/bio.c |
524 |
-index 94bbc04..599e3cf 100644 |
525 |
+index c5eae72..599e3cf 100644 |
526 |
--- a/fs/bio.c |
527 |
+++ b/fs/bio.c |
528 |
-@@ -1045,12 +1045,22 @@ static int __bio_copy_iov(struct bio *bio, struct bio_vec *iovecs, |
529 |
- int bio_uncopy_user(struct bio *bio) |
530 |
- { |
531 |
- struct bio_map_data *bmd = bio->bi_private; |
532 |
-- int ret = 0; |
533 |
-+ struct bio_vec *bvec; |
534 |
-+ int ret = 0, i; |
535 |
- |
536 |
-- if (!bio_flagged(bio, BIO_NULL_MAPPED)) |
537 |
-- ret = __bio_copy_iov(bio, bmd->iovecs, bmd->sgvecs, |
538 |
-- bmd->nr_sgvecs, bio_data_dir(bio) == READ, |
539 |
-- 0, bmd->is_our_pages); |
540 |
-+ if (!bio_flagged(bio, BIO_NULL_MAPPED)) { |
541 |
-+ /* |
542 |
-+ * if we're in a workqueue, the request is orphaned, so |
543 |
-+ * don't copy into a random user address space, just free. |
544 |
-+ */ |
545 |
-+ if (current->mm) |
546 |
-+ ret = __bio_copy_iov(bio, bmd->iovecs, bmd->sgvecs, |
547 |
-+ bmd->nr_sgvecs, bio_data_dir(bio) == READ, |
548 |
-+ 0, bmd->is_our_pages); |
549 |
-+ else if (bmd->is_our_pages) |
550 |
-+ bio_for_each_segment_all(bvec, bio, i) |
551 |
-+ __free_page(bvec->bv_page); |
552 |
-+ } |
553 |
- bio_free_map_data(bmd); |
554 |
- bio_put(bio); |
555 |
- return ret; |
556 |
-@@ -1096,7 +1106,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, |
557 |
+@@ -1106,7 +1106,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, |
558 |
/* |
559 |
* Overflow, abort |
560 |
*/ |
561 |
@@ -53064,7 +53102,7 @@ index 94bbc04..599e3cf 100644 |
562 |
return ERR_PTR(-EINVAL); |
563 |
|
564 |
nr_pages += end - start; |
565 |
-@@ -1230,7 +1240,7 @@ static struct bio *__bio_map_user_iov(struct request_queue *q, |
566 |
+@@ -1240,7 +1240,7 @@ static struct bio *__bio_map_user_iov(struct request_queue *q, |
567 |
/* |
568 |
* Overflow, abort |
569 |
*/ |
570 |
@@ -53073,7 +53111,7 @@ index 94bbc04..599e3cf 100644 |
571 |
return ERR_PTR(-EINVAL); |
572 |
|
573 |
nr_pages += end - start; |
574 |
-@@ -1492,7 +1502,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err) |
575 |
+@@ -1502,7 +1502,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err) |
576 |
const int read = bio_data_dir(bio) == READ; |
577 |
struct bio_map_data *bmd = bio->bi_private; |
578 |
int i; |
579 |
@@ -57666,7 +57704,7 @@ index 9ed9361..2b72db1 100644 |
580 |
out: |
581 |
return len; |
582 |
diff --git a/fs/namespace.c b/fs/namespace.c |
583 |
-index 7b1ca9b..6faeccf 100644 |
584 |
+index a45ba4f..e7dc489 100644 |
585 |
--- a/fs/namespace.c |
586 |
+++ b/fs/namespace.c |
587 |
@@ -1265,6 +1265,9 @@ static int do_umount(struct mount *mnt, int flags) |
588 |
@@ -58095,6 +58133,37 @@ index c5670b8..2b43d9b 100644 |
589 |
|
590 |
-const struct inode_operations ntfs_empty_inode_ops = {}; |
591 |
+const struct inode_operations ntfs_empty_inode_ops __read_only; |
592 |
+diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c |
593 |
+index 82650d5..db37dcf 100644 |
594 |
+--- a/fs/ntfs/super.c |
595 |
++++ b/fs/ntfs/super.c |
596 |
+@@ -685,7 +685,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb, |
597 |
+ if (!silent) |
598 |
+ ntfs_error(sb, "Primary boot sector is invalid."); |
599 |
+ } else if (!silent) |
600 |
+- ntfs_error(sb, read_err_str, "primary"); |
601 |
++ ntfs_error(sb, read_err_str, "%s", "primary"); |
602 |
+ if (!(NTFS_SB(sb)->on_errors & ON_ERRORS_RECOVER)) { |
603 |
+ if (bh_primary) |
604 |
+ brelse(bh_primary); |
605 |
+@@ -701,7 +701,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb, |
606 |
+ goto hotfix_primary_boot_sector; |
607 |
+ brelse(bh_backup); |
608 |
+ } else if (!silent) |
609 |
+- ntfs_error(sb, read_err_str, "backup"); |
610 |
++ ntfs_error(sb, read_err_str, "%s", "backup"); |
611 |
+ /* Try to read NT3.51- backup boot sector. */ |
612 |
+ if ((bh_backup = sb_bread(sb, nr_blocks >> 1))) { |
613 |
+ if (is_boot_sector_ntfs(sb, (NTFS_BOOT_SECTOR*) |
614 |
+@@ -712,7 +712,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb, |
615 |
+ "sector."); |
616 |
+ brelse(bh_backup); |
617 |
+ } else if (!silent) |
618 |
+- ntfs_error(sb, read_err_str, "backup"); |
619 |
++ ntfs_error(sb, read_err_str, "%s", "backup"); |
620 |
+ /* We failed. Cleanup and return. */ |
621 |
+ if (bh_primary) |
622 |
+ brelse(bh_primary); |
623 |
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c |
624 |
index 20dfec7..e238cb7 100644 |
625 |
--- a/fs/ocfs2/aops.c |
626 |
@@ -70750,10 +70819,10 @@ index 0000000..4030d57 |
627 |
+} |
628 |
diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c |
629 |
new file mode 100644 |
630 |
-index 0000000..301c665 |
631 |
+index 0000000..a9e378f |
632 |
--- /dev/null |
633 |
+++ b/grsecurity/grsec_sysctl.c |
634 |
-@@ -0,0 +1,471 @@ |
635 |
+@@ -0,0 +1,472 @@ |
636 |
+#include <linux/kernel.h> |
637 |
+#include <linux/sched.h> |
638 |
+#include <linux/sysctl.h> |
639 |
@@ -70774,11 +70843,12 @@ index 0000000..301c665 |
640 |
+ return 0; |
641 |
+} |
642 |
+ |
643 |
-+#ifdef CONFIG_GRKERNSEC_ROFS |
644 |
-+static int __maybe_unused one = 1; |
645 |
++#if defined(CONFIG_GRKERNSEC_ROFS) || defined(CONFIG_GRKERNSEC_DENYUSB) |
646 |
++static int __maybe_unused __read_only one = 1; |
647 |
+#endif |
648 |
+ |
649 |
-+#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS) |
650 |
++#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS) || \ |
651 |
++ defined(CONFIG_GRKERNSEC_DENYUSB) |
652 |
+struct ctl_table grsecurity_table[] = { |
653 |
+#ifdef CONFIG_GRKERNSEC_SYSCTL |
654 |
+#ifdef CONFIG_GRKERNSEC_SYSCTL_DISTRO |
655 |
@@ -75150,7 +75220,7 @@ index e0c8528..bcf0c29 100644 |
656 |
#endif /* __KERNEL__ */ |
657 |
#endif /* _LINUX_MM_H */ |
658 |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h |
659 |
-index ace9a5f..81bdb59 100644 |
660 |
+index 4a189ba..04101d6 100644 |
661 |
--- a/include/linux/mm_types.h |
662 |
+++ b/include/linux/mm_types.h |
663 |
@@ -289,6 +289,8 @@ struct vm_area_struct { |
664 |
@@ -75162,7 +75232,7 @@ index ace9a5f..81bdb59 100644 |
665 |
}; |
666 |
|
667 |
struct core_thread { |
668 |
-@@ -437,6 +439,24 @@ struct mm_struct { |
669 |
+@@ -438,6 +440,24 @@ struct mm_struct { |
670 |
int first_nid; |
671 |
#endif |
672 |
struct uprobes_state uprobes_state; |
673 |
@@ -76098,7 +76168,7 @@ index 6dacb93..6174423 100644 |
674 |
static inline void anon_vma_merge(struct vm_area_struct *vma, |
675 |
struct vm_area_struct *next) |
676 |
diff --git a/include/linux/sched.h b/include/linux/sched.h |
677 |
-index 3aeb14b..73816a6 100644 |
678 |
+index 178a8d9..918ea01 100644 |
679 |
--- a/include/linux/sched.h |
680 |
+++ b/include/linux/sched.h |
681 |
@@ -62,6 +62,7 @@ struct bio_list; |
682 |
@@ -76118,11 +76188,10 @@ index 3aeb14b..73816a6 100644 |
683 |
extern signed long schedule_timeout_interruptible(signed long timeout); |
684 |
extern signed long schedule_timeout_killable(signed long timeout); |
685 |
extern signed long schedule_timeout_uninterruptible(signed long timeout); |
686 |
-@@ -314,7 +315,19 @@ struct nsproxy; |
687 |
+@@ -314,6 +315,18 @@ struct nsproxy; |
688 |
struct user_namespace; |
689 |
|
690 |
#ifdef CONFIG_MMU |
691 |
--extern unsigned long mmap_legacy_base(void); |
692 |
+ |
693 |
+#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK |
694 |
+extern unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags); |
695 |
@@ -76135,11 +76204,10 @@ index 3aeb14b..73816a6 100644 |
696 |
+ |
697 |
+extern bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset); |
698 |
+extern unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset); |
699 |
-+extern unsigned long mmap_legacy_base(struct mm_struct *mm); |
700 |
extern void arch_pick_mmap_layout(struct mm_struct *mm); |
701 |
extern unsigned long |
702 |
arch_get_unmapped_area(struct file *, unsigned long, unsigned long, |
703 |
-@@ -592,6 +605,17 @@ struct signal_struct { |
704 |
+@@ -591,6 +604,17 @@ struct signal_struct { |
705 |
#ifdef CONFIG_TASKSTATS |
706 |
struct taskstats *stats; |
707 |
#endif |
708 |
@@ -76157,7 +76225,7 @@ index 3aeb14b..73816a6 100644 |
709 |
#ifdef CONFIG_AUDIT |
710 |
unsigned audit_tty; |
711 |
unsigned audit_tty_log_passwd; |
712 |
-@@ -672,6 +696,14 @@ struct user_struct { |
713 |
+@@ -671,6 +695,14 @@ struct user_struct { |
714 |
struct key *session_keyring; /* UID's default session keyring */ |
715 |
#endif |
716 |
|
717 |
@@ -76172,7 +76240,7 @@ index 3aeb14b..73816a6 100644 |
718 |
/* Hash table maintenance information */ |
719 |
struct hlist_node uidhash_node; |
720 |
kuid_t uid; |
721 |
-@@ -1159,8 +1191,8 @@ struct task_struct { |
722 |
+@@ -1158,8 +1190,8 @@ struct task_struct { |
723 |
struct list_head thread_group; |
724 |
|
725 |
struct completion *vfork_done; /* for vfork() */ |
726 |
@@ -76183,7 +76251,7 @@ index 3aeb14b..73816a6 100644 |
727 |
|
728 |
cputime_t utime, stime, utimescaled, stimescaled; |
729 |
cputime_t gtime; |
730 |
-@@ -1185,11 +1217,6 @@ struct task_struct { |
731 |
+@@ -1184,11 +1216,6 @@ struct task_struct { |
732 |
struct task_cputime cputime_expires; |
733 |
struct list_head cpu_timers[3]; |
734 |
|
735 |
@@ -76195,7 +76263,7 @@ index 3aeb14b..73816a6 100644 |
736 |
char comm[TASK_COMM_LEN]; /* executable name excluding path |
737 |
- access with [gs]et_task_comm (which lock |
738 |
it with task_lock()) |
739 |
-@@ -1206,6 +1233,10 @@ struct task_struct { |
740 |
+@@ -1205,6 +1232,10 @@ struct task_struct { |
741 |
#endif |
742 |
/* CPU-specific state of this task */ |
743 |
struct thread_struct thread; |
744 |
@@ -76206,7 +76274,7 @@ index 3aeb14b..73816a6 100644 |
745 |
/* filesystem information */ |
746 |
struct fs_struct *fs; |
747 |
/* open file information */ |
748 |
-@@ -1279,6 +1310,10 @@ struct task_struct { |
749 |
+@@ -1278,6 +1309,10 @@ struct task_struct { |
750 |
gfp_t lockdep_reclaim_gfp; |
751 |
#endif |
752 |
|
753 |
@@ -76217,7 +76285,7 @@ index 3aeb14b..73816a6 100644 |
754 |
/* journalling filesystem info */ |
755 |
void *journal_info; |
756 |
|
757 |
-@@ -1317,6 +1352,10 @@ struct task_struct { |
758 |
+@@ -1316,6 +1351,10 @@ struct task_struct { |
759 |
/* cg_list protected by css_set_lock and tsk->alloc_lock */ |
760 |
struct list_head cg_list; |
761 |
#endif |
762 |
@@ -76228,7 +76296,7 @@ index 3aeb14b..73816a6 100644 |
763 |
#ifdef CONFIG_FUTEX |
764 |
struct robust_list_head __user *robust_list; |
765 |
#ifdef CONFIG_COMPAT |
766 |
-@@ -1417,8 +1456,76 @@ struct task_struct { |
767 |
+@@ -1416,8 +1455,76 @@ struct task_struct { |
768 |
unsigned int sequential_io; |
769 |
unsigned int sequential_io_avg; |
770 |
#endif |
771 |
@@ -76305,7 +76373,7 @@ index 3aeb14b..73816a6 100644 |
772 |
/* Future-safe accessor for struct task_struct's cpus_allowed. */ |
773 |
#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) |
774 |
|
775 |
-@@ -1477,7 +1584,7 @@ struct pid_namespace; |
776 |
+@@ -1476,7 +1583,7 @@ struct pid_namespace; |
777 |
pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, |
778 |
struct pid_namespace *ns); |
779 |
|
780 |
@@ -76314,7 +76382,7 @@ index 3aeb14b..73816a6 100644 |
781 |
{ |
782 |
return tsk->pid; |
783 |
} |
784 |
-@@ -1920,7 +2027,9 @@ void yield(void); |
785 |
+@@ -1919,7 +2026,9 @@ void yield(void); |
786 |
extern struct exec_domain default_exec_domain; |
787 |
|
788 |
union thread_union { |
789 |
@@ -76324,7 +76392,7 @@ index 3aeb14b..73816a6 100644 |
790 |
unsigned long stack[THREAD_SIZE/sizeof(long)]; |
791 |
}; |
792 |
|
793 |
-@@ -1953,6 +2062,7 @@ extern struct pid_namespace init_pid_ns; |
794 |
+@@ -1952,6 +2061,7 @@ extern struct pid_namespace init_pid_ns; |
795 |
*/ |
796 |
|
797 |
extern struct task_struct *find_task_by_vpid(pid_t nr); |
798 |
@@ -76332,7 +76400,7 @@ index 3aeb14b..73816a6 100644 |
799 |
extern struct task_struct *find_task_by_pid_ns(pid_t nr, |
800 |
struct pid_namespace *ns); |
801 |
|
802 |
-@@ -2119,7 +2229,7 @@ extern void __cleanup_sighand(struct sighand_struct *); |
803 |
+@@ -2118,7 +2228,7 @@ extern void __cleanup_sighand(struct sighand_struct *); |
804 |
extern void exit_itimers(struct signal_struct *); |
805 |
extern void flush_itimer_signals(void); |
806 |
|
807 |
@@ -76341,7 +76409,7 @@ index 3aeb14b..73816a6 100644 |
808 |
|
809 |
extern int allow_signal(int); |
810 |
extern int disallow_signal(int); |
811 |
-@@ -2310,9 +2420,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p) |
812 |
+@@ -2309,9 +2419,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p) |
813 |
|
814 |
#endif |
815 |
|
816 |
@@ -77412,6 +77480,25 @@ index c586679..f06b389 100644 |
817 |
} |
818 |
|
819 |
static inline void __dec_zone_page_state(struct page *page, |
820 |
+diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h |
821 |
+index 623488f..44b5742 100644 |
822 |
+--- a/include/linux/workqueue.h |
823 |
++++ b/include/linux/workqueue.h |
824 |
+@@ -410,11 +410,11 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active, |
825 |
+ alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args) |
826 |
+ |
827 |
+ #define create_workqueue(name) \ |
828 |
+- alloc_workqueue((name), WQ_MEM_RECLAIM, 1) |
829 |
++ alloc_workqueue("%s", WQ_MEM_RECLAIM, 1, (name)) |
830 |
+ #define create_freezable_workqueue(name) \ |
831 |
+- alloc_workqueue((name), WQ_FREEZABLE | WQ_UNBOUND | WQ_MEM_RECLAIM, 1) |
832 |
++ alloc_workqueue("%s", WQ_FREEZABLE | WQ_UNBOUND | WQ_MEM_RECLAIM, 1, (name)) |
833 |
+ #define create_singlethread_workqueue(name) \ |
834 |
+- alloc_workqueue((name), WQ_UNBOUND | WQ_MEM_RECLAIM, 1) |
835 |
++ alloc_workqueue("%s", WQ_UNBOUND | WQ_MEM_RECLAIM, 1, (name)) |
836 |
+ |
837 |
+ extern void destroy_workqueue(struct workqueue_struct *wq); |
838 |
+ |
839 |
diff --git a/include/linux/xattr.h b/include/linux/xattr.h |
840 |
index fdbafc6..49dfe4f 100644 |
841 |
--- a/include/linux/xattr.h |
842 |
@@ -84555,10 +84642,10 @@ index b8b8560..75b1a09 100644 |
843 |
ret = -EIO; |
844 |
bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt, |
845 |
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c |
846 |
-index 6c508ff..ee55a13 100644 |
847 |
+index f23449d..b8cc3a1 100644 |
848 |
--- a/kernel/trace/ftrace.c |
849 |
+++ b/kernel/trace/ftrace.c |
850 |
-@@ -1915,12 +1915,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec) |
851 |
+@@ -1925,12 +1925,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec) |
852 |
if (unlikely(ftrace_disabled)) |
853 |
return 0; |
854 |
|
855 |
@@ -84578,7 +84665,7 @@ index 6c508ff..ee55a13 100644 |
856 |
} |
857 |
|
858 |
/* |
859 |
-@@ -3931,8 +3936,10 @@ static int ftrace_process_locs(struct module *mod, |
860 |
+@@ -3994,8 +3999,10 @@ static int ftrace_process_locs(struct module *mod, |
861 |
if (!count) |
862 |
return 0; |
863 |
|
864 |
@@ -84589,7 +84676,7 @@ index 6c508ff..ee55a13 100644 |
865 |
|
866 |
start_pg = ftrace_allocate_pages(count); |
867 |
if (!start_pg) |
868 |
-@@ -4655,8 +4662,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write, |
869 |
+@@ -4718,8 +4725,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write, |
870 |
#ifdef CONFIG_FUNCTION_GRAPH_TRACER |
871 |
|
872 |
static int ftrace_graph_active; |
873 |
@@ -84598,7 +84685,7 @@ index 6c508ff..ee55a13 100644 |
874 |
int ftrace_graph_entry_stub(struct ftrace_graph_ent *trace) |
875 |
{ |
876 |
return 0; |
877 |
-@@ -4800,6 +4805,10 @@ ftrace_suspend_notifier_call(struct notifier_block *bl, unsigned long state, |
878 |
+@@ -4863,6 +4868,10 @@ ftrace_suspend_notifier_call(struct notifier_block *bl, unsigned long state, |
879 |
return NOTIFY_DONE; |
880 |
} |
881 |
|
882 |
@@ -84609,7 +84696,7 @@ index 6c508ff..ee55a13 100644 |
883 |
int register_ftrace_graph(trace_func_graph_ret_t retfunc, |
884 |
trace_func_graph_ent_t entryfunc) |
885 |
{ |
886 |
-@@ -4813,7 +4822,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc, |
887 |
+@@ -4876,7 +4885,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc, |
888 |
goto out; |
889 |
} |
890 |
|
891 |
@@ -84896,10 +84983,10 @@ index e444ff8..438b8f4 100644 |
892 |
*data_page = bpage; |
893 |
|
894 |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c |
895 |
-index 06a5bce..53ad6e7 100644 |
896 |
+index 0582a01..310bed1 100644 |
897 |
--- a/kernel/trace/trace.c |
898 |
+++ b/kernel/trace/trace.c |
899 |
-@@ -3347,7 +3347,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set) |
900 |
+@@ -3327,7 +3327,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set) |
901 |
return 0; |
902 |
} |
903 |
|
904 |
@@ -84922,10 +85009,10 @@ index 51b4448..7be601f 100644 |
905 |
/* |
906 |
* Normal trace_printk() and friends allocates special buffers |
907 |
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c |
908 |
-index 6953263..2004e16 100644 |
909 |
+index 3d18aad..d1be0eb 100644 |
910 |
--- a/kernel/trace/trace_events.c |
911 |
+++ b/kernel/trace/trace_events.c |
912 |
-@@ -1748,10 +1748,6 @@ static LIST_HEAD(ftrace_module_file_list); |
913 |
+@@ -1794,10 +1794,6 @@ static LIST_HEAD(ftrace_module_file_list); |
914 |
struct ftrace_module_file_ops { |
915 |
struct list_head list; |
916 |
struct module *mod; |
917 |
@@ -84936,7 +85023,7 @@ index 6953263..2004e16 100644 |
918 |
}; |
919 |
|
920 |
static struct ftrace_module_file_ops * |
921 |
-@@ -1792,17 +1788,12 @@ trace_create_file_ops(struct module *mod) |
922 |
+@@ -1838,17 +1834,12 @@ trace_create_file_ops(struct module *mod) |
923 |
|
924 |
file_ops->mod = mod; |
925 |
|
926 |
@@ -84960,7 +85047,7 @@ index 6953263..2004e16 100644 |
927 |
|
928 |
list_add(&file_ops->list, &ftrace_module_file_list); |
929 |
|
930 |
-@@ -1895,8 +1886,8 @@ __trace_add_new_mod_event(struct ftrace_event_call *call, |
931 |
+@@ -1941,8 +1932,8 @@ __trace_add_new_mod_event(struct ftrace_event_call *call, |
932 |
struct ftrace_module_file_ops *file_ops) |
933 |
{ |
934 |
return __trace_add_new_event(call, tr, |
935 |
@@ -94239,7 +94326,7 @@ index 514e90f..56f22bf 100644 |
936 |
} |
937 |
|
938 |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c |
939 |
-index 8a7bfc4..4407cd0 100644 |
940 |
+index 8a7bfc4..be07e86 100644 |
941 |
--- a/net/mac80211/main.c |
942 |
+++ b/net/mac80211/main.c |
943 |
@@ -181,7 +181,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) |
944 |
@@ -94251,6 +94338,15 @@ index 8a7bfc4..4407cd0 100644 |
945 |
ret = drv_config(local, changed); |
946 |
/* |
947 |
* Goal: |
948 |
+@@ -921,7 +921,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) |
949 |
+ hw->queues = IEEE80211_MAX_QUEUES; |
950 |
+ |
951 |
+ local->workqueue = |
952 |
+- alloc_ordered_workqueue(wiphy_name(local->hw.wiphy), 0); |
953 |
++ alloc_ordered_workqueue("%s", 0, wiphy_name(local->hw.wiphy)); |
954 |
+ if (!local->workqueue) { |
955 |
+ result = -ENOMEM; |
956 |
+ goto fail_workqueue; |
957 |
diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c |
958 |
index 3401262..d5cd68d 100644 |
959 |
--- a/net/mac80211/pm.c |
960 |
@@ -99456,6 +99552,27 @@ index 7d8803a..559f8d0 100644 |
961 |
|
962 |
list_add(&s->list, &cs4297a_devs); |
963 |
|
964 |
+diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c |
965 |
+index 55108b5..d973e11 100644 |
966 |
+--- a/sound/pci/hda/hda_codec.c |
967 |
++++ b/sound/pci/hda/hda_codec.c |
968 |
+@@ -916,14 +916,10 @@ find_codec_preset(struct hda_codec *codec) |
969 |
+ mutex_unlock(&preset_mutex); |
970 |
+ |
971 |
+ if (mod_requested < HDA_MODREQ_MAX_COUNT) { |
972 |
+- char name[32]; |
973 |
+ if (!mod_requested) |
974 |
+- snprintf(name, sizeof(name), "snd-hda-codec-id:%08x", |
975 |
+- codec->vendor_id); |
976 |
++ request_module("snd-hda-codec-id:%08x", codec->vendor_id); |
977 |
+ else |
978 |
+- snprintf(name, sizeof(name), "snd-hda-codec-id:%04x*", |
979 |
+- (codec->vendor_id >> 16) & 0xffff); |
980 |
+- request_module(name); |
981 |
++ request_module("snd-hda-codec-id:%04x*", (codec->vendor_id >> 16) & 0xffff); |
982 |
+ mod_requested++; |
983 |
+ goto again; |
984 |
+ } |
985 |
diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h |
986 |
index 4631a23..001ae57 100644 |
987 |
--- a/sound/pci/ymfpci/ymfpci.h |
988 |
|
989 |
diff --git a/3.10.9/4425_grsec_remove_EI_PAX.patch b/3.10.10/4425_grsec_remove_EI_PAX.patch |
990 |
similarity index 100% |
991 |
rename from 3.10.9/4425_grsec_remove_EI_PAX.patch |
992 |
rename to 3.10.10/4425_grsec_remove_EI_PAX.patch |
993 |
|
994 |
diff --git a/3.10.9/4427_force_XATTR_PAX_tmpfs.patch b/3.10.10/4427_force_XATTR_PAX_tmpfs.patch |
995 |
similarity index 100% |
996 |
rename from 3.10.9/4427_force_XATTR_PAX_tmpfs.patch |
997 |
rename to 3.10.10/4427_force_XATTR_PAX_tmpfs.patch |
998 |
|
999 |
diff --git a/3.10.9/4430_grsec-remove-localversion-grsec.patch b/3.10.10/4430_grsec-remove-localversion-grsec.patch |
1000 |
similarity index 100% |
1001 |
rename from 3.10.9/4430_grsec-remove-localversion-grsec.patch |
1002 |
rename to 3.10.10/4430_grsec-remove-localversion-grsec.patch |
1003 |
|
1004 |
diff --git a/3.10.9/4435_grsec-mute-warnings.patch b/3.10.10/4435_grsec-mute-warnings.patch |
1005 |
similarity index 100% |
1006 |
rename from 3.10.9/4435_grsec-mute-warnings.patch |
1007 |
rename to 3.10.10/4435_grsec-mute-warnings.patch |
1008 |
|
1009 |
diff --git a/3.10.9/4440_grsec-remove-protected-paths.patch b/3.10.10/4440_grsec-remove-protected-paths.patch |
1010 |
similarity index 100% |
1011 |
rename from 3.10.9/4440_grsec-remove-protected-paths.patch |
1012 |
rename to 3.10.10/4440_grsec-remove-protected-paths.patch |
1013 |
|
1014 |
diff --git a/3.10.9/4450_grsec-kconfig-default-gids.patch b/3.10.10/4450_grsec-kconfig-default-gids.patch |
1015 |
similarity index 100% |
1016 |
rename from 3.10.9/4450_grsec-kconfig-default-gids.patch |
1017 |
rename to 3.10.10/4450_grsec-kconfig-default-gids.patch |
1018 |
|
1019 |
diff --git a/3.10.9/4465_selinux-avc_audit-log-curr_ip.patch b/3.10.10/4465_selinux-avc_audit-log-curr_ip.patch |
1020 |
similarity index 100% |
1021 |
rename from 3.10.9/4465_selinux-avc_audit-log-curr_ip.patch |
1022 |
rename to 3.10.10/4465_selinux-avc_audit-log-curr_ip.patch |
1023 |
|
1024 |
diff --git a/3.10.9/4470_disable-compat_vdso.patch b/3.10.10/4470_disable-compat_vdso.patch |
1025 |
similarity index 100% |
1026 |
rename from 3.10.9/4470_disable-compat_vdso.patch |
1027 |
rename to 3.10.10/4470_disable-compat_vdso.patch |
1028 |
|
1029 |
diff --git a/3.10.9/4475_emutramp_default_on.patch b/3.10.10/4475_emutramp_default_on.patch |
1030 |
similarity index 100% |
1031 |
rename from 3.10.9/4475_emutramp_default_on.patch |
1032 |
rename to 3.10.10/4475_emutramp_default_on.patch |