Gentoo Archives: gentoo-commits

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/hardened-patchset:master commit in: 3.2.69/, 3.14.44/, 4.0.5/, 3.14.45/, 4.0.6/
Date: Thu, 25 Jun 2015 14:47:29
Message-Id: 1435243740.f48ab9b7eb98c814a6a82fb5203ee7660f67a5dd.blueness@gentoo
1 commit: f48ab9b7eb98c814a6a82fb5203ee7660f67a5dd
2 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jun 25 14:49:00 2015 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Thu Jun 25 14:49:00 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/hardened-patchset.git/commit/?id=f48ab9b7
7
8 Grsec/PaX: 3.1-{3.2.69,3.14.45,4.0.6}-201506232104
9
10 {3.14.44 => 3.14.45}/0000_README | 2 +-
11 .../4420_grsecurity-3.1-3.14.45-201506232103.patch | 364 ++++++++++-----
12 {4.0.5 => 3.14.45}/4425_grsec_remove_EI_PAX.patch | 0
13 .../4427_force_XATTR_PAX_tmpfs.patch | 0
14 .../4430_grsec-remove-localversion-grsec.patch | 0
15 .../4435_grsec-mute-warnings.patch | 0
16 .../4440_grsec-remove-protected-paths.patch | 0
17 .../4450_grsec-kconfig-default-gids.patch | 0
18 .../4465_selinux-avc_audit-log-curr_ip.patch | 0
19 .../4470_disable-compat_vdso.patch | 0
20 {4.0.5 => 3.14.45}/4475_emutramp_default_on.patch | 0
21 3.2.69/0000_README | 2 +-
22 ... 4420_grsecurity-3.1-3.2.69-201506232100.patch} | 56 ++-
23 {4.0.5 => 4.0.6}/0000_README | 2 +-
24 .../4420_grsecurity-3.1-4.0.6-201506232104.patch | 491 ++++++++++++++-------
25 {3.14.44 => 4.0.6}/4425_grsec_remove_EI_PAX.patch | 0
26 {4.0.5 => 4.0.6}/4427_force_XATTR_PAX_tmpfs.patch | 0
27 .../4430_grsec-remove-localversion-grsec.patch | 0
28 {4.0.5 => 4.0.6}/4435_grsec-mute-warnings.patch | 0
29 .../4440_grsec-remove-protected-paths.patch | 0
30 .../4450_grsec-kconfig-default-gids.patch | 0
31 .../4465_selinux-avc_audit-log-curr_ip.patch | 0
32 {4.0.5 => 4.0.6}/4470_disable-compat_vdso.patch | 0
33 {3.14.44 => 4.0.6}/4475_emutramp_default_on.patch | 0
34 24 files changed, 639 insertions(+), 278 deletions(-)
35
36 diff --git a/3.14.44/0000_README b/3.14.45/0000_README
37 similarity index 96%
38 rename from 3.14.44/0000_README
39 rename to 3.14.45/0000_README
40 index 2105f07..53a1411 100644
41 --- a/3.14.44/0000_README
42 +++ b/3.14.45/0000_README
43 @@ -2,7 +2,7 @@ README
44 -----------------------------------------------------------------------------
45 Individual Patch Descriptions:
46 -----------------------------------------------------------------------------
47 -Patch: 4420_grsecurity-3.1-3.14.44-201506082249.patch
48 +Patch: 4420_grsecurity-3.1-3.14.45-201506232103.patch
49 From: http://www.grsecurity.net
50 Desc: hardened-sources base patch from upstream grsecurity
51
52
53 diff --git a/3.14.44/4420_grsecurity-3.1-3.14.44-201506082249.patch b/3.14.45/4420_grsecurity-3.1-3.14.45-201506232103.patch
54 similarity index 99%
55 rename from 3.14.44/4420_grsecurity-3.1-3.14.44-201506082249.patch
56 rename to 3.14.45/4420_grsecurity-3.1-3.14.45-201506232103.patch
57 index 3556faf..fe15fa1 100644
58 --- a/3.14.44/4420_grsecurity-3.1-3.14.44-201506082249.patch
59 +++ b/3.14.45/4420_grsecurity-3.1-3.14.45-201506232103.patch
60 @@ -295,7 +295,7 @@ index 5d91ba1..ef1d374 100644
61
62 pcd. [PARIDE]
63 diff --git a/Makefile b/Makefile
64 -index 9f2471c..0adedd5 100644
65 +index c92186c..a387fb0 100644
66 --- a/Makefile
67 +++ b/Makefile
68 @@ -244,8 +244,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
69 @@ -6940,7 +6940,7 @@ index 44a1f79..2bd6aa3 100644
70
71 void __init gt641xx_irq_init(void)
72 diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
73 -index d1fea7a..2e591b0 100644
74 +index 7479d8d..5c37e62 100644
75 --- a/arch/mips/kernel/irq.c
76 +++ b/arch/mips/kernel/irq.c
77 @@ -77,17 +77,17 @@ void ack_bad_irq(unsigned int irq)
78 @@ -6964,18 +6964,16 @@ index d1fea7a..2e591b0 100644
79 }
80
81 void __init init_IRQ(void)
82 -@@ -110,7 +110,10 @@ void __init init_IRQ(void)
83 - #endif
84 +@@ -111,6 +111,8 @@ void __init init_IRQ(void)
85 }
86
87 + #ifdef CONFIG_DEBUG_STACKOVERFLOW
88 +
89 - #ifdef DEBUG_STACKOVERFLOW
90 +extern void gr_handle_kernel_exploit(void);
91 -+
92 static inline void check_stack_overflow(void)
93 {
94 unsigned long sp;
95 -@@ -126,6 +129,7 @@ static inline void check_stack_overflow(void)
96 +@@ -126,6 +128,7 @@ static inline void check_stack_overflow(void)
97 printk("do_IRQ: stack overflow: %ld\n",
98 sp - sizeof(struct thread_info));
99 dump_stack();
100 @@ -18901,7 +18899,7 @@ index cad82c9..2e5c5c1 100644
101
102 #endif /* __KERNEL__ */
103 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
104 -index 6f1c3a8..7744f19 100644
105 +index bcc9a2f..2d6e37b 100644
106 --- a/arch/x86/include/asm/segment.h
107 +++ b/arch/x86/include/asm/segment.h
108 @@ -64,10 +64,15 @@
109 @@ -18987,7 +18985,7 @@ index 6f1c3a8..7744f19 100644
110 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3)
111 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3)
112 #ifndef CONFIG_PARAVIRT
113 -@@ -268,7 +287,7 @@ static inline unsigned long get_limit(unsigned long segment)
114 +@@ -279,7 +298,7 @@ static inline unsigned long get_limit(unsigned long segment)
115 {
116 unsigned long __limit;
117 asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
118 @@ -24558,7 +24556,7 @@ index 1ffc32d..e52c745 100644
119 }
120
121 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
122 -index 85126cc..1bbce17 100644
123 +index 5fc4ac7..90be4e1 100644
124 --- a/arch/x86/kernel/head64.c
125 +++ b/arch/x86/kernel/head64.c
126 @@ -67,12 +67,12 @@ again:
127 @@ -24611,7 +24609,7 @@ index 85126cc..1bbce17 100644
128 init_level4_pgt[511] = early_level4_pgt[511];
129
130 diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
131 -index f36bd42..0ab4474 100644
132 +index 30a2aa3..d62e1dd 100644
133 --- a/arch/x86/kernel/head_32.S
134 +++ b/arch/x86/kernel/head_32.S
135 @@ -26,6 +26,12 @@
136 @@ -24821,7 +24819,7 @@ index f36bd42..0ab4474 100644
137 movl %eax,%gs
138
139 xorl %eax,%eax # Clear LDT
140 -@@ -512,8 +594,11 @@ setup_once:
141 +@@ -513,8 +595,11 @@ setup_once:
142 * relocation. Manually set base address in stack canary
143 * segment descriptor.
144 */
145 @@ -24834,7 +24832,7 @@ index f36bd42..0ab4474 100644
146 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
147 shrl $16, %ecx
148 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
149 -@@ -548,7 +633,7 @@ ENTRY(early_idt_handler)
150 +@@ -551,7 +636,7 @@ early_idt_handler_common:
151 cmpl $2,(%esp) # X86_TRAP_NMI
152 je is_nmi # Ignore NMI
153
154 @@ -24843,7 +24841,7 @@ index f36bd42..0ab4474 100644
155 je hlt_loop
156 incl %ss:early_recursion_flag
157
158 -@@ -586,8 +671,8 @@ ENTRY(early_idt_handler)
159 +@@ -589,8 +674,8 @@ early_idt_handler_common:
160 pushl (20+6*4)(%esp) /* trapno */
161 pushl $fault_msg
162 call printk
163 @@ -24853,7 +24851,7 @@ index f36bd42..0ab4474 100644
164 hlt_loop:
165 hlt
166 jmp hlt_loop
167 -@@ -607,8 +692,11 @@ ENDPROC(early_idt_handler)
168 +@@ -610,8 +695,11 @@ ENDPROC(early_idt_handler_common)
169 /* This is the default interrupt "handler" :-) */
170 ALIGN
171 ignore_int:
172 @@ -24866,7 +24864,7 @@ index f36bd42..0ab4474 100644
173 pushl %eax
174 pushl %ecx
175 pushl %edx
176 -@@ -617,9 +705,6 @@ ignore_int:
177 +@@ -620,9 +708,6 @@ ignore_int:
178 movl $(__KERNEL_DS),%eax
179 movl %eax,%ds
180 movl %eax,%es
181 @@ -24876,7 +24874,7 @@ index f36bd42..0ab4474 100644
182 pushl 16(%esp)
183 pushl 24(%esp)
184 pushl 32(%esp)
185 -@@ -653,29 +738,34 @@ ENTRY(setup_once_ref)
186 +@@ -656,29 +741,34 @@ ENTRY(setup_once_ref)
187 /*
188 * BSS section
189 */
190 @@ -24916,7 +24914,7 @@ index f36bd42..0ab4474 100644
191 ENTRY(initial_page_table)
192 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
193 # if KPMDS == 3
194 -@@ -694,12 +784,20 @@ ENTRY(initial_page_table)
195 +@@ -697,12 +787,20 @@ ENTRY(initial_page_table)
196 # error "Kernel PMDs should be 1, 2 or 3"
197 # endif
198 .align PAGE_SIZE /* needs to be page-sized too */
199 @@ -24938,7 +24936,7 @@ index f36bd42..0ab4474 100644
200
201 __INITRODATA
202 int_msg:
203 -@@ -727,7 +825,7 @@ fault_msg:
204 +@@ -730,7 +828,7 @@ fault_msg:
205 * segment size, and 32-bit linear address value:
206 */
207
208 @@ -24947,7 +24945,7 @@ index f36bd42..0ab4474 100644
209 .globl boot_gdt_descr
210 .globl idt_descr
211
212 -@@ -736,7 +834,7 @@ fault_msg:
213 +@@ -739,7 +837,7 @@ fault_msg:
214 .word 0 # 32 bit align gdt_desc.address
215 boot_gdt_descr:
216 .word __BOOT_DS+7
217 @@ -24956,7 +24954,7 @@ index f36bd42..0ab4474 100644
218
219 .word 0 # 32-bit align idt_desc.address
220 idt_descr:
221 -@@ -747,7 +845,7 @@ idt_descr:
222 +@@ -750,7 +848,7 @@ idt_descr:
223 .word 0 # 32 bit align gdt_desc.address
224 ENTRY(early_gdt_descr)
225 .word GDT_ENTRIES*8-1
226 @@ -24965,7 +24963,7 @@ index f36bd42..0ab4474 100644
227
228 /*
229 * The boot_gdt must mirror the equivalent in setup.S and is
230 -@@ -756,5 +854,65 @@ ENTRY(early_gdt_descr)
231 +@@ -759,5 +857,65 @@ ENTRY(early_gdt_descr)
232 .align L1_CACHE_BYTES
233 ENTRY(boot_gdt)
234 .fill GDT_ENTRY_BOOT_CS,8,0
235 @@ -25034,7 +25032,7 @@ index f36bd42..0ab4474 100644
236 + .fill PAGE_SIZE_asm - GDT_SIZE,1,0
237 + .endr
238 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
239 -index a468c0a..05f3865 100644
240 +index a2dc0ad..f3f397d 100644
241 --- a/arch/x86/kernel/head_64.S
242 +++ b/arch/x86/kernel/head_64.S
243 @@ -20,6 +20,8 @@
244 @@ -25143,7 +25141,7 @@ index a468c0a..05f3865 100644
245 .word 0
246 __FINITDATA
247
248 -@@ -391,7 +427,7 @@ ENTRY(early_idt_handler)
249 +@@ -393,7 +429,7 @@ early_idt_handler_common:
250 call dump_stack
251 #ifdef CONFIG_KALLSYMS
252 leaq early_idt_ripmsg(%rip),%rdi
253 @@ -25152,7 +25150,7 @@ index a468c0a..05f3865 100644
254 call __print_symbol
255 #endif
256 #endif /* EARLY_PRINTK */
257 -@@ -420,6 +456,7 @@ ENDPROC(early_idt_handler)
258 +@@ -422,6 +458,7 @@ ENDPROC(early_idt_handler_common)
259 early_recursion_flag:
260 .long 0
261
262 @@ -25160,7 +25158,7 @@ index a468c0a..05f3865 100644
263 #ifdef CONFIG_EARLY_PRINTK
264 early_idt_msg:
265 .asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
266 -@@ -447,29 +484,52 @@ NEXT_PAGE(early_level4_pgt)
267 +@@ -449,29 +486,52 @@ NEXT_PAGE(early_level4_pgt)
268 NEXT_PAGE(early_dynamic_pgts)
269 .fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
270
271 @@ -25222,7 +25220,7 @@ index a468c0a..05f3865 100644
272
273 NEXT_PAGE(level3_kernel_pgt)
274 .fill L3_START_KERNEL,8,0
275 -@@ -477,6 +537,9 @@ NEXT_PAGE(level3_kernel_pgt)
276 +@@ -479,6 +539,9 @@ NEXT_PAGE(level3_kernel_pgt)
277 .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
278 .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
279
280 @@ -25232,7 +25230,7 @@ index a468c0a..05f3865 100644
281 NEXT_PAGE(level2_kernel_pgt)
282 /*
283 * 512 MB kernel mapping. We spend a full page on this pagetable
284 -@@ -492,30 +555,68 @@ NEXT_PAGE(level2_kernel_pgt)
285 +@@ -494,30 +557,68 @@ NEXT_PAGE(level2_kernel_pgt)
286 KERNEL_IMAGE_SIZE/PMD_SIZE)
287
288 NEXT_PAGE(level2_fixmap_pgt)
289 @@ -28855,6 +28853,19 @@ index 453e5fb..214168f 100644
290
291 #define APIC_LVT_NUM 6
292 /* 14 is the version for Xeon and Pentium 8.4.8*/
293 +diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
294 +index 6a11845..7205173 100644
295 +--- a/arch/x86/kvm/lapic.h
296 ++++ b/arch/x86/kvm/lapic.h
297 +@@ -165,7 +165,7 @@ static inline u16 apic_logical_id(struct kvm_apic_map *map, u32 ldr)
298 +
299 + static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu)
300 + {
301 +- return vcpu->arch.apic->pending_events;
302 ++ return kvm_vcpu_has_lapic(vcpu) && vcpu->arch.apic->pending_events;
303 + }
304 +
305 + bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector);
306 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
307 index cba218a..1cc1bed 100644
308 --- a/arch/x86/kvm/paging_tmpl.h
309 @@ -34427,7 +34438,7 @@ index 0149575..f746de8 100644
310 + pax_force_retaddr
311 ret
312 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
313 -index af2d431..c405730 100644
314 +index 1fed139..842a14e 100644
315 --- a/arch/x86/net/bpf_jit_comp.c
316 +++ b/arch/x86/net/bpf_jit_comp.c
317 @@ -50,13 +50,102 @@ static inline u8 *emit_code(u8 *ptr, u32 bytes, unsigned int len)
318 @@ -34661,7 +34672,7 @@ index af2d431..c405730 100644
319 addrs[i] = proglen;
320 }
321 cleanup_addr = proglen; /* epilogue address */
322 -@@ -285,6 +394,10 @@ void bpf_jit_compile(struct sk_filter *fp)
323 +@@ -290,6 +399,10 @@ void bpf_jit_compile(struct sk_filter *fp)
324 for (i = 0; i < flen; i++) {
325 unsigned int K = filter[i].k;
326
327 @@ -34672,7 +34683,7 @@ index af2d431..c405730 100644
328 switch (filter[i].code) {
329 case BPF_S_ALU_ADD_X: /* A += X; */
330 seen |= SEEN_XREG;
331 -@@ -317,10 +430,8 @@ void bpf_jit_compile(struct sk_filter *fp)
332 +@@ -322,10 +435,8 @@ void bpf_jit_compile(struct sk_filter *fp)
333 case BPF_S_ALU_MUL_K: /* A *= K */
334 if (is_imm8(K))
335 EMIT3(0x6b, 0xc0, K); /* imul imm8,%eax,%eax */
336 @@ -34685,7 +34696,7 @@ index af2d431..c405730 100644
337 break;
338 case BPF_S_ALU_DIV_X: /* A /= X; */
339 seen |= SEEN_XREG;
340 -@@ -333,7 +444,7 @@ void bpf_jit_compile(struct sk_filter *fp)
341 +@@ -338,7 +449,7 @@ void bpf_jit_compile(struct sk_filter *fp)
342 EMIT_COND_JMP(X86_JE, addrs[pc_ret0 - 1] -
343 (addrs[i] - 4));
344 } else {
345 @@ -34694,7 +34705,7 @@ index af2d431..c405730 100644
346 CLEAR_A();
347 EMIT1_off32(0xe9, cleanup_addr - (addrs[i] - 4)); /* jmp .+off32 */
348 }
349 -@@ -364,7 +475,11 @@ void bpf_jit_compile(struct sk_filter *fp)
350 +@@ -369,7 +480,11 @@ void bpf_jit_compile(struct sk_filter *fp)
351 break;
352 }
353 EMIT2(0x31, 0xd2); /* xor %edx,%edx */
354 @@ -34706,7 +34717,7 @@ index af2d431..c405730 100644
355 EMIT2(0xf7, 0xf1); /* div %ecx */
356 EMIT2(0x89, 0xd0); /* mov %edx,%eax */
357 break;
358 -@@ -372,7 +487,11 @@ void bpf_jit_compile(struct sk_filter *fp)
359 +@@ -377,7 +492,11 @@ void bpf_jit_compile(struct sk_filter *fp)
360 if (K == 1)
361 break;
362 EMIT2(0x31, 0xd2); /* xor %edx,%edx */
363 @@ -34718,7 +34729,7 @@ index af2d431..c405730 100644
364 EMIT2(0xf7, 0xf1); /* div %ecx */
365 break;
366 case BPF_S_ALU_AND_X:
367 -@@ -643,8 +762,7 @@ common_load_ind: seen |= SEEN_DATAREF | SEEN_XREG;
368 +@@ -648,8 +767,7 @@ common_load_ind: seen |= SEEN_DATAREF | SEEN_XREG;
369 if (is_imm8(K)) {
370 EMIT3(0x8d, 0x73, K); /* lea imm8(%rbx), %esi */
371 } else {
372 @@ -34728,7 +34739,7 @@ index af2d431..c405730 100644
373 }
374 } else {
375 EMIT2(0x89,0xde); /* mov %ebx,%esi */
376 -@@ -717,7 +835,7 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
377 +@@ -722,7 +840,7 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
378 }
379 if (filter[i].jt != 0) {
380 if (filter[i].jf && f_offset)
381 @@ -34737,7 +34748,7 @@ index af2d431..c405730 100644
382 EMIT_COND_JMP(t_op, t_offset);
383 if (filter[i].jf)
384 EMIT_JMP(f_offset);
385 -@@ -734,10 +852,12 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
386 +@@ -739,10 +857,12 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
387 if (unlikely(proglen + ilen > oldproglen)) {
388 pr_err("bpb_jit_compile fatal error\n");
389 kfree(addrs);
390 @@ -34751,7 +34762,7 @@ index af2d431..c405730 100644
391 }
392 proglen += ilen;
393 addrs[i] = proglen;
394 -@@ -770,7 +890,6 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
395 +@@ -775,7 +895,6 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
396
397 if (image) {
398 bpf_flush_icache(header, image + proglen);
399 @@ -34759,7 +34770,7 @@ index af2d431..c405730 100644
400 fp->bpf_func = (void *)image;
401 }
402 out:
403 -@@ -782,10 +901,8 @@ static void bpf_jit_free_deferred(struct work_struct *work)
404 +@@ -787,10 +906,8 @@ static void bpf_jit_free_deferred(struct work_struct *work)
405 {
406 struct sk_filter *fp = container_of(work, struct sk_filter, work);
407 unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
408 @@ -36762,7 +36773,7 @@ index a0926a6..b2b14b2 100644
409 err = -EFAULT;
410 goto out;
411 diff --git a/block/genhd.c b/block/genhd.c
412 -index a8d586a..d9910b1 100644
413 +index 9316f5f..16b4af2 100644
414 --- a/block/genhd.c
415 +++ b/block/genhd.c
416 @@ -469,21 +469,24 @@ static char *bdevt_str(dev_t devt, char *buf)
417 @@ -40615,6 +40626,33 @@ index dcaae4c..80cd4dd 100644
418 .attrs = cpuidle_default_attrs,
419 .name = "cpuidle",
420 };
421 +diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c
422 +index d97a03d..acf64bb 100644
423 +--- a/drivers/crypto/caam/caamhash.c
424 ++++ b/drivers/crypto/caam/caamhash.c
425 +@@ -1469,6 +1469,9 @@ static int ahash_init(struct ahash_request *req)
426 + state->final = ahash_final_no_ctx;
427 +
428 + state->current_buf = 0;
429 ++ state->buf_dma = 0;
430 ++ state->buflen_0 = 0;
431 ++ state->buflen_1 = 0;
432 +
433 + return 0;
434 + }
435 +diff --git a/drivers/crypto/caam/caamrng.c b/drivers/crypto/caam/caamrng.c
436 +index 28486b1..ae6dae8 100644
437 +--- a/drivers/crypto/caam/caamrng.c
438 ++++ b/drivers/crypto/caam/caamrng.c
439 +@@ -56,7 +56,7 @@
440 +
441 + /* Buffer, its dma address and lock */
442 + struct buf_data {
443 +- u8 buf[RN_BUF_SIZE];
444 ++ u8 buf[RN_BUF_SIZE] ____cacheline_aligned;
445 + dma_addr_t addr;
446 + struct completion filled;
447 + u32 hw_desc[DESC_JOB_O_LEN];
448 diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
449 index 12fea3e2..1e28f47 100644
450 --- a/drivers/crypto/hifn_795x.c
451 @@ -42285,7 +42323,7 @@ index 4a85bb6..aaea819 100644
452 if (regcomp
453 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
454 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
455 -index e39026c..b32e98e 100644
456 +index 129915e..af52907 100644
457 --- a/drivers/gpu/drm/radeon/radeon_device.c
458 +++ b/drivers/gpu/drm/radeon/radeon_device.c
459 @@ -1128,7 +1128,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
460 @@ -53865,7 +53903,7 @@ index 5bfd807..337352af 100644
461
462 dlci->modem_rx = 0;
463 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
464 -index 8ab46ad..b8db1e2 100644
465 +index 8195190..46537ed 100644
466 --- a/drivers/tty/n_tty.c
467 +++ b/drivers/tty/n_tty.c
468 @@ -115,7 +115,7 @@ struct n_tty_data {
469 @@ -53877,7 +53915,7 @@ index 8ab46ad..b8db1e2 100644
470 size_t line_start;
471
472 /* protected by output lock */
473 -@@ -2578,6 +2578,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
474 +@@ -2589,6 +2589,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
475 {
476 *ops = tty_ldisc_N_TTY;
477 ops->owner = NULL;
478 @@ -66883,7 +66921,7 @@ index f70119f..ab5894d 100644
479 spin_lock_init(&delayed_root->lock);
480 init_waitqueue_head(&delayed_root->wait);
481 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
482 -index d04db81..96e54f1 100644
483 +index 92cbfbf..0ca1d83 100644
484 --- a/fs/btrfs/super.c
485 +++ b/fs/btrfs/super.c
486 @@ -268,7 +268,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
487 @@ -103186,6 +103224,40 @@ index c6646a5..574b47c 100644
488 static void __add_event_to_tracers(struct ftrace_event_call *call);
489
490 /* Add an additional event_call dynamically */
491 +diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
492 +index 8a86319..32ef21b 100644
493 +--- a/kernel/trace/trace_events_filter.c
494 ++++ b/kernel/trace/trace_events_filter.c
495 +@@ -1399,19 +1399,27 @@ static int check_preds(struct filter_parse_state *ps)
496 + {
497 + int n_normal_preds = 0, n_logical_preds = 0;
498 + struct postfix_elt *elt;
499 ++ int cnt = 0;
500 +
501 + list_for_each_entry(elt, &ps->postfix, list) {
502 +- if (elt->op == OP_NONE)
503 ++ if (elt->op == OP_NONE) {
504 ++ cnt++;
505 + continue;
506 ++ }
507 +
508 + if (elt->op == OP_AND || elt->op == OP_OR) {
509 + n_logical_preds++;
510 ++ cnt--;
511 + continue;
512 + }
513 ++ // OP_NOT is not supported in this kernel, will get
514 ++ // a reject here when it's backported
515 ++ cnt--;
516 + n_normal_preds++;
517 ++ WARN_ON_ONCE(cnt < 0);
518 + }
519 +
520 +- if (!n_normal_preds || n_logical_preds >= n_normal_preds) {
521 ++ if (cnt != 1 || !n_normal_preds || n_logical_preds >= n_normal_preds) {
522 + parse_error(ps, FILT_ERR_INVALID_FILTER, 0);
523 + return -EINVAL;
524 + }
525 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
526 index 0b99120..881174f 100644
527 --- a/kernel/trace/trace_functions_graph.c
528 @@ -104074,6 +104146,28 @@ index f07a40d..0a445a7 100644
529 retval = 1;
530 }
531 spin_unlock(&lockref->lock);
532 +diff --git a/lib/mpi/longlong.h b/lib/mpi/longlong.h
533 +index aac5114..a89d041 100644
534 +--- a/lib/mpi/longlong.h
535 ++++ b/lib/mpi/longlong.h
536 +@@ -639,7 +639,7 @@ do { \
537 + ************** MIPS *****************
538 + ***************************************/
539 + #if defined(__mips__) && W_TYPE_SIZE == 32
540 +-#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4
541 ++#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
542 + #define umul_ppmm(w1, w0, u, v) \
543 + do { \
544 + UDItype __ll = (UDItype)(u) * (v); \
545 +@@ -671,7 +671,7 @@ do { \
546 + ************** MIPS/64 **************
547 + ***************************************/
548 + #if (defined(__mips) && __mips >= 3) && W_TYPE_SIZE == 64
549 +-#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4
550 ++#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
551 + #define umul_ppmm(w1, w0, u, v) \
552 + do { \
553 + typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
554 diff --git a/lib/nlattr.c b/lib/nlattr.c
555 index 10ad042d..25b47b5 100644
556 --- a/lib/nlattr.c
557 @@ -110398,7 +110492,7 @@ index a16ed7b..eb44d17 100644
558
559 return err;
560 diff --git a/net/core/dev.c b/net/core/dev.c
561 -index 73abbd7..1bae4ad 100644
562 +index 1b9e700..047273c 100644
563 --- a/net/core/dev.c
564 +++ b/net/core/dev.c
565 @@ -1695,14 +1695,14 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
566 @@ -110649,10 +110743,51 @@ index 26dc006..89e838e 100644
567
568 m->msg_iov = iov;
569 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
570 -index 7d95f69..a6065de 100644
571 +index 7d95f69..1d316b1 100644
572 --- a/net/core/neighbour.c
573 +++ b/net/core/neighbour.c
574 -@@ -2824,7 +2824,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
575 +@@ -976,6 +976,8 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
576 + rc = 0;
577 + if (neigh->nud_state & (NUD_CONNECTED | NUD_DELAY | NUD_PROBE))
578 + goto out_unlock_bh;
579 ++ if (neigh->dead)
580 ++ goto out_dead;
581 +
582 + if (!(neigh->nud_state & (NUD_STALE | NUD_INCOMPLETE))) {
583 + if (NEIGH_VAR(neigh->parms, MCAST_PROBES) +
584 +@@ -1032,6 +1034,13 @@ out_unlock_bh:
585 + write_unlock(&neigh->lock);
586 + local_bh_enable();
587 + return rc;
588 ++
589 ++out_dead:
590 ++ if (neigh->nud_state & NUD_STALE)
591 ++ goto out_unlock_bh;
592 ++ write_unlock_bh(&neigh->lock);
593 ++ kfree_skb(skb);
594 ++ return 1;
595 + }
596 + EXPORT_SYMBOL(__neigh_event_send);
597 +
598 +@@ -1095,6 +1104,8 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
599 + if (!(flags & NEIGH_UPDATE_F_ADMIN) &&
600 + (old & (NUD_NOARP | NUD_PERMANENT)))
601 + goto out;
602 ++ if (neigh->dead)
603 ++ goto out;
604 +
605 + if (!(new & NUD_VALID)) {
606 + neigh_del_timer(neigh);
607 +@@ -1244,6 +1255,8 @@ EXPORT_SYMBOL(neigh_update);
608 + */
609 + void __neigh_set_probe_once(struct neighbour *neigh)
610 + {
611 ++ if (neigh->dead)
612 ++ return;
613 + neigh->updated = jiffies;
614 + if (!(neigh->nud_state & NUD_FAILED))
615 + return;
616 +@@ -2824,7 +2837,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
617 void __user *buffer, size_t *lenp, loff_t *ppos)
618 {
619 int size, ret;
620 @@ -110661,7 +110796,7 @@ index 7d95f69..a6065de 100644
621
622 tmp.extra1 = &zero;
623 tmp.extra2 = &unres_qlen_max;
624 -@@ -2886,7 +2886,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
625 +@@ -2886,7 +2899,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
626 void __user *buffer,
627 size_t *lenp, loff_t *ppos)
628 {
629 @@ -110670,7 +110805,7 @@ index 7d95f69..a6065de 100644
630 int ret;
631
632 tmp.extra1 = &zero;
633 -@@ -3058,11 +3058,12 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
634 +@@ -3058,11 +3071,12 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
635 memset(&t->neigh_vars[NEIGH_VAR_GC_INTERVAL], 0,
636 sizeof(t->neigh_vars[NEIGH_VAR_GC_INTERVAL]));
637 } else {
638 @@ -112042,7 +112177,7 @@ index 11c8d81..d67116b 100644
639
640 static int raw_seq_show(struct seq_file *seq, void *v)
641 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
642 -index b64330f..31268ca 100644
643 +index 625615c..b88eefd 100644
644 --- a/net/ipv4/route.c
645 +++ b/net/ipv4/route.c
646 @@ -234,7 +234,7 @@ static const struct seq_operations rt_cache_seq_ops = {
647 @@ -112095,7 +112230,7 @@ index b64330f..31268ca 100644
648 }
649 EXPORT_SYMBOL(ip_idents_reserve);
650
651 -@@ -2632,34 +2632,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
652 +@@ -2636,34 +2636,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
653 .maxlen = sizeof(int),
654 .mode = 0200,
655 .proc_handler = ipv4_sysctl_rtcache_flush,
656 @@ -112138,7 +112273,7 @@ index b64330f..31268ca 100644
657 err_dup:
658 return -ENOMEM;
659 }
660 -@@ -2682,8 +2682,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
661 +@@ -2686,8 +2686,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
662
663 static __net_init int rt_genid_init(struct net *net)
664 {
665 @@ -112149,7 +112284,7 @@ index b64330f..31268ca 100644
666 get_random_bytes(&net->ipv4.dev_addr_genid,
667 sizeof(net->ipv4.dev_addr_genid));
668 return 0;
669 -@@ -2726,11 +2726,7 @@ int __init ip_rt_init(void)
670 +@@ -2730,11 +2730,7 @@ int __init ip_rt_init(void)
671 {
672 int rc = 0;
673
674 @@ -112390,7 +112525,7 @@ index e2f8bd0..6c664ad 100644
675 }
676
677 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
678 -index 7a436c5..84279ef 100644
679 +index 9128d0a..5ea9226 100644
680 --- a/net/ipv4/tcp_minisocks.c
681 +++ b/net/ipv4/tcp_minisocks.c
682 @@ -27,6 +27,10 @@
683 @@ -112407,7 +112542,7 @@ index 7a436c5..84279ef 100644
684 @@ -298,7 +302,7 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
685 tw->tw_v6_rcv_saddr = sk->sk_v6_rcv_saddr;
686 tw->tw_tclass = np->tclass;
687 - tw->tw_flowlabel = np->flow_label >> 12;
688 + tw->tw_flowlabel = be32_to_cpu(np->flow_label & IPV6_FLOWLABEL_MASK);
689 - tw->tw_ipv6only = np->ipv6only;
690 + tw->tw_ipv6only = sk->sk_ipv6only;
691 }
692 @@ -112468,7 +112603,7 @@ index 64f0354..a81b39d 100644
693 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
694 /* Has it gone just too far? */
695 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
696 -index b25e852..f578c52 100644
697 +index 21a3a9e..4a9ef62 100644
698 --- a/net/ipv4/udp.c
699 +++ b/net/ipv4/udp.c
700 @@ -87,6 +87,7 @@
701 @@ -112479,7 +112614,7 @@ index b25e852..f578c52 100644
702 #include <linux/socket.h>
703 #include <linux/sockios.h>
704 #include <linux/igmp.h>
705 -@@ -113,6 +114,10 @@
706 +@@ -114,6 +115,10 @@
707 #include <net/busy_poll.h>
708 #include "udp_impl.h"
709
710 @@ -112490,7 +112625,7 @@ index b25e852..f578c52 100644
711 struct udp_table udp_table __read_mostly;
712 EXPORT_SYMBOL(udp_table);
713
714 -@@ -615,6 +620,9 @@ found:
715 +@@ -616,6 +621,9 @@ found:
716 return s;
717 }
718
719 @@ -112500,7 +112635,7 @@ index b25e852..f578c52 100644
720 /*
721 * This routine is called by the ICMP module when it gets some
722 * sort of error condition. If err < 0 then the socket should
723 -@@ -914,9 +922,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
724 +@@ -915,9 +923,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
725 dport = usin->sin_port;
726 if (dport == 0)
727 return -EINVAL;
728 @@ -112519,7 +112654,7 @@ index b25e852..f578c52 100644
729 daddr = inet->inet_daddr;
730 dport = inet->inet_dport;
731 /* Open fast path for connected socket.
732 -@@ -1163,7 +1180,7 @@ static unsigned int first_packet_length(struct sock *sk)
733 +@@ -1164,7 +1181,7 @@ static unsigned int first_packet_length(struct sock *sk)
734 IS_UDPLITE(sk));
735 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
736 IS_UDPLITE(sk));
737 @@ -112528,7 +112663,7 @@ index b25e852..f578c52 100644
738 __skb_unlink(skb, rcvq);
739 __skb_queue_tail(&list_kill, skb);
740 }
741 -@@ -1243,6 +1260,10 @@ try_again:
742 +@@ -1244,6 +1261,10 @@ try_again:
743 if (!skb)
744 goto out;
745
746 @@ -112539,7 +112674,7 @@ index b25e852..f578c52 100644
747 ulen = skb->len - sizeof(struct udphdr);
748 copied = len;
749 if (copied > ulen)
750 -@@ -1276,7 +1297,7 @@ try_again:
751 +@@ -1277,7 +1298,7 @@ try_again:
752 if (unlikely(err)) {
753 trace_kfree_skb(skb, udp_recvmsg);
754 if (!peeked) {
755 @@ -112548,20 +112683,7 @@ index b25e852..f578c52 100644
756 UDP_INC_STATS_USER(sock_net(sk),
757 UDP_MIB_INERRORS, is_udplite);
758 }
759 -@@ -1317,10 +1338,8 @@ csum_copy_err:
760 - }
761 - unlock_sock_fast(sk, slow);
762 -
763 -- if (noblock)
764 -- return -EAGAIN;
765 --
766 -- /* starting over for a new packet */
767 -+ /* starting over for a new packet, but check if we need to yield */
768 -+ cond_resched();
769 - msg->msg_flags &= ~MSG_TRUNC;
770 - goto try_again;
771 - }
772 -@@ -1566,7 +1585,7 @@ csum_error:
773 +@@ -1565,7 +1586,7 @@ csum_error:
774 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
775 drop:
776 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
777 @@ -112570,7 +112692,7 @@ index b25e852..f578c52 100644
778 kfree_skb(skb);
779 return -1;
780 }
781 -@@ -1585,7 +1604,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
782 +@@ -1584,7 +1605,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
783 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
784
785 if (!skb1) {
786 @@ -112579,7 +112701,7 @@ index b25e852..f578c52 100644
787 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
788 IS_UDPLITE(sk));
789 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
790 -@@ -1786,6 +1805,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
791 +@@ -1785,6 +1806,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
792 goto csum_error;
793
794 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
795 @@ -112589,7 +112711,7 @@ index b25e852..f578c52 100644
796 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
797
798 /*
799 -@@ -2354,7 +2376,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
800 +@@ -2364,7 +2388,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
801 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
802 0, sock_i_ino(sp),
803 atomic_read(&sp->sk_refcnt), sp,
804 @@ -113386,7 +113508,7 @@ index 7f405a1..eabef92 100644
805 struct ctl_table *ipv6_icmp_table;
806 int err;
807 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
808 -index 9d4332d..4292595 100644
809 +index b50ae29..568a06f 100644
810 --- a/net/ipv6/tcp_ipv6.c
811 +++ b/net/ipv6/tcp_ipv6.c
812 @@ -104,6 +104,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
813 @@ -113445,7 +113567,7 @@ index 9d4332d..4292595 100644
814 }
815
816 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
817 -index 20b63d2..9f371ac 100644
818 +index 38625a9..9f371ac 100644
819 --- a/net/ipv6/udp.c
820 +++ b/net/ipv6/udp.c
821 @@ -76,10 +76,13 @@ static unsigned int udp6_ehashfn(struct net *net,
822 @@ -113481,20 +113603,7 @@ index 20b63d2..9f371ac 100644
823 if (is_udp4)
824 UDP_INC_STATS_USER(sock_net(sk),
825 UDP_MIB_INERRORS,
826 -@@ -515,10 +518,8 @@ csum_copy_err:
827 - }
828 - unlock_sock_fast(sk, slow);
829 -
830 -- if (noblock)
831 -- return -EAGAIN;
832 --
833 -- /* starting over for a new packet */
834 -+ /* starting over for a new packet, but check if we need to yield */
835 -+ cond_resched();
836 - msg->msg_flags &= ~MSG_TRUNC;
837 - goto try_again;
838 - }
839 -@@ -690,7 +691,7 @@ csum_error:
840 +@@ -688,7 +691,7 @@ csum_error:
841 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
842 drop:
843 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
844 @@ -113503,7 +113612,7 @@ index 20b63d2..9f371ac 100644
845 kfree_skb(skb);
846 return -1;
847 }
848 -@@ -747,7 +748,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
849 +@@ -745,7 +748,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
850 if (likely(skb1 == NULL))
851 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
852 if (!skb1) {
853 @@ -113512,7 +113621,7 @@ index 20b63d2..9f371ac 100644
854 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
855 IS_UDPLITE(sk));
856 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
857 -@@ -886,6 +887,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
858 +@@ -884,6 +887,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
859 goto csum_error;
860
861 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
862 @@ -114778,10 +114887,43 @@ index 270b77d..0a9d0981 100644
863 /* Queue all of the segments. */
864 skb = segs;
865 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
866 -index 48b1817..d2c096b 100644
867 +index 48b1817..3b2192f 100644
868 --- a/net/packet/af_packet.c
869 +++ b/net/packet/af_packet.c
870 -@@ -1846,7 +1846,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
871 +@@ -1264,16 +1264,6 @@ static void packet_sock_destruct(struct sock *sk)
872 + sk_refcnt_debug_dec(sk);
873 + }
874 +
875 +-static int fanout_rr_next(struct packet_fanout *f, unsigned int num)
876 +-{
877 +- int x = atomic_read(&f->rr_cur) + 1;
878 +-
879 +- if (x >= num)
880 +- x = 0;
881 +-
882 +- return x;
883 +-}
884 +-
885 + static unsigned int fanout_demux_hash(struct packet_fanout *f,
886 + struct sk_buff *skb,
887 + unsigned int num)
888 +@@ -1285,13 +1275,9 @@ static unsigned int fanout_demux_lb(struct packet_fanout *f,
889 + struct sk_buff *skb,
890 + unsigned int num)
891 + {
892 +- int cur, old;
893 ++ unsigned int val = atomic_inc_return(&f->rr_cur);
894 +
895 +- cur = atomic_read(&f->rr_cur);
896 +- while ((old = atomic_cmpxchg(&f->rr_cur, cur,
897 +- fanout_rr_next(f, num))) != cur)
898 +- cur = old;
899 +- return cur;
900 ++ return val % num;
901 + }
902 +
903 + static unsigned int fanout_demux_cpu(struct packet_fanout *f,
904 +@@ -1846,7 +1832,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
905
906 spin_lock(&sk->sk_receive_queue.lock);
907 po->stats.stats1.tp_packets++;
908 @@ -114790,7 +114932,7 @@ index 48b1817..d2c096b 100644
909 __skb_queue_tail(&sk->sk_receive_queue, skb);
910 spin_unlock(&sk->sk_receive_queue.lock);
911 sk->sk_data_ready(sk, skb->len);
912 -@@ -1855,7 +1855,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
913 +@@ -1855,7 +1841,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
914 drop_n_acct:
915 spin_lock(&sk->sk_receive_queue.lock);
916 po->stats.stats1.tp_drops++;
917 @@ -114799,7 +114941,7 @@ index 48b1817..d2c096b 100644
918 spin_unlock(&sk->sk_receive_queue.lock);
919
920 drop_n_restore:
921 -@@ -3462,7 +3462,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
922 +@@ -3462,7 +3448,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
923 case PACKET_HDRLEN:
924 if (len > sizeof(int))
925 len = sizeof(int);
926 @@ -114808,7 +114950,7 @@ index 48b1817..d2c096b 100644
927 return -EFAULT;
928 switch (val) {
929 case TPACKET_V1:
930 -@@ -3508,7 +3508,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
931 +@@ -3508,7 +3494,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
932 len = lv;
933 if (put_user(len, optlen))
934 return -EFAULT;
935 @@ -116416,7 +116558,7 @@ index 6424372..afd36e9 100644
936 sub->evt.event = htohl(event, sub->swap);
937 sub->evt.found_lower = htohl(found_lower, sub->swap);
938 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
939 -index 94404f1..ac544a1 100644
940 +index 4757f1c..11b32ee 100644
941 --- a/net/unix/af_unix.c
942 +++ b/net/unix/af_unix.c
943 @@ -791,6 +791,12 @@ static struct sock *unix_find_other(struct net *net,
944 @@ -116465,7 +116607,7 @@ index 94404f1..ac544a1 100644
945 done_path_create(&path, dentry);
946 return err;
947 }
948 -@@ -2243,11 +2262,14 @@ static unsigned int unix_dgram_poll(struct file *file, struct socket *sock,
949 +@@ -2251,11 +2270,14 @@ static unsigned int unix_dgram_poll(struct file *file, struct socket *sock,
950 writable = unix_writable(sk);
951 other = unix_peer_get(sk);
952 if (other) {
953 @@ -116482,7 +116624,7 @@ index 94404f1..ac544a1 100644
954 sock_put(other);
955 }
956
957 -@@ -2344,9 +2366,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
958 +@@ -2352,9 +2374,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
959 seq_puts(seq, "Num RefCount Protocol Flags Type St "
960 "Inode Path\n");
961 else {
962 @@ -116497,7 +116639,7 @@ index 94404f1..ac544a1 100644
963
964 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
965 s,
966 -@@ -2371,10 +2397,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
967 +@@ -2379,10 +2405,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
968 seq_putc(seq, '@');
969 i++;
970 }
971 @@ -128115,10 +128257,10 @@ index 0000000..4378111
972 +}
973 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
974 new file mode 100644
975 -index 0000000..038e79d
976 +index 0000000..51560ee
977 --- /dev/null
978 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
979 -@@ -0,0 +1,6059 @@
980 +@@ -0,0 +1,6061 @@
981 +intel_fake_agp_alloc_by_type_1 intel_fake_agp_alloc_by_type 1 1 NULL
982 +ocfs2_get_refcount_tree_3 ocfs2_get_refcount_tree 0 3 NULL
983 +storvsc_connect_to_vsp_22 storvsc_connect_to_vsp 2 22 NULL
984 @@ -131510,7 +131652,8 @@ index 0000000..038e79d
985 +vxge_config_vpaths_36636 vxge_config_vpaths 0 36636 NULL
986 +convert_extent_item_v0_36645 convert_extent_item_v0 4 36645 NULL
987 +ced_ioctl_36647 ced_ioctl 2 36647 NULL
988 -+lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL
989 ++lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL nohasharray
990 ++tty_copy_to_user_36648 tty_copy_to_user 4 36648 &lpfc_idiag_extacc_alloc_get_36648
991 +osd_req_list_collection_objects_36664 osd_req_list_collection_objects 5 36664 NULL
992 +iscsi_host_alloc_36671 iscsi_host_alloc 2 36671 NULL
993 +xillybus_read_36678 xillybus_read 3 36678 NULL
994 @@ -131577,7 +131720,8 @@ index 0000000..038e79d
995 +xfs_iomap_write_allocate_37336 xfs_iomap_write_allocate 0 37336 NULL
996 +security_inode_getsecurity_37354 security_inode_getsecurity 0 37354 NULL
997 +hci_sock_sendmsg_37420 hci_sock_sendmsg 4 37420 NULL
998 -+acpi_os_allocate_zeroed_37422 acpi_os_allocate_zeroed 1 37422 NULL
999 ++acpi_os_allocate_zeroed_37422 acpi_os_allocate_zeroed 1 37422 NULL nohasharray
1000 ++find_next_bit_37422 find_next_bit 0 37422 &acpi_os_allocate_zeroed_37422
1001 +tty_insert_flip_string_fixed_flag_37428 tty_insert_flip_string_fixed_flag 4-0 37428 NULL
1002 +iwl_print_last_event_logs_37433 iwl_print_last_event_logs 0-7-9 37433 NULL
1003 +fru_alloc_37442 fru_alloc 1 37442 NULL
1004
1005 diff --git a/4.0.5/4425_grsec_remove_EI_PAX.patch b/3.14.45/4425_grsec_remove_EI_PAX.patch
1006 similarity index 100%
1007 rename from 4.0.5/4425_grsec_remove_EI_PAX.patch
1008 rename to 3.14.45/4425_grsec_remove_EI_PAX.patch
1009
1010 diff --git a/3.14.44/4427_force_XATTR_PAX_tmpfs.patch b/3.14.45/4427_force_XATTR_PAX_tmpfs.patch
1011 similarity index 100%
1012 rename from 3.14.44/4427_force_XATTR_PAX_tmpfs.patch
1013 rename to 3.14.45/4427_force_XATTR_PAX_tmpfs.patch
1014
1015 diff --git a/4.0.5/4430_grsec-remove-localversion-grsec.patch b/3.14.45/4430_grsec-remove-localversion-grsec.patch
1016 similarity index 100%
1017 rename from 4.0.5/4430_grsec-remove-localversion-grsec.patch
1018 rename to 3.14.45/4430_grsec-remove-localversion-grsec.patch
1019
1020 diff --git a/3.14.44/4435_grsec-mute-warnings.patch b/3.14.45/4435_grsec-mute-warnings.patch
1021 similarity index 100%
1022 rename from 3.14.44/4435_grsec-mute-warnings.patch
1023 rename to 3.14.45/4435_grsec-mute-warnings.patch
1024
1025 diff --git a/4.0.5/4440_grsec-remove-protected-paths.patch b/3.14.45/4440_grsec-remove-protected-paths.patch
1026 similarity index 100%
1027 rename from 4.0.5/4440_grsec-remove-protected-paths.patch
1028 rename to 3.14.45/4440_grsec-remove-protected-paths.patch
1029
1030 diff --git a/3.14.44/4450_grsec-kconfig-default-gids.patch b/3.14.45/4450_grsec-kconfig-default-gids.patch
1031 similarity index 100%
1032 rename from 3.14.44/4450_grsec-kconfig-default-gids.patch
1033 rename to 3.14.45/4450_grsec-kconfig-default-gids.patch
1034
1035 diff --git a/3.14.44/4465_selinux-avc_audit-log-curr_ip.patch b/3.14.45/4465_selinux-avc_audit-log-curr_ip.patch
1036 similarity index 100%
1037 rename from 3.14.44/4465_selinux-avc_audit-log-curr_ip.patch
1038 rename to 3.14.45/4465_selinux-avc_audit-log-curr_ip.patch
1039
1040 diff --git a/3.14.44/4470_disable-compat_vdso.patch b/3.14.45/4470_disable-compat_vdso.patch
1041 similarity index 100%
1042 rename from 3.14.44/4470_disable-compat_vdso.patch
1043 rename to 3.14.45/4470_disable-compat_vdso.patch
1044
1045 diff --git a/4.0.5/4475_emutramp_default_on.patch b/3.14.45/4475_emutramp_default_on.patch
1046 similarity index 100%
1047 rename from 4.0.5/4475_emutramp_default_on.patch
1048 rename to 3.14.45/4475_emutramp_default_on.patch
1049
1050 diff --git a/3.2.69/0000_README b/3.2.69/0000_README
1051 index c5e335b..1521b73 100644
1052 --- a/3.2.69/0000_README
1053 +++ b/3.2.69/0000_README
1054 @@ -194,7 +194,7 @@ Patch: 1068_linux-3.2.69.patch
1055 From: http://www.kernel.org
1056 Desc: Linux 3.2.69
1057
1058 -Patch: 4420_grsecurity-3.1-3.2.69-201506082246.patch
1059 +Patch: 4420_grsecurity-3.1-3.2.69-201506232100.patch
1060 From: http://www.grsecurity.net
1061 Desc: hardened-sources base patch from upstream grsecurity
1062
1063
1064 diff --git a/3.2.69/4420_grsecurity-3.1-3.2.69-201506082246.patch b/3.2.69/4420_grsecurity-3.1-3.2.69-201506232100.patch
1065 similarity index 99%
1066 rename from 3.2.69/4420_grsecurity-3.1-3.2.69-201506082246.patch
1067 rename to 3.2.69/4420_grsecurity-3.1-3.2.69-201506232100.patch
1068 index 35a63ac..873b401 100644
1069 --- a/3.2.69/4420_grsecurity-3.1-3.2.69-201506082246.patch
1070 +++ b/3.2.69/4420_grsecurity-3.1-3.2.69-201506232100.patch
1071 @@ -37854,7 +37854,7 @@ index e47e73b..348e0bd 100644
1072 PCI_VEND_DEV(AMD, FE_GATE_700C), PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1073 AMD762},
1074 diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c
1075 -index 1af531a..3a8ff27 100644
1076 +index 1af531a1..3a8ff27 100644
1077 --- a/drivers/edac/e752x_edac.c
1078 +++ b/drivers/edac/e752x_edac.c
1079 @@ -1380,7 +1380,7 @@ static void __devexit e752x_remove_one(struct pci_dev *pdev)
1080 @@ -96019,6 +96019,40 @@ index 875fed4..7a76cbb 100644
1081 }
1082 }
1083
1084 +diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
1085 +index b0996c1..7e5c12f 100644
1086 +--- a/kernel/trace/trace_events_filter.c
1087 ++++ b/kernel/trace/trace_events_filter.c
1088 +@@ -1343,19 +1343,27 @@ static int check_preds(struct filter_parse_state *ps)
1089 + {
1090 + int n_normal_preds = 0, n_logical_preds = 0;
1091 + struct postfix_elt *elt;
1092 ++ int cnt = 0;
1093 +
1094 + list_for_each_entry(elt, &ps->postfix, list) {
1095 +- if (elt->op == OP_NONE)
1096 ++ if (elt->op == OP_NONE) {
1097 ++ cnt++;
1098 + continue;
1099 ++ }
1100 +
1101 + if (elt->op == OP_AND || elt->op == OP_OR) {
1102 + n_logical_preds++;
1103 ++ cnt--;
1104 + continue;
1105 + }
1106 ++ // OP_NOT is not supported in this kernel, will get
1107 ++ // a reject here when it's backported
1108 ++ cnt--;
1109 + n_normal_preds++;
1110 ++ WARN_ON_ONCE(cnt < 0);
1111 + }
1112 +
1113 +- if (!n_normal_preds || n_logical_preds >= n_normal_preds) {
1114 ++ if (cnt != 1 || !n_normal_preds || n_logical_preds >= n_normal_preds) {
1115 + parse_error(ps, FILT_ERR_INVALID_FILTER, 0);
1116 + return -EINVAL;
1117 + }
1118 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
1119 index a7d2a4c..b034c76 100644
1120 --- a/kernel/trace/trace_functions_graph.c
1121 @@ -104143,7 +104177,7 @@ index 68bbf9f..5ef0d12 100644
1122
1123 return err;
1124 diff --git a/net/core/dev.c b/net/core/dev.c
1125 -index 1c0d862..6117f53 100644
1126 +index 1c0d862..d4946e6 100644
1127 --- a/net/core/dev.c
1128 +++ b/net/core/dev.c
1129 @@ -1142,10 +1142,14 @@ void dev_load(struct net *net, const char *name)
1130 @@ -104179,6 +104213,24 @@ index 1c0d862..6117f53 100644
1131 kfree_skb(skb);
1132 return NET_RX_DROP;
1133 }
1134 +@@ -1961,13 +1965,13 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, u32 features)
1135 +
1136 + if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
1137 + struct net_device *dev = skb->dev;
1138 +- struct ethtool_drvinfo info = {};
1139 ++ const char *driver = "";
1140 +
1141 +- if (dev && dev->ethtool_ops && dev->ethtool_ops->get_drvinfo)
1142 +- dev->ethtool_ops->get_drvinfo(dev, &info);
1143 ++ if (dev && dev->dev.parent)
1144 ++ driver = dev_driver_string(dev->dev.parent);
1145 +
1146 + WARN(1, "%s: caps=(0x%lx, 0x%lx) len=%d data_len=%d ip_summed=%d\n",
1147 +- info.driver, dev ? dev->features : 0L,
1148 ++ driver, dev ? dev->features : 0L,
1149 + skb->sk ? skb->sk->sk_route_caps : 0L,
1150 + skb->len, skb->data_len, skb->ip_summed);
1151 +
1152 @@ -2048,7 +2052,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
1153
1154 struct dev_gso_cb {
1155
1156 diff --git a/4.0.5/0000_README b/4.0.6/0000_README
1157 similarity index 96%
1158 rename from 4.0.5/0000_README
1159 rename to 4.0.6/0000_README
1160 index 0e406e4..62fb720 100644
1161 --- a/4.0.5/0000_README
1162 +++ b/4.0.6/0000_README
1163 @@ -2,7 +2,7 @@ README
1164 -----------------------------------------------------------------------------
1165 Individual Patch Descriptions:
1166 -----------------------------------------------------------------------------
1167 -Patch: 4420_grsecurity-3.1-4.0.5-201506171322.patch
1168 +Patch: 4420_grsecurity-3.1-4.0.6-201506232104.patch
1169 From: http://www.grsecurity.net
1170 Desc: hardened-sources base patch from upstream grsecurity
1171
1172
1173 diff --git a/4.0.5/4420_grsecurity-3.1-4.0.5-201506171322.patch b/4.0.6/4420_grsecurity-3.1-4.0.6-201506232104.patch
1174 similarity index 99%
1175 rename from 4.0.5/4420_grsecurity-3.1-4.0.5-201506171322.patch
1176 rename to 4.0.6/4420_grsecurity-3.1-4.0.6-201506232104.patch
1177 index 97c48de..91512cb 100644
1178 --- a/4.0.5/4420_grsecurity-3.1-4.0.5-201506171322.patch
1179 +++ b/4.0.6/4420_grsecurity-3.1-4.0.6-201506232104.patch
1180 @@ -373,7 +373,7 @@ index 4d68ec8..9546b75 100644
1181
1182 pcd. [PARIDE]
1183 diff --git a/Makefile b/Makefile
1184 -index 1880cf7..a141b1e 100644
1185 +index af6da04..22820aa 100644
1186 --- a/Makefile
1187 +++ b/Makefile
1188 @@ -298,7 +298,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
1189 @@ -6660,7 +6660,7 @@ index 44a1f79..2bd6aa3 100644
1190
1191 void __init gt641xx_irq_init(void)
1192 diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
1193 -index d2bfbc2..a8eacd2 100644
1194 +index be15e52..a089cc4 100644
1195 --- a/arch/mips/kernel/irq.c
1196 +++ b/arch/mips/kernel/irq.c
1197 @@ -76,17 +76,17 @@ void ack_bad_irq(unsigned int irq)
1198 @@ -6684,18 +6684,16 @@ index d2bfbc2..a8eacd2 100644
1199 }
1200
1201 void __init init_IRQ(void)
1202 -@@ -109,7 +109,10 @@ void __init init_IRQ(void)
1203 - #endif
1204 +@@ -110,6 +110,8 @@ void __init init_IRQ(void)
1205 }
1206
1207 + #ifdef CONFIG_DEBUG_STACKOVERFLOW
1208 +
1209 - #ifdef DEBUG_STACKOVERFLOW
1210 +extern void gr_handle_kernel_exploit(void);
1211 -+
1212 static inline void check_stack_overflow(void)
1213 {
1214 unsigned long sp;
1215 -@@ -125,6 +128,7 @@ static inline void check_stack_overflow(void)
1216 +@@ -125,6 +127,7 @@ static inline void check_stack_overflow(void)
1217 printk("do_IRQ: stack overflow: %ld\n",
1218 sp - sizeof(struct thread_info));
1219 dump_stack();
1220 @@ -7186,7 +7184,7 @@ index 4ce7a01..449202a 100644
1221
1222 #endif /* __ASM_OPENRISC_CACHE_H */
1223 diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
1224 -index 226f8ca..9d9b87d 100644
1225 +index 226f8ca9..9d9b87d 100644
1226 --- a/arch/parisc/include/asm/atomic.h
1227 +++ b/arch/parisc/include/asm/atomic.h
1228 @@ -273,6 +273,16 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
1229 @@ -18987,7 +18985,7 @@ index cad82c9..2e5c5c1 100644
1230
1231 #endif /* __KERNEL__ */
1232 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
1233 -index db257a5..b91bc77 100644
1234 +index e657b7b..81fefb444 100644
1235 --- a/arch/x86/include/asm/segment.h
1236 +++ b/arch/x86/include/asm/segment.h
1237 @@ -73,10 +73,15 @@
1238 @@ -19073,7 +19071,7 @@ index db257a5..b91bc77 100644
1239 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3)
1240 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3)
1241 #ifndef CONFIG_PARAVIRT
1242 -@@ -256,7 +275,7 @@ static inline unsigned long get_limit(unsigned long segment)
1243 +@@ -267,7 +286,7 @@ static inline unsigned long get_limit(unsigned long segment)
1244 {
1245 unsigned long __limit;
1246 asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
1247 @@ -24301,7 +24299,7 @@ index 8b7b0a5..2395f29 100644
1248
1249 /* Make sure it is what we expect it to be */
1250 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
1251 -index c4f8d46..2d63ae2 100644
1252 +index b111ab5..3d419ea 100644
1253 --- a/arch/x86/kernel/head64.c
1254 +++ b/arch/x86/kernel/head64.c
1255 @@ -68,12 +68,12 @@ again:
1256 @@ -24354,7 +24352,7 @@ index c4f8d46..2d63ae2 100644
1257 init_level4_pgt[511] = early_level4_pgt[511];
1258
1259 diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
1260 -index f36bd42..0ab4474 100644
1261 +index 30a2aa3..d62e1dd 100644
1262 --- a/arch/x86/kernel/head_32.S
1263 +++ b/arch/x86/kernel/head_32.S
1264 @@ -26,6 +26,12 @@
1265 @@ -24564,7 +24562,7 @@ index f36bd42..0ab4474 100644
1266 movl %eax,%gs
1267
1268 xorl %eax,%eax # Clear LDT
1269 -@@ -512,8 +594,11 @@ setup_once:
1270 +@@ -513,8 +595,11 @@ setup_once:
1271 * relocation. Manually set base address in stack canary
1272 * segment descriptor.
1273 */
1274 @@ -24577,7 +24575,7 @@ index f36bd42..0ab4474 100644
1275 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
1276 shrl $16, %ecx
1277 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
1278 -@@ -548,7 +633,7 @@ ENTRY(early_idt_handler)
1279 +@@ -551,7 +636,7 @@ early_idt_handler_common:
1280 cmpl $2,(%esp) # X86_TRAP_NMI
1281 je is_nmi # Ignore NMI
1282
1283 @@ -24586,7 +24584,7 @@ index f36bd42..0ab4474 100644
1284 je hlt_loop
1285 incl %ss:early_recursion_flag
1286
1287 -@@ -586,8 +671,8 @@ ENTRY(early_idt_handler)
1288 +@@ -589,8 +674,8 @@ early_idt_handler_common:
1289 pushl (20+6*4)(%esp) /* trapno */
1290 pushl $fault_msg
1291 call printk
1292 @@ -24596,7 +24594,7 @@ index f36bd42..0ab4474 100644
1293 hlt_loop:
1294 hlt
1295 jmp hlt_loop
1296 -@@ -607,8 +692,11 @@ ENDPROC(early_idt_handler)
1297 +@@ -610,8 +695,11 @@ ENDPROC(early_idt_handler_common)
1298 /* This is the default interrupt "handler" :-) */
1299 ALIGN
1300 ignore_int:
1301 @@ -24609,7 +24607,7 @@ index f36bd42..0ab4474 100644
1302 pushl %eax
1303 pushl %ecx
1304 pushl %edx
1305 -@@ -617,9 +705,6 @@ ignore_int:
1306 +@@ -620,9 +708,6 @@ ignore_int:
1307 movl $(__KERNEL_DS),%eax
1308 movl %eax,%ds
1309 movl %eax,%es
1310 @@ -24619,7 +24617,7 @@ index f36bd42..0ab4474 100644
1311 pushl 16(%esp)
1312 pushl 24(%esp)
1313 pushl 32(%esp)
1314 -@@ -653,29 +738,34 @@ ENTRY(setup_once_ref)
1315 +@@ -656,29 +741,34 @@ ENTRY(setup_once_ref)
1316 /*
1317 * BSS section
1318 */
1319 @@ -24659,7 +24657,7 @@ index f36bd42..0ab4474 100644
1320 ENTRY(initial_page_table)
1321 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
1322 # if KPMDS == 3
1323 -@@ -694,12 +784,20 @@ ENTRY(initial_page_table)
1324 +@@ -697,12 +787,20 @@ ENTRY(initial_page_table)
1325 # error "Kernel PMDs should be 1, 2 or 3"
1326 # endif
1327 .align PAGE_SIZE /* needs to be page-sized too */
1328 @@ -24681,7 +24679,7 @@ index f36bd42..0ab4474 100644
1329
1330 __INITRODATA
1331 int_msg:
1332 -@@ -727,7 +825,7 @@ fault_msg:
1333 +@@ -730,7 +828,7 @@ fault_msg:
1334 * segment size, and 32-bit linear address value:
1335 */
1336
1337 @@ -24690,7 +24688,7 @@ index f36bd42..0ab4474 100644
1338 .globl boot_gdt_descr
1339 .globl idt_descr
1340
1341 -@@ -736,7 +834,7 @@ fault_msg:
1342 +@@ -739,7 +837,7 @@ fault_msg:
1343 .word 0 # 32 bit align gdt_desc.address
1344 boot_gdt_descr:
1345 .word __BOOT_DS+7
1346 @@ -24699,7 +24697,7 @@ index f36bd42..0ab4474 100644
1347
1348 .word 0 # 32-bit align idt_desc.address
1349 idt_descr:
1350 -@@ -747,7 +845,7 @@ idt_descr:
1351 +@@ -750,7 +848,7 @@ idt_descr:
1352 .word 0 # 32 bit align gdt_desc.address
1353 ENTRY(early_gdt_descr)
1354 .word GDT_ENTRIES*8-1
1355 @@ -24708,7 +24706,7 @@ index f36bd42..0ab4474 100644
1356
1357 /*
1358 * The boot_gdt must mirror the equivalent in setup.S and is
1359 -@@ -756,5 +854,65 @@ ENTRY(early_gdt_descr)
1360 +@@ -759,5 +857,65 @@ ENTRY(early_gdt_descr)
1361 .align L1_CACHE_BYTES
1362 ENTRY(boot_gdt)
1363 .fill GDT_ENTRY_BOOT_CS,8,0
1364 @@ -24777,7 +24775,7 @@ index f36bd42..0ab4474 100644
1365 + .fill PAGE_SIZE_asm - GDT_SIZE,1,0
1366 + .endr
1367 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
1368 -index 6fd514d9..320367e 100644
1369 +index f8a8406..ad6d014 100644
1370 --- a/arch/x86/kernel/head_64.S
1371 +++ b/arch/x86/kernel/head_64.S
1372 @@ -20,6 +20,8 @@
1373 @@ -24886,7 +24884,7 @@ index 6fd514d9..320367e 100644
1374 .word 0
1375 __FINITDATA
1376
1377 -@@ -391,7 +427,7 @@ ENTRY(early_idt_handler)
1378 +@@ -393,7 +429,7 @@ early_idt_handler_common:
1379 call dump_stack
1380 #ifdef CONFIG_KALLSYMS
1381 leaq early_idt_ripmsg(%rip),%rdi
1382 @@ -24895,7 +24893,7 @@ index 6fd514d9..320367e 100644
1383 call __print_symbol
1384 #endif
1385 #endif /* EARLY_PRINTK */
1386 -@@ -420,6 +456,7 @@ ENDPROC(early_idt_handler)
1387 +@@ -422,6 +458,7 @@ ENDPROC(early_idt_handler_common)
1388 early_recursion_flag:
1389 .long 0
1390
1391 @@ -24903,7 +24901,7 @@ index 6fd514d9..320367e 100644
1392 #ifdef CONFIG_EARLY_PRINTK
1393 early_idt_msg:
1394 .asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
1395 -@@ -447,29 +484,52 @@ NEXT_PAGE(early_level4_pgt)
1396 +@@ -449,29 +486,52 @@ NEXT_PAGE(early_level4_pgt)
1397 NEXT_PAGE(early_dynamic_pgts)
1398 .fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
1399
1400 @@ -24965,7 +24963,7 @@ index 6fd514d9..320367e 100644
1401
1402 NEXT_PAGE(level3_kernel_pgt)
1403 .fill L3_START_KERNEL,8,0
1404 -@@ -477,6 +537,9 @@ NEXT_PAGE(level3_kernel_pgt)
1405 +@@ -479,6 +539,9 @@ NEXT_PAGE(level3_kernel_pgt)
1406 .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
1407 .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
1408
1409 @@ -24975,7 +24973,7 @@ index 6fd514d9..320367e 100644
1410 NEXT_PAGE(level2_kernel_pgt)
1411 /*
1412 * 512 MB kernel mapping. We spend a full page on this pagetable
1413 -@@ -492,23 +555,61 @@ NEXT_PAGE(level2_kernel_pgt)
1414 +@@ -494,23 +557,61 @@ NEXT_PAGE(level2_kernel_pgt)
1415 KERNEL_IMAGE_SIZE/PMD_SIZE)
1416
1417 NEXT_PAGE(level2_fixmap_pgt)
1418 @@ -25043,7 +25041,7 @@ index 6fd514d9..320367e 100644
1419
1420 ENTRY(phys_base)
1421 /* This must match the first entry in level2_kernel_pgt */
1422 -@@ -532,8 +633,8 @@ NEXT_PAGE(kasan_zero_pud)
1423 +@@ -534,8 +635,8 @@ NEXT_PAGE(kasan_zero_pud)
1424
1425
1426 #include "../../x86/xen/xen-head.S"
1427 @@ -28723,7 +28721,7 @@ index 106c015..2db7161 100644
1428 0, 0, 0, /* CR3 checked later */
1429 CR4_RESERVED_BITS,
1430 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
1431 -index 4ee827d..a14eff9 100644
1432 +index 4ee827d..83c8e31 100644
1433 --- a/arch/x86/kvm/lapic.c
1434 +++ b/arch/x86/kvm/lapic.c
1435 @@ -56,7 +56,7 @@
1436 @@ -28735,6 +28733,85 @@ index 4ee827d..a14eff9 100644
1437
1438 #define APIC_LVT_NUM 6
1439 /* 14 is the version for Xeon and Pentium 8.4.8*/
1440 +@@ -1064,6 +1064,17 @@ static void update_divide_count(struct kvm_lapic *apic)
1441 + apic->divide_count);
1442 + }
1443 +
1444 ++static void apic_update_lvtt(struct kvm_lapic *apic)
1445 ++{
1446 ++ u32 timer_mode = kvm_apic_get_reg(apic, APIC_LVTT) &
1447 ++ apic->lapic_timer.timer_mode_mask;
1448 ++
1449 ++ if (apic->lapic_timer.timer_mode != timer_mode) {
1450 ++ apic->lapic_timer.timer_mode = timer_mode;
1451 ++ hrtimer_cancel(&apic->lapic_timer.timer);
1452 ++ }
1453 ++}
1454 ++
1455 + static void apic_timer_expired(struct kvm_lapic *apic)
1456 + {
1457 + struct kvm_vcpu *vcpu = apic->vcpu;
1458 +@@ -1272,6 +1283,7 @@ static int apic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val)
1459 + apic_set_reg(apic, APIC_LVTT + 0x10 * i,
1460 + lvt_val | APIC_LVT_MASKED);
1461 + }
1462 ++ apic_update_lvtt(apic);
1463 + atomic_set(&apic->lapic_timer.pending, 0);
1464 +
1465 + }
1466 +@@ -1304,20 +1316,13 @@ static int apic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val)
1467 +
1468 + break;
1469 +
1470 +- case APIC_LVTT: {
1471 +- u32 timer_mode = val & apic->lapic_timer.timer_mode_mask;
1472 +-
1473 +- if (apic->lapic_timer.timer_mode != timer_mode) {
1474 +- apic->lapic_timer.timer_mode = timer_mode;
1475 +- hrtimer_cancel(&apic->lapic_timer.timer);
1476 +- }
1477 +-
1478 ++ case APIC_LVTT:
1479 + if (!kvm_apic_sw_enabled(apic))
1480 + val |= APIC_LVT_MASKED;
1481 + val &= (apic_lvt_mask[0] | apic->lapic_timer.timer_mode_mask);
1482 + apic_set_reg(apic, APIC_LVTT, val);
1483 ++ apic_update_lvtt(apic);
1484 + break;
1485 +- }
1486 +
1487 + case APIC_TMICT:
1488 + if (apic_lvtt_tscdeadline(apic))
1489 +@@ -1552,7 +1557,7 @@ void kvm_lapic_reset(struct kvm_vcpu *vcpu)
1490 +
1491 + for (i = 0; i < APIC_LVT_NUM; i++)
1492 + apic_set_reg(apic, APIC_LVTT + 0x10 * i, APIC_LVT_MASKED);
1493 +- apic->lapic_timer.timer_mode = 0;
1494 ++ apic_update_lvtt(apic);
1495 + apic_set_reg(apic, APIC_LVT0,
1496 + SET_APIC_DELIVERY_MODE(0, APIC_MODE_EXTINT));
1497 +
1498 +@@ -1778,6 +1783,7 @@ void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu,
1499 +
1500 + apic_update_ppr(apic);
1501 + hrtimer_cancel(&apic->lapic_timer.timer);
1502 ++ apic_update_lvtt(apic);
1503 + update_divide_count(apic);
1504 + start_apic_timer(apic);
1505 + apic->irr_pending = true;
1506 +diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
1507 +index 0bc6c65..ca4f92d 100644
1508 +--- a/arch/x86/kvm/lapic.h
1509 ++++ b/arch/x86/kvm/lapic.h
1510 +@@ -165,7 +165,7 @@ static inline u16 apic_logical_id(struct kvm_apic_map *map, u32 ldr)
1511 +
1512 + static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu)
1513 + {
1514 +- return vcpu->arch.apic->pending_events;
1515 ++ return kvm_vcpu_has_lapic(vcpu) && vcpu->arch.apic->pending_events;
1516 + }
1517 +
1518 + bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector);
1519 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
1520 index 6e6d115..43fecbf 100644
1521 --- a/arch/x86/kvm/paging_tmpl.h
1522 @@ -34270,7 +34347,7 @@ index 6440221..f84b5c7 100644
1523 + pax_force_retaddr
1524 ret
1525 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
1526 -index 9875143..36776ae 100644
1527 +index ddeff48..877ead6 100644
1528 --- a/arch/x86/net/bpf_jit_comp.c
1529 +++ b/arch/x86/net/bpf_jit_comp.c
1530 @@ -13,7 +13,11 @@
1531 @@ -34295,49 +34372,7 @@ index 9875143..36776ae 100644
1532 }
1533
1534 struct jit_context {
1535 -@@ -559,6 +565,13 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
1536 - if (is_ereg(dst_reg))
1537 - EMIT1(0x41);
1538 - EMIT3(0xC1, add_1reg(0xC8, dst_reg), 8);
1539 -+
1540 -+ /* emit 'movzwl eax, ax' */
1541 -+ if (is_ereg(dst_reg))
1542 -+ EMIT3(0x45, 0x0F, 0xB7);
1543 -+ else
1544 -+ EMIT2(0x0F, 0xB7);
1545 -+ EMIT1(add_2reg(0xC0, dst_reg, dst_reg));
1546 - break;
1547 - case 32:
1548 - /* emit 'bswap eax' to swap lower 4 bytes */
1549 -@@ -577,6 +590,27 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
1550 - break;
1551 -
1552 - case BPF_ALU | BPF_END | BPF_FROM_LE:
1553 -+ switch (imm32) {
1554 -+ case 16:
1555 -+ /* emit 'movzwl eax, ax' to zero extend 16-bit
1556 -+ * into 64 bit
1557 -+ */
1558 -+ if (is_ereg(dst_reg))
1559 -+ EMIT3(0x45, 0x0F, 0xB7);
1560 -+ else
1561 -+ EMIT2(0x0F, 0xB7);
1562 -+ EMIT1(add_2reg(0xC0, dst_reg, dst_reg));
1563 -+ break;
1564 -+ case 32:
1565 -+ /* emit 'mov eax, eax' to clear upper 32-bits */
1566 -+ if (is_ereg(dst_reg))
1567 -+ EMIT1(0x45);
1568 -+ EMIT2(0x89, add_2reg(0xC0, dst_reg, dst_reg));
1569 -+ break;
1570 -+ case 64:
1571 -+ /* nop */
1572 -+ break;
1573 -+ }
1574 - break;
1575 -
1576 - /* ST: *(u8*)(dst_reg + off) = imm */
1577 -@@ -896,7 +930,9 @@ common_load:
1578 +@@ -924,7 +930,9 @@ common_load:
1579 pr_err("bpf_jit_compile fatal error\n");
1580 return -EFAULT;
1581 }
1582 @@ -34347,7 +34382,7 @@ index 9875143..36776ae 100644
1583 }
1584 proglen += ilen;
1585 addrs[i] = proglen;
1586 -@@ -968,7 +1004,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
1587 +@@ -1001,7 +1009,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
1588
1589 if (image) {
1590 bpf_flush_icache(header, image + proglen);
1591 @@ -34355,7 +34390,7 @@ index 9875143..36776ae 100644
1592 prog->bpf_func = (void *)image;
1593 prog->jited = true;
1594 }
1595 -@@ -981,12 +1016,8 @@ void bpf_jit_free(struct bpf_prog *fp)
1596 +@@ -1014,12 +1021,8 @@ void bpf_jit_free(struct bpf_prog *fp)
1597 unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
1598 struct bpf_binary_header *header = (void *)addr;
1599
1600 @@ -35633,7 +35668,7 @@ index 80ffa5b..a33bd15 100644
1601
1602 return 0;
1603 diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
1604 -index 7b9be98..39bb57f 100644
1605 +index 8533c96..ff98c52 100644
1606 --- a/arch/x86/vdso/Makefile
1607 +++ b/arch/x86/vdso/Makefile
1608 @@ -175,7 +175,7 @@ quiet_cmd_vdso = VDSO $@
1609 @@ -36263,7 +36298,7 @@ index f678c73..f35aa18 100644
1610 err = -EFAULT;
1611 goto out;
1612 diff --git a/block/genhd.c b/block/genhd.c
1613 -index 0a536dc..b8f7aca 100644
1614 +index ea982ea..86e0f9e 100644
1615 --- a/block/genhd.c
1616 +++ b/block/genhd.c
1617 @@ -469,21 +469,24 @@ static char *bdevt_str(dev_t devt, char *buf)
1618 @@ -40163,6 +40198,32 @@ index 832a2c3..1794080 100644
1619 .attrs = cpuidle_default_attrs,
1620 .name = "cpuidle",
1621 };
1622 +diff --git a/drivers/crypto/caam/caamhash.c b/drivers/crypto/caam/caamhash.c
1623 +index f347ab7..08b0da2 100644
1624 +--- a/drivers/crypto/caam/caamhash.c
1625 ++++ b/drivers/crypto/caam/caamhash.c
1626 +@@ -1543,6 +1543,8 @@ static int ahash_init(struct ahash_request *req)
1627 +
1628 + state->current_buf = 0;
1629 + state->buf_dma = 0;
1630 ++ state->buflen_0 = 0;
1631 ++ state->buflen_1 = 0;
1632 +
1633 + return 0;
1634 + }
1635 +diff --git a/drivers/crypto/caam/caamrng.c b/drivers/crypto/caam/caamrng.c
1636 +index ae31e55..a48dc25 100644
1637 +--- a/drivers/crypto/caam/caamrng.c
1638 ++++ b/drivers/crypto/caam/caamrng.c
1639 +@@ -56,7 +56,7 @@
1640 +
1641 + /* Buffer, its dma address and lock */
1642 + struct buf_data {
1643 +- u8 buf[RN_BUF_SIZE];
1644 ++ u8 buf[RN_BUF_SIZE] ____cacheline_aligned;
1645 + dma_addr_t addr;
1646 + struct completion filled;
1647 + u32 hw_desc[DESC_JOB_O_LEN];
1648 diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
1649 index 8d2a772..33826c9 100644
1650 --- a/drivers/crypto/hifn_795x.c
1651 @@ -41973,7 +42034,7 @@ index b928c17..e5d9400 100644
1652 if (regcomp
1653 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
1654 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
1655 -index bd7519f..e1c2cd95 100644
1656 +index aa232fd..7e5f6e1 100644
1657 --- a/drivers/gpu/drm/radeon/radeon_device.c
1658 +++ b/drivers/gpu/drm/radeon/radeon_device.c
1659 @@ -1247,7 +1247,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
1660 @@ -45671,7 +45732,7 @@ index 9b4e30a..83c927d 100644
1661
1662 void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
1663 diff --git a/drivers/md/md.c b/drivers/md/md.c
1664 -index 907534b..8b3554e 100644
1665 +index b7bf8ee..ee17152 100644
1666 --- a/drivers/md/md.c
1667 +++ b/drivers/md/md.c
1668 @@ -191,10 +191,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
1669 @@ -45743,7 +45804,7 @@ index 907534b..8b3554e 100644
1670
1671 INIT_LIST_HEAD(&rdev->same_set);
1672 init_waitqueue_head(&rdev->blocked_wait);
1673 -@@ -7085,7 +7085,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
1674 +@@ -7086,7 +7086,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
1675
1676 spin_unlock(&pers_lock);
1677 seq_printf(seq, "\n");
1678 @@ -45752,7 +45813,7 @@ index 907534b..8b3554e 100644
1679 return 0;
1680 }
1681 if (v == (void*)2) {
1682 -@@ -7188,7 +7188,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
1683 +@@ -7189,7 +7189,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
1684 return error;
1685
1686 seq = file->private_data;
1687 @@ -45761,7 +45822,7 @@ index 907534b..8b3554e 100644
1688 return error;
1689 }
1690
1691 -@@ -7205,7 +7205,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
1692 +@@ -7206,7 +7206,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
1693 /* always allow read */
1694 mask = POLLIN | POLLRDNORM;
1695
1696 @@ -45770,7 +45831,7 @@ index 907534b..8b3554e 100644
1697 mask |= POLLERR | POLLPRI;
1698 return mask;
1699 }
1700 -@@ -7252,7 +7252,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
1701 +@@ -7253,7 +7253,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
1702 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
1703 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
1704 (int)part_stat_read(&disk->part0, sectors[1]) -
1705 @@ -49007,7 +49068,7 @@ index badff18..e15c4ec 100644
1706 break;
1707 }
1708 diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
1709 -index e6b790f..051ba2d 100644
1710 +index 893753f..3b5d790 100644
1711 --- a/drivers/net/ethernet/emulex/benet/be_main.c
1712 +++ b/drivers/net/ethernet/emulex/benet/be_main.c
1713 @@ -536,7 +536,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
1714 @@ -54305,7 +54366,7 @@ index bce16e4..1120a85 100644
1715
1716 dlci->modem_rx = 0;
1717 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
1718 -index cc57a3a..b39622b 100644
1719 +index eee40b5..796fb03 100644
1720 --- a/drivers/tty/n_tty.c
1721 +++ b/drivers/tty/n_tty.c
1722 @@ -116,7 +116,7 @@ struct n_tty_data {
1723 @@ -54317,7 +54378,7 @@ index cc57a3a..b39622b 100644
1724 size_t line_start;
1725
1726 /* protected by output lock */
1727 -@@ -2561,6 +2561,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
1728 +@@ -2572,6 +2572,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
1729 {
1730 *ops = tty_ldisc_N_TTY;
1731 ops->owner = NULL;
1732 @@ -66081,10 +66142,10 @@ index 8a1d38e..300a14e 100644
1733 &data);
1734 if (!inode) {
1735 diff --git a/fs/aio.c b/fs/aio.c
1736 -index a793f70..46f45af 100644
1737 +index a1736e9..c80a8ac 100644
1738 --- a/fs/aio.c
1739 +++ b/fs/aio.c
1740 -@@ -404,7 +404,7 @@ static int aio_setup_ring(struct kioctx *ctx)
1741 +@@ -409,7 +409,7 @@ static int aio_setup_ring(struct kioctx *ctx)
1742 size += sizeof(struct io_event) * nr_events;
1743
1744 nr_pages = PFN_UP(size);
1745 @@ -67264,7 +67325,7 @@ index f70119f..ab5894d 100644
1746 spin_lock_init(&delayed_root->lock);
1747 init_waitqueue_head(&delayed_root->wait);
1748 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
1749 -index 05fef19..f3774b8 100644
1750 +index e477ed6..480c0db 100644
1751 --- a/fs/btrfs/super.c
1752 +++ b/fs/btrfs/super.c
1753 @@ -271,7 +271,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
1754 @@ -94712,7 +94773,7 @@ index 0f712c0..cd762c4 100644
1755 return;
1756 }
1757 diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
1758 -index 5976bde..3a81660 100644
1759 +index 9fe865c..43735aa 100644
1760 --- a/include/net/inet_connection_sock.h
1761 +++ b/include/net/inet_connection_sock.h
1762 @@ -63,7 +63,7 @@ struct inet_connection_sock_af_ops {
1763 @@ -101387,7 +101448,7 @@ index f4da2cb..e44587b 100644
1764 #else
1765 static void register_sched_domain_sysctl(void)
1766 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
1767 -index 241213b..6a64c91 100644
1768 +index 486d00c..62f3f6e 100644
1769 --- a/kernel/sched/fair.c
1770 +++ b/kernel/sched/fair.c
1771 @@ -2092,7 +2092,7 @@ void task_numa_fault(int last_cpupid, int mem_node, int pages, int flags)
1772 @@ -102956,6 +103017,39 @@ index a9c10a3..1864f6b 100644
1773 static void __add_event_to_tracers(struct ftrace_event_call *call);
1774
1775 /* Add an additional event_call dynamically */
1776 +diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
1777 +index ced69da..7f2e97c 100644
1778 +--- a/kernel/trace/trace_events_filter.c
1779 ++++ b/kernel/trace/trace_events_filter.c
1780 +@@ -1369,19 +1369,26 @@ static int check_preds(struct filter_parse_state *ps)
1781 + {
1782 + int n_normal_preds = 0, n_logical_preds = 0;
1783 + struct postfix_elt *elt;
1784 ++ int cnt = 0;
1785 +
1786 + list_for_each_entry(elt, &ps->postfix, list) {
1787 +- if (elt->op == OP_NONE)
1788 ++ if (elt->op == OP_NONE) {
1789 ++ cnt++;
1790 + continue;
1791 ++ }
1792 +
1793 + if (elt->op == OP_AND || elt->op == OP_OR) {
1794 + n_logical_preds++;
1795 ++ cnt--;
1796 + continue;
1797 + }
1798 ++ if (elt->op != OP_NOT)
1799 ++ cnt--;
1800 + n_normal_preds++;
1801 ++ WARN_ON_ONCE(cnt < 0);
1802 + }
1803 +
1804 +- if (!n_normal_preds || n_logical_preds >= n_normal_preds) {
1805 ++ if (cnt != 1 || !n_normal_preds || n_logical_preds >= n_normal_preds) {
1806 + parse_error(ps, FILT_ERR_INVALID_FILTER, 0);
1807 + return -EINVAL;
1808 + }
1809 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
1810 index b6fce36..d9f11a3 100644
1811 --- a/kernel/trace/trace_functions_graph.c
1812 @@ -103826,6 +103920,28 @@ index ecb9a66..a044fc5 100644
1813 retval = 1;
1814 }
1815 spin_unlock(&lockref->lock);
1816 +diff --git a/lib/mpi/longlong.h b/lib/mpi/longlong.h
1817 +index aac5114..a89d041 100644
1818 +--- a/lib/mpi/longlong.h
1819 ++++ b/lib/mpi/longlong.h
1820 +@@ -639,7 +639,7 @@ do { \
1821 + ************** MIPS *****************
1822 + ***************************************/
1823 + #if defined(__mips__) && W_TYPE_SIZE == 32
1824 +-#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4
1825 ++#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
1826 + #define umul_ppmm(w1, w0, u, v) \
1827 + do { \
1828 + UDItype __ll = (UDItype)(u) * (v); \
1829 +@@ -671,7 +671,7 @@ do { \
1830 + ************** MIPS/64 **************
1831 + ***************************************/
1832 + #if (defined(__mips) && __mips >= 3) && W_TYPE_SIZE == 64
1833 +-#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4
1834 ++#if (__GNUC__ >= 5) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 4)
1835 + #define umul_ppmm(w1, w0, u, v) \
1836 + do { \
1837 + typedef unsigned int __ll_UTItype __attribute__((mode(TI))); \
1838 diff --git a/lib/nlattr.c b/lib/nlattr.c
1839 index f5907d2..36072be 100644
1840 --- a/lib/nlattr.c
1841 @@ -104173,7 +104289,7 @@ index 957d3da..1d34e20 100644
1842 depends on !KMEMCHECK
1843 select PAGE_EXTENSION
1844 diff --git a/mm/backing-dev.c b/mm/backing-dev.c
1845 -index 6dc4580..e031ec1 100644
1846 +index 000e7b3..aad2605 100644
1847 --- a/mm/backing-dev.c
1848 +++ b/mm/backing-dev.c
1849 @@ -12,7 +12,7 @@
1850 @@ -104185,7 +104301,7 @@ index 6dc4580..e031ec1 100644
1851
1852 struct backing_dev_info noop_backing_dev_info = {
1853 .name = "noop",
1854 -@@ -474,7 +474,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
1855 +@@ -458,7 +458,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
1856 return err;
1857
1858 err = bdi_register(bdi, NULL, "%.28s-%ld", name,
1859 @@ -107141,7 +107257,7 @@ index 2dc44b1..caa1819 100644
1860 out:
1861 if (ret & ~PAGE_MASK)
1862 diff --git a/mm/nommu.c b/mm/nommu.c
1863 -index 3fba2dc..fdad748 100644
1864 +index 3fba2dc9..fdad748 100644
1865 --- a/mm/nommu.c
1866 +++ b/mm/nommu.c
1867 @@ -72,7 +72,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
1868 @@ -110160,7 +110276,7 @@ index df493d6..1145766 100644
1869
1870 return err;
1871 diff --git a/net/core/dev.c b/net/core/dev.c
1872 -index 22a53ac..1d19af7 100644
1873 +index e977e15..74b19b0 100644
1874 --- a/net/core/dev.c
1875 +++ b/net/core/dev.c
1876 @@ -1681,14 +1681,14 @@ int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
1877 @@ -110322,10 +110438,51 @@ index 1033725..340f65d 100644
1878 fle->object = flo;
1879 else
1880 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
1881 -index 70fe9e1..926784c 100644
1882 +index 70fe9e1..c55e69d 100644
1883 --- a/net/core/neighbour.c
1884 +++ b/net/core/neighbour.c
1885 -@@ -2806,7 +2806,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
1886 +@@ -971,6 +971,8 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
1887 + rc = 0;
1888 + if (neigh->nud_state & (NUD_CONNECTED | NUD_DELAY | NUD_PROBE))
1889 + goto out_unlock_bh;
1890 ++ if (neigh->dead)
1891 ++ goto out_dead;
1892 +
1893 + if (!(neigh->nud_state & (NUD_STALE | NUD_INCOMPLETE))) {
1894 + if (NEIGH_VAR(neigh->parms, MCAST_PROBES) +
1895 +@@ -1027,6 +1029,13 @@ out_unlock_bh:
1896 + write_unlock(&neigh->lock);
1897 + local_bh_enable();
1898 + return rc;
1899 ++
1900 ++out_dead:
1901 ++ if (neigh->nud_state & NUD_STALE)
1902 ++ goto out_unlock_bh;
1903 ++ write_unlock_bh(&neigh->lock);
1904 ++ kfree_skb(skb);
1905 ++ return 1;
1906 + }
1907 + EXPORT_SYMBOL(__neigh_event_send);
1908 +
1909 +@@ -1090,6 +1099,8 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
1910 + if (!(flags & NEIGH_UPDATE_F_ADMIN) &&
1911 + (old & (NUD_NOARP | NUD_PERMANENT)))
1912 + goto out;
1913 ++ if (neigh->dead)
1914 ++ goto out;
1915 +
1916 + if (!(new & NUD_VALID)) {
1917 + neigh_del_timer(neigh);
1918 +@@ -1239,6 +1250,8 @@ EXPORT_SYMBOL(neigh_update);
1919 + */
1920 + void __neigh_set_probe_once(struct neighbour *neigh)
1921 + {
1922 ++ if (neigh->dead)
1923 ++ return;
1924 + neigh->updated = jiffies;
1925 + if (!(neigh->nud_state & NUD_FAILED))
1926 + return;
1927 +@@ -2806,7 +2819,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
1928 void __user *buffer, size_t *lenp, loff_t *ppos)
1929 {
1930 int size, ret;
1931 @@ -110334,7 +110491,7 @@ index 70fe9e1..926784c 100644
1932
1933 tmp.extra1 = &zero;
1934 tmp.extra2 = &unres_qlen_max;
1935 -@@ -2868,7 +2868,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
1936 +@@ -2868,7 +2881,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
1937 void __user *buffer,
1938 size_t *lenp, loff_t *ppos)
1939 {
1940 @@ -110483,7 +110640,7 @@ index 508155b..fad080f 100644
1941 pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
1942 return -ENODEV;
1943 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
1944 -index 7ebed55..378bf34 100644
1945 +index a2b90e1..7882f75 100644
1946 --- a/net/core/rtnetlink.c
1947 +++ b/net/core/rtnetlink.c
1948 @@ -61,7 +61,7 @@ struct rtnl_link {
1949 @@ -111639,7 +111796,7 @@ index f027a70..2e64edc 100644
1950
1951 static int raw_seq_show(struct seq_file *seq, void *v)
1952 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
1953 -index 20fc020..3ba426f 100644
1954 +index e262a08..d1fc3be 100644
1955 --- a/net/ipv4/route.c
1956 +++ b/net/ipv4/route.c
1957 @@ -228,7 +228,7 @@ static const struct seq_operations rt_cache_seq_ops = {
1958 @@ -111692,7 +111849,7 @@ index 20fc020..3ba426f 100644
1959 }
1960 EXPORT_SYMBOL(ip_idents_reserve);
1961
1962 -@@ -2639,34 +2639,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
1963 +@@ -2643,34 +2643,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
1964 .maxlen = sizeof(int),
1965 .mode = 0200,
1966 .proc_handler = ipv4_sysctl_rtcache_flush,
1967 @@ -111735,7 +111892,7 @@ index 20fc020..3ba426f 100644
1968 err_dup:
1969 return -ENOMEM;
1970 }
1971 -@@ -2689,8 +2689,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
1972 +@@ -2693,8 +2693,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
1973
1974 static __net_init int rt_genid_init(struct net *net)
1975 {
1976 @@ -111746,7 +111903,7 @@ index 20fc020..3ba426f 100644
1977 get_random_bytes(&net->ipv4.dev_addr_genid,
1978 sizeof(net->ipv4.dev_addr_genid));
1979 return 0;
1980 -@@ -2734,11 +2734,7 @@ int __init ip_rt_init(void)
1981 +@@ -2738,11 +2738,7 @@ int __init ip_rt_init(void)
1982 int rc = 0;
1983 int cpu;
1984
1985 @@ -111977,7 +112134,7 @@ index f1756ee..8908cb0 100644
1986 }
1987
1988 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
1989 -index dd11ac7..c0872da 100644
1990 +index 50277af..defe393 100644
1991 --- a/net/ipv4/tcp_minisocks.c
1992 +++ b/net/ipv4/tcp_minisocks.c
1993 @@ -27,6 +27,10 @@
1994 @@ -111991,7 +112148,7 @@ index dd11ac7..c0872da 100644
1995 int sysctl_tcp_syncookies __read_mostly = 1;
1996 EXPORT_SYMBOL(sysctl_tcp_syncookies);
1997
1998 -@@ -785,7 +789,10 @@ embryonic_reset:
1999 +@@ -788,7 +792,10 @@ embryonic_reset:
2000 * avoid becoming vulnerable to outside attack aiming at
2001 * resetting legit local connections.
2002 */
2003 @@ -112046,7 +112203,7 @@ index 0732b78..a82bdc6 100644
2004 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
2005 /* Has it gone just too far? */
2006 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
2007 -index 97ef1f8b..abeb965 100644
2008 +index 51f1745..4bc0427 100644
2009 --- a/net/ipv4/udp.c
2010 +++ b/net/ipv4/udp.c
2011 @@ -87,6 +87,7 @@
2012 @@ -112057,7 +112214,7 @@ index 97ef1f8b..abeb965 100644
2013 #include <linux/socket.h>
2014 #include <linux/sockios.h>
2015 #include <linux/igmp.h>
2016 -@@ -114,6 +115,10 @@
2017 +@@ -115,6 +116,10 @@
2018 #include <net/busy_poll.h>
2019 #include "udp_impl.h"
2020
2021 @@ -112068,7 +112225,7 @@ index 97ef1f8b..abeb965 100644
2022 struct udp_table udp_table __read_mostly;
2023 EXPORT_SYMBOL(udp_table);
2024
2025 -@@ -608,6 +613,9 @@ static inline bool __udp_is_mcast_sock(struct net *net, struct sock *sk,
2026 +@@ -609,6 +614,9 @@ static inline bool __udp_is_mcast_sock(struct net *net, struct sock *sk,
2027 return true;
2028 }
2029
2030 @@ -112078,7 +112235,7 @@ index 97ef1f8b..abeb965 100644
2031 /*
2032 * This routine is called by the ICMP module when it gets some
2033 * sort of error condition. If err < 0 then the socket should
2034 -@@ -945,9 +953,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
2035 +@@ -946,9 +954,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
2036 dport = usin->sin_port;
2037 if (dport == 0)
2038 return -EINVAL;
2039 @@ -112097,7 +112254,7 @@ index 97ef1f8b..abeb965 100644
2040 daddr = inet->inet_daddr;
2041 dport = inet->inet_dport;
2042 /* Open fast path for connected socket.
2043 -@@ -1195,7 +1212,7 @@ static unsigned int first_packet_length(struct sock *sk)
2044 +@@ -1196,7 +1213,7 @@ static unsigned int first_packet_length(struct sock *sk)
2045 IS_UDPLITE(sk));
2046 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
2047 IS_UDPLITE(sk));
2048 @@ -112106,7 +112263,7 @@ index 97ef1f8b..abeb965 100644
2049 __skb_unlink(skb, rcvq);
2050 __skb_queue_tail(&list_kill, skb);
2051 }
2052 -@@ -1275,6 +1292,10 @@ try_again:
2053 +@@ -1276,6 +1293,10 @@ try_again:
2054 if (!skb)
2055 goto out;
2056
2057 @@ -112117,7 +112274,7 @@ index 97ef1f8b..abeb965 100644
2058 ulen = skb->len - sizeof(struct udphdr);
2059 copied = len;
2060 if (copied > ulen)
2061 -@@ -1307,7 +1328,7 @@ try_again:
2062 +@@ -1308,7 +1329,7 @@ try_again:
2063 if (unlikely(err)) {
2064 trace_kfree_skb(skb, udp_recvmsg);
2065 if (!peeked) {
2066 @@ -112126,20 +112283,7 @@ index 97ef1f8b..abeb965 100644
2067 UDP_INC_STATS_USER(sock_net(sk),
2068 UDP_MIB_INERRORS, is_udplite);
2069 }
2070 -@@ -1348,10 +1369,8 @@ csum_copy_err:
2071 - }
2072 - unlock_sock_fast(sk, slow);
2073 -
2074 -- if (noblock)
2075 -- return -EAGAIN;
2076 --
2077 -- /* starting over for a new packet */
2078 -+ /* starting over for a new packet, but check if we need to yield */
2079 -+ cond_resched();
2080 - msg->msg_flags &= ~MSG_TRUNC;
2081 - goto try_again;
2082 - }
2083 -@@ -1605,7 +1624,7 @@ csum_error:
2084 +@@ -1604,7 +1625,7 @@ csum_error:
2085 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
2086 drop:
2087 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
2088 @@ -112148,7 +112292,7 @@ index 97ef1f8b..abeb965 100644
2089 kfree_skb(skb);
2090 return -1;
2091 }
2092 -@@ -1624,7 +1643,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
2093 +@@ -1623,7 +1644,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
2094 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
2095
2096 if (!skb1) {
2097 @@ -112157,7 +112301,7 @@ index 97ef1f8b..abeb965 100644
2098 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
2099 IS_UDPLITE(sk));
2100 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
2101 -@@ -1830,6 +1849,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
2102 +@@ -1829,6 +1850,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
2103 goto csum_error;
2104
2105 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
2106 @@ -112167,7 +112311,7 @@ index 97ef1f8b..abeb965 100644
2107 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
2108
2109 /*
2110 -@@ -2416,7 +2438,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
2111 +@@ -2426,7 +2450,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
2112 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
2113 0, sock_i_ino(sp),
2114 atomic_read(&sp->sk_refcnt), sp,
2115 @@ -112849,7 +112993,7 @@ index c5c10fa..2577d51 100644
2116 struct ctl_table *ipv6_icmp_table;
2117 int err;
2118 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
2119 -index 1f5e622..8387d90 100644
2120 +index 5ca3bc8..8c53c81 100644
2121 --- a/net/ipv6/tcp_ipv6.c
2122 +++ b/net/ipv6/tcp_ipv6.c
2123 @@ -104,6 +104,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
2124 @@ -112908,7 +113052,7 @@ index 1f5e622..8387d90 100644
2125 }
2126
2127 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
2128 -index d048d46..cacb4d2 100644
2129 +index 1c9512a..786b8d6 100644
2130 --- a/net/ipv6/udp.c
2131 +++ b/net/ipv6/udp.c
2132 @@ -76,6 +76,10 @@ static unsigned int udp6_ehashfn(struct net *net,
2133 @@ -112931,20 +113075,7 @@ index d048d46..cacb4d2 100644
2134 if (is_udp4)
2135 UDP_INC_STATS_USER(sock_net(sk),
2136 UDP_MIB_INERRORS,
2137 -@@ -528,10 +532,8 @@ csum_copy_err:
2138 - }
2139 - unlock_sock_fast(sk, slow);
2140 -
2141 -- if (noblock)
2142 -- return -EAGAIN;
2143 --
2144 -- /* starting over for a new packet */
2145 -+ /* starting over for a new packet, but check if we need to yield */
2146 -+ cond_resched();
2147 - msg->msg_flags &= ~MSG_TRUNC;
2148 - goto try_again;
2149 - }
2150 -@@ -714,7 +716,7 @@ csum_error:
2151 +@@ -712,7 +716,7 @@ csum_error:
2152 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
2153 drop:
2154 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
2155 @@ -112953,7 +113084,7 @@ index d048d46..cacb4d2 100644
2156 kfree_skb(skb);
2157 return -1;
2158 }
2159 -@@ -753,7 +755,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
2160 +@@ -753,7 +757,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
2161 if (likely(skb1 == NULL))
2162 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
2163 if (!skb1) {
2164 @@ -112962,7 +113093,7 @@ index d048d46..cacb4d2 100644
2165 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
2166 IS_UDPLITE(sk));
2167 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
2168 -@@ -937,6 +939,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
2169 +@@ -937,6 +941,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
2170 goto csum_error;
2171
2172 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
2173 @@ -114083,7 +114214,7 @@ index 11de55e..f25e448 100644
2174 return 0;
2175 }
2176 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
2177 -index d1d7a81..b45b03d 100644
2178 +index 0e9c28d..d99773f 100644
2179 --- a/net/netlink/af_netlink.c
2180 +++ b/net/netlink/af_netlink.c
2181 @@ -260,7 +260,7 @@ static void netlink_overrun(struct sock *sk)
2182 @@ -114095,7 +114226,7 @@ index d1d7a81..b45b03d 100644
2183 }
2184
2185 static void netlink_rcv_wake(struct sock *sk)
2186 -@@ -3002,7 +3002,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
2187 +@@ -3005,7 +3005,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
2188 sk_wmem_alloc_get(s),
2189 nlk->cb_running,
2190 atomic_read(&s->sk_refcnt),
2191 @@ -114180,7 +114311,7 @@ index bc85331..0d3dce0 100644
2192 /**
2193 * struct vport_portids - array of netlink portids of a vport.
2194 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
2195 -index f8db706..2b4631e 100644
2196 +index f8db706..0e29f8f 100644
2197 --- a/net/packet/af_packet.c
2198 +++ b/net/packet/af_packet.c
2199 @@ -269,7 +269,7 @@ static int packet_direct_xmit(struct sk_buff *skb)
2200 @@ -114192,7 +114323,40 @@ index f8db706..2b4631e 100644
2201 kfree_skb(skb);
2202 return NET_XMIT_DROP;
2203 }
2204 -@@ -1847,7 +1847,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
2205 +@@ -1266,16 +1266,6 @@ static void packet_sock_destruct(struct sock *sk)
2206 + sk_refcnt_debug_dec(sk);
2207 + }
2208 +
2209 +-static int fanout_rr_next(struct packet_fanout *f, unsigned int num)
2210 +-{
2211 +- int x = atomic_read(&f->rr_cur) + 1;
2212 +-
2213 +- if (x >= num)
2214 +- x = 0;
2215 +-
2216 +- return x;
2217 +-}
2218 +-
2219 + static unsigned int fanout_demux_hash(struct packet_fanout *f,
2220 + struct sk_buff *skb,
2221 + unsigned int num)
2222 +@@ -1287,13 +1277,9 @@ static unsigned int fanout_demux_lb(struct packet_fanout *f,
2223 + struct sk_buff *skb,
2224 + unsigned int num)
2225 + {
2226 +- int cur, old;
2227 ++ unsigned int val = atomic_inc_return(&f->rr_cur);
2228 +
2229 +- cur = atomic_read(&f->rr_cur);
2230 +- while ((old = atomic_cmpxchg(&f->rr_cur, cur,
2231 +- fanout_rr_next(f, num))) != cur)
2232 +- cur = old;
2233 +- return cur;
2234 ++ return val % num;
2235 + }
2236 +
2237 + static unsigned int fanout_demux_cpu(struct packet_fanout *f,
2238 +@@ -1847,7 +1833,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
2239
2240 spin_lock(&sk->sk_receive_queue.lock);
2241 po->stats.stats1.tp_packets++;
2242 @@ -114201,7 +114365,7 @@ index f8db706..2b4631e 100644
2243 __skb_queue_tail(&sk->sk_receive_queue, skb);
2244 spin_unlock(&sk->sk_receive_queue.lock);
2245 sk->sk_data_ready(sk);
2246 -@@ -1856,7 +1856,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
2247 +@@ -1856,7 +1842,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
2248 drop_n_acct:
2249 spin_lock(&sk->sk_receive_queue.lock);
2250 po->stats.stats1.tp_drops++;
2251 @@ -114210,7 +114374,7 @@ index f8db706..2b4631e 100644
2252 spin_unlock(&sk->sk_receive_queue.lock);
2253
2254 drop_n_restore:
2255 -@@ -3499,7 +3499,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
2256 +@@ -3499,7 +3485,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
2257 case PACKET_HDRLEN:
2258 if (len > sizeof(int))
2259 len = sizeof(int);
2260 @@ -114219,7 +114383,7 @@ index f8db706..2b4631e 100644
2261 return -EFAULT;
2262 switch (val) {
2263 case TPACKET_V1:
2264 -@@ -3545,7 +3545,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
2265 +@@ -3545,7 +3531,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
2266 len = lv;
2267 if (put_user(len, optlen))
2268 return -EFAULT;
2269 @@ -115710,7 +115874,7 @@ index 72c339e..a93593a 100644
2270 sub->evt.event = htohl(event, sub->swap);
2271 sub->evt.found_lower = htohl(found_lower, sub->swap);
2272 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
2273 -index 526b6ed..ec20275 100644
2274 +index 146881f..9441ed2 100644
2275 --- a/net/unix/af_unix.c
2276 +++ b/net/unix/af_unix.c
2277 @@ -791,6 +791,12 @@ static struct sock *unix_find_other(struct net *net,
2278 @@ -115759,7 +115923,7 @@ index 526b6ed..ec20275 100644
2279 done_path_create(&path, dentry);
2280 return err;
2281 }
2282 -@@ -2233,11 +2252,14 @@ static unsigned int unix_dgram_poll(struct file *file, struct socket *sock,
2283 +@@ -2241,11 +2260,14 @@ static unsigned int unix_dgram_poll(struct file *file, struct socket *sock,
2284 writable = unix_writable(sk);
2285 other = unix_peer_get(sk);
2286 if (other) {
2287 @@ -115776,7 +115940,7 @@ index 526b6ed..ec20275 100644
2288 sock_put(other);
2289 }
2290
2291 -@@ -2334,9 +2356,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
2292 +@@ -2342,9 +2364,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
2293 seq_puts(seq, "Num RefCount Protocol Flags Type St "
2294 "Inode Path\n");
2295 else {
2296 @@ -115791,7 +115955,7 @@ index 526b6ed..ec20275 100644
2297
2298 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
2299 s,
2300 -@@ -2361,10 +2387,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
2301 +@@ -2369,10 +2395,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
2302 seq_putc(seq, '@');
2303 i++;
2304 }
2305 @@ -126174,10 +126338,10 @@ index 0000000..b8e7188
2306 +}
2307 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
2308 new file mode 100644
2309 -index 0000000..19e2901
2310 +index 0000000..89e8e68
2311 --- /dev/null
2312 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
2313 -@@ -0,0 +1,27981 @@
2314 +@@ -0,0 +1,27982 @@
2315 +intel_fake_agp_alloc_by_type_1 intel_fake_agp_alloc_by_type 1 1 NULL nohasharray
2316 +iwl_set_tx_power_1 iwl_set_tx_power 0 1 &intel_fake_agp_alloc_by_type_1
2317 +ocfs2_get_refcount_tree_3 ocfs2_get_refcount_tree 0 3 NULL
2318 @@ -141936,7 +142100,8 @@ index 0000000..19e2901
2319 +cyapa_gen5_bl_exit_36644 cyapa_gen5_bl_exit 0 36644 &ov2640_write_array_36644
2320 +m66592_udc_start_36646 m66592_udc_start 0 36646 NULL
2321 +mem_cgroup_do_precharge_36647 mem_cgroup_do_precharge 0 36647 NULL
2322 -+lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL
2323 ++lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL nohasharray
2324 ++tty_copy_to_user_36648 tty_copy_to_user 4 36648 &lpfc_idiag_extacc_alloc_get_36648
2325 +add_dev_support_show_36650 add_dev_support_show 0 36650 NULL
2326 +hfsplus_osx_listxattr_36654 hfsplus_osx_listxattr 0-5 36654 NULL nohasharray
2327 +interface_show_36654 interface_show 0 36654 &hfsplus_osx_listxattr_36654
2328
2329 diff --git a/3.14.44/4425_grsec_remove_EI_PAX.patch b/4.0.6/4425_grsec_remove_EI_PAX.patch
2330 similarity index 100%
2331 rename from 3.14.44/4425_grsec_remove_EI_PAX.patch
2332 rename to 4.0.6/4425_grsec_remove_EI_PAX.patch
2333
2334 diff --git a/4.0.5/4427_force_XATTR_PAX_tmpfs.patch b/4.0.6/4427_force_XATTR_PAX_tmpfs.patch
2335 similarity index 100%
2336 rename from 4.0.5/4427_force_XATTR_PAX_tmpfs.patch
2337 rename to 4.0.6/4427_force_XATTR_PAX_tmpfs.patch
2338
2339 diff --git a/3.14.44/4430_grsec-remove-localversion-grsec.patch b/4.0.6/4430_grsec-remove-localversion-grsec.patch
2340 similarity index 100%
2341 rename from 3.14.44/4430_grsec-remove-localversion-grsec.patch
2342 rename to 4.0.6/4430_grsec-remove-localversion-grsec.patch
2343
2344 diff --git a/4.0.5/4435_grsec-mute-warnings.patch b/4.0.6/4435_grsec-mute-warnings.patch
2345 similarity index 100%
2346 rename from 4.0.5/4435_grsec-mute-warnings.patch
2347 rename to 4.0.6/4435_grsec-mute-warnings.patch
2348
2349 diff --git a/3.14.44/4440_grsec-remove-protected-paths.patch b/4.0.6/4440_grsec-remove-protected-paths.patch
2350 similarity index 100%
2351 rename from 3.14.44/4440_grsec-remove-protected-paths.patch
2352 rename to 4.0.6/4440_grsec-remove-protected-paths.patch
2353
2354 diff --git a/4.0.5/4450_grsec-kconfig-default-gids.patch b/4.0.6/4450_grsec-kconfig-default-gids.patch
2355 similarity index 100%
2356 rename from 4.0.5/4450_grsec-kconfig-default-gids.patch
2357 rename to 4.0.6/4450_grsec-kconfig-default-gids.patch
2358
2359 diff --git a/4.0.5/4465_selinux-avc_audit-log-curr_ip.patch b/4.0.6/4465_selinux-avc_audit-log-curr_ip.patch
2360 similarity index 100%
2361 rename from 4.0.5/4465_selinux-avc_audit-log-curr_ip.patch
2362 rename to 4.0.6/4465_selinux-avc_audit-log-curr_ip.patch
2363
2364 diff --git a/4.0.5/4470_disable-compat_vdso.patch b/4.0.6/4470_disable-compat_vdso.patch
2365 similarity index 100%
2366 rename from 4.0.5/4470_disable-compat_vdso.patch
2367 rename to 4.0.6/4470_disable-compat_vdso.patch
2368
2369 diff --git a/3.14.44/4475_emutramp_default_on.patch b/4.0.6/4475_emutramp_default_on.patch
2370 similarity index 100%
2371 rename from 3.14.44/4475_emutramp_default_on.patch
2372 rename to 4.0.6/4475_emutramp_default_on.patch