From f3dcfdf3632a1b9ea975c80c78c6402eb5d4a8e7 Mon Sep 17 00:00:00 2001
From: Leonardo Arena <rnalrd@alpinelinux.org>
Date: Wed, 11 Dec 2013 13:28:49 +0000
Subject: [PATCH] main/linux-virt-grsec: upgrade to 3.10.23

---
 main/linux-virt-grsec/APKBUILD                |  14 +-
 ...grsecurity-2.9.1-3.10.23-unofficial.patch} | 717 +++++++++---------
 2 files changed, 367 insertions(+), 364 deletions(-)
 rename main/linux-virt-grsec/{grsecurity-2.9.1-3.10.20-unofficial.patch => grsecurity-2.9.1-3.10.23-unofficial.patch} (99%)

diff --git a/main/linux-virt-grsec/APKBUILD b/main/linux-virt-grsec/APKBUILD
index d6b53fb49336..d844817155d0 100644
--- a/main/linux-virt-grsec/APKBUILD
+++ b/main/linux-virt-grsec/APKBUILD
@@ -3,7 +3,7 @@
 
 _flavor=grsec
 pkgname=linux-virt-${_flavor}
-pkgver=3.10.20
+pkgver=3.10.23
 case $pkgver in
 *.*.*)	_kernver=${pkgver%.*};;
 *.*)	_kernver=${pkgver};;
@@ -151,8 +151,8 @@ dev() {
 }
 
 md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481  linux-3.10.tar.xz
-6762bab77ec96530b8915728f3bfb813  patch-3.10.20.xz
-f8921f35e2a0c11e7358359d90bd24d4  grsecurity-2.9.1-3.10.20-unofficial.patch
+8b9650e10f8beee769545b51202766a5  patch-3.10.23.xz
+82efe899230f7246ca99f3d334c0c1b8  grsecurity-2.9.1-3.10.23-unofficial.patch
 a16f11b12381efb3bec79b9bfb329836  0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
 656ae7b10dd2f18dbfa1011041d08d60  0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
 aa454ffb96428586447775c21449e284  0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -164,8 +164,8 @@ b3c0153d53e508e03d73b94d15b24a96  sysctl_lxc.patch
 539c848d541c1656851fe865018273df  kernelconfig.x86
 82cd965fc82651f2e6b35e75c17d8031  kernelconfig.x86_64"
 sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544  linux-3.10.tar.xz
-b6d2a828c38e2791d3490d7f05556156f4a0624cb55460631b8e2667c66527fa  patch-3.10.20.xz
-7f11be19130a61aad90eb27e0205b5d729150688c35829818499df76c8d8bdae  grsecurity-2.9.1-3.10.20-unofficial.patch
+bdf3983ff3e26c5781edb19a8d0d7765e2e0282cfabda2b0652cc0deff53f445  patch-3.10.23.xz
+f0dfa654e64e79c96127a0f8cd4867a0170f099c7116e7f45e27572294b1b818  grsecurity-2.9.1-3.10.23-unofficial.patch
 6af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3  0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
 dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0  0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
 0985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892  0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -177,8 +177,8 @@ fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e  0006-ipv4-use-
 997d4c8a5a2b911047d26fe1bf8ee8d5cd3b7133e6abdc07b7deacd0b3eb2330  kernelconfig.x86
 7845194551137fbc3b69a75249696bc843bb7fe7f4a4e6b0582c0ca0856caa64  kernelconfig.x86_64"
 sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35  linux-3.10.tar.xz
-86c61f1d18c370fb24808cda03c8fe1e33879fe5a4553f78c943ec896e2bed1e196cd9e64ab830e9e6a2f9967d7c8396a848610c44fc09d2e426814618f4deec  patch-3.10.20.xz
-7e8dbb18b77adeb43fa99b1283d6101a075f0bbcc06681ae30547698778e66976ae3e7533406c7754b0337e908b88643fbcee3d55aa45073623445c4b906cb43  grsecurity-2.9.1-3.10.20-unofficial.patch
+0fdb65f1c45e490e1f2206589273e4b8f0f142ab6b16341cb52977e0c6a983b359f01456a9cae3e1c139d5ead5de106c10909b7fdb6a156675cad5d39374e97f  patch-3.10.23.xz
+8905d7215d9f82662e0e7b897fc2fb258c5978d12fed9cf618e60c7b0926af2f76e3b242140e9d3ab4988cee684f350aaf26270d1a8518297cde9928361d146d  grsecurity-2.9.1-3.10.23-unofficial.patch
 81e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02  0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
 51ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c  0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
 57d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e  0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
diff --git a/main/linux-virt-grsec/grsecurity-2.9.1-3.10.20-unofficial.patch b/main/linux-virt-grsec/grsecurity-2.9.1-3.10.23-unofficial.patch
similarity index 99%
rename from main/linux-virt-grsec/grsecurity-2.9.1-3.10.20-unofficial.patch
rename to main/linux-virt-grsec/grsecurity-2.9.1-3.10.23-unofficial.patch
index ece0a705eef5..cc4eeaf731e1 100644
--- a/main/linux-virt-grsec/grsecurity-2.9.1-3.10.20-unofficial.patch
+++ b/main/linux-virt-grsec/grsecurity-2.9.1-3.10.23-unofficial.patch
@@ -281,7 +281,7 @@ index 2fe6e76..889ee23 100644
  
  	pcd.		[PARIDE]
 diff --git a/Makefile b/Makefile
-index ba784b7..c665163 100644
+index c6d2ec5..b2bfe62 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -2370,7 +2370,7 @@ index 60d3b73..e5a0f22 100644
  EXPORT_SYMBOL(__get_user_1);
  EXPORT_SYMBOL(__get_user_2);
 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
-index d43c7e5..257c050 100644
+index 32640ae..7034750 100644
 --- a/arch/arm/kernel/entry-armv.S
 +++ b/arch/arm/kernel/entry-armv.S
 @@ -47,6 +47,87 @@
@@ -2502,7 +2502,7 @@ index d43c7e5..257c050 100644
   SPFIX(	addeq	r2, r2, #4	)
  	str	r3, [sp, #-4]!		@ save the "real" r0 copied
  					@ from the exception stack
-@@ -316,6 +410,9 @@ ENDPROC(__pabt_svc)
+@@ -317,6 +411,9 @@ ENDPROC(__pabt_svc)
  	.macro	usr_entry
   UNWIND(.fnstart	)
   UNWIND(.cantunwind	)	@ don't unwind the user space
@@ -2512,7 +2512,7 @@ index d43c7e5..257c050 100644
  	sub	sp, sp, #S_FRAME_SIZE
   ARM(	stmib	sp, {r1 - r12}	)
   THUMB(	stmia	sp, {r0 - r12}	)
-@@ -357,7 +454,8 @@ ENDPROC(__pabt_svc)
+@@ -358,7 +455,8 @@ ENDPROC(__pabt_svc)
  	.endm
  
  	.macro	kuser_cmpxchg_check
@@ -2522,7 +2522,7 @@ index d43c7e5..257c050 100644
  #ifndef CONFIG_MMU
  #warning "NPTL on non MMU needs fixing"
  #else
-@@ -414,7 +512,9 @@ __und_usr:
+@@ -415,7 +513,9 @@ __und_usr:
  	tst	r3, #PSR_T_BIT			@ Thumb mode?
  	bne	__und_usr_thumb
  	sub	r4, r2, #4			@ ARM instr at LR - 4
@@ -2532,7 +2532,7 @@ index d43c7e5..257c050 100644
  #ifdef CONFIG_CPU_ENDIAN_BE8
  	rev	r0, r0				@ little endian instruction
  #endif
-@@ -449,10 +549,14 @@ __und_usr_thumb:
+@@ -450,10 +550,14 @@ __und_usr_thumb:
   */
  	.arch	armv6t2
  #endif
@@ -2547,7 +2547,7 @@ index d43c7e5..257c050 100644
  	add	r2, r2, #2			@ r2 is PC + 2, make it PC + 4
  	str	r2, [sp, #S_PC]			@ it's a 2x16bit instr, update
  	orr	r0, r0, r5, lsl #16
-@@ -481,7 +585,8 @@ ENDPROC(__und_usr)
+@@ -482,7 +586,8 @@ ENDPROC(__und_usr)
   */
  	.pushsection .fixup, "ax"
  	.align	2
@@ -2557,7 +2557,7 @@ index d43c7e5..257c050 100644
  	.popsection
  	.pushsection __ex_table,"a"
  	.long	1b, 4b
-@@ -690,7 +795,7 @@ ENTRY(__switch_to)
+@@ -691,7 +796,7 @@ ENTRY(__switch_to)
   THUMB(	stmia	ip!, {r4 - sl, fp}	   )	@ Store most regs on stack
   THUMB(	str	sp, [ip], #4		   )
   THUMB(	str	lr, [ip], #4		   )
@@ -2566,7 +2566,7 @@ index d43c7e5..257c050 100644
  	ldr	r6, [r2, #TI_CPU_DOMAIN]
  #endif
  	set_tls	r3, r4, r5
-@@ -699,7 +804,7 @@ ENTRY(__switch_to)
+@@ -700,7 +805,7 @@ ENTRY(__switch_to)
  	ldr	r8, =__stack_chk_guard
  	ldr	r7, [r7, #TSK_STACK_CANARY]
  #endif
@@ -8188,10 +8188,10 @@ index 64f7bd5..8dd550f 100644
  
  	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
-index 0f83122..c0aca6a 100644
+index 7e9dff8..b63e4b5 100644
 --- a/arch/powerpc/kernel/signal_32.c
 +++ b/arch/powerpc/kernel/signal_32.c
-@@ -987,7 +987,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
+@@ -993,7 +993,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
  	/* Save user registers on the stack */
  	frame = &rt_sf->uc.uc_mcontext;
  	addr = frame;
@@ -8201,10 +8201,10 @@ index 0f83122..c0aca6a 100644
  		tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
  	} else {
 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
-index 887e99d..310bc11 100644
+index 35c20a1..e4bf34c 100644
 --- a/arch/powerpc/kernel/signal_64.c
 +++ b/arch/powerpc/kernel/signal_64.c
-@@ -751,7 +751,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
+@@ -757,7 +757,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
  #endif
  
  	/* Set up to return from userspace. */
@@ -8479,7 +8479,7 @@ index cafad40..9cbc0fc 100644
  	.priority = 1 /* Must run before sched domains notifier. */
  };
 diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
-index 3e99c14..f00953c 100644
+index 7ce9cf3..a964087 100644
 --- a/arch/powerpc/mm/slice.c
 +++ b/arch/powerpc/mm/slice.c
 @@ -103,7 +103,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
@@ -22753,7 +22753,7 @@ index 7272089..0b74104 100644
  /*
   * End of kprobes section
 diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
-index 42a392a..fbbd930 100644
+index d4bdd25..912664c 100644
 --- a/arch/x86/kernel/ftrace.c
 +++ b/arch/x86/kernel/ftrace.c
 @@ -105,6 +105,8 @@ ftrace_modify_code_direct(unsigned long ip, unsigned const char *old_code,
@@ -22783,7 +22783,7 @@ index 42a392a..fbbd930 100644
  		new = ftrace_call_replace(ip, (unsigned long)func);
  		ret = ftrace_modify_code(ip, old, new);
  	}
-@@ -279,7 +281,7 @@ static int ftrace_write(unsigned long ip, const char *val, int size)
+@@ -291,7 +293,7 @@ static int ftrace_write(unsigned long ip, const char *val, int size)
  	 * kernel identity mapping to modify code.
  	 */
  	if (within(ip, (unsigned long)_text, (unsigned long)_etext))
@@ -22792,7 +22792,7 @@ index 42a392a..fbbd930 100644
  
  	return probe_kernel_write((void *)ip, val, size);
  }
-@@ -289,7 +291,7 @@ static int add_break(unsigned long ip, const char *old)
+@@ -301,7 +303,7 @@ static int add_break(unsigned long ip, const char *old)
  	unsigned char replaced[MCOUNT_INSN_SIZE];
  	unsigned char brk = BREAKPOINT_INSTRUCTION;
  
@@ -22801,7 +22801,7 @@ index 42a392a..fbbd930 100644
  		return -EFAULT;
  
  	/* Make sure it is what we expect it to be */
-@@ -637,7 +639,7 @@ ftrace_modify_code(unsigned long ip, unsigned const char *old_code,
+@@ -649,7 +651,7 @@ ftrace_modify_code(unsigned long ip, unsigned const char *old_code,
  	return ret;
  
   fail_update:
@@ -22810,7 +22810,7 @@ index 42a392a..fbbd930 100644
  	goto out;
  }
  
-@@ -670,6 +672,8 @@ static int ftrace_mod_jmp(unsigned long ip,
+@@ -682,6 +684,8 @@ static int ftrace_mod_jmp(unsigned long ip,
  {
  	unsigned char code[MCOUNT_INSN_SIZE];
  
@@ -24760,7 +24760,7 @@ index 6c483ba..d10ce2f 100644
  
  static struct dma_map_ops swiotlb_dma_ops = {
 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
-index 81a5f5e..20f8b58 100644
+index 59b9037..047a1ef 100644
 --- a/arch/x86/kernel/process.c
 +++ b/arch/x86/kernel/process.c
 @@ -36,7 +36,8 @@
@@ -26854,7 +26854,7 @@ index a20ecb5..d0e2194 100644
  
  out:
 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
-index 5953dce..f11a7d2 100644
+index 5484d54..d5f90d0 100644
 --- a/arch/x86/kvm/emulate.c
 +++ b/arch/x86/kvm/emulate.c
 @@ -329,6 +329,7 @@ static void invalidate_registers(struct x86_emulate_ctxt *ctxt)
@@ -35093,10 +35093,10 @@ index 7586544..636a2f0 100644
  		if (err)
  			return err;
 diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
-index eb133c7..f571552 100644
+index 4056d31..ef54bc1 100644
 --- a/drivers/acpi/processor_idle.c
 +++ b/drivers/acpi/processor_idle.c
-@@ -994,7 +994,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
+@@ -968,7 +968,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
  {
  	int i, count = CPUIDLE_DRIVER_STATE_START;
  	struct acpi_processor_cx *cx;
@@ -35124,7 +35124,7 @@ index fcae5fa..e9f71ea 100644
  static void delete_gpe_attr_array(void)
  {
 diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
-index 7b9bdd8..37638ca 100644
+index 8905e03..d1b0719 100644
 --- a/drivers/ata/libahci.c
 +++ b/drivers/ata/libahci.c
 @@ -1230,7 +1230,7 @@ int ahci_kick_engine(struct ata_port *ap)
@@ -35137,7 +35137,7 @@ index 7b9bdd8..37638ca 100644
  				unsigned long timeout_msec)
  {
 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index adf002a..06c46a7 100644
+index cd6aa28..6f5e966 100644
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
 @@ -98,7 +98,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
@@ -35149,7 +35149,7 @@ index adf002a..06c46a7 100644
  
  struct ata_force_param {
  	const char	*name;
-@@ -4792,7 +4792,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -4793,7 +4793,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
  	struct ata_port *ap;
  	unsigned int tag;
  
@@ -35158,7 +35158,7 @@ index adf002a..06c46a7 100644
  	ap = qc->ap;
  
  	qc->flags = 0;
-@@ -4808,7 +4808,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -4809,7 +4809,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
  	struct ata_port *ap;
  	struct ata_link *link;
  
@@ -35167,7 +35167,7 @@ index adf002a..06c46a7 100644
  	WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
  	ap = qc->ap;
  	link = qc->dev->link;
-@@ -5926,6 +5926,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5927,6 +5927,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
  		return;
  
  	spin_lock(&lock);
@@ -35175,7 +35175,7 @@ index adf002a..06c46a7 100644
  
  	for (cur = ops->inherits; cur; cur = cur->inherits) {
  		void **inherit = (void **)cur;
-@@ -5939,8 +5940,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5940,8 +5941,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
  		if (IS_ERR(*pp))
  			*pp = NULL;
  
@@ -35186,7 +35186,7 @@ index adf002a..06c46a7 100644
  	spin_unlock(&lock);
  }
  
-@@ -6133,7 +6135,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
+@@ -6134,7 +6136,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
  
  	/* give ports names and add SCSI hosts */
  	for (i = 0; i < host->n_ports; i++)
@@ -35596,7 +35596,7 @@ index 1dc0519..1aadaf7 100644
  	// free the skb
  	hrz_kfree_skb (skb);
 diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
-index 272f009..a18ba55 100644
+index 1bdf104..9dc44b1 100644
 --- a/drivers/atm/idt77252.c
 +++ b/drivers/atm/idt77252.c
 @@ -812,7 +812,7 @@ drain_scq(struct idt77252_dev *card, struct vc_map *vc)
@@ -36854,7 +36854,7 @@ index 4222aff..1f79506 100644
  static struct asender_cmd asender_tbl[] = {
  	[P_PING]	    = { 0, got_Ping },
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index d92d50f..a7e9d97 100644
+index 4a81165..53dc2c7 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
 @@ -232,7 +232,7 @@ static int __do_lo_send_write(struct file *file,
@@ -38316,7 +38316,7 @@ index 94a58a0..f5eba42 100644
  	container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
  
 diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
-index b95159b..841ae55 100644
+index eb760a2..d71c868 100644
 --- a/drivers/firmware/dmi_scan.c
 +++ b/drivers/firmware/dmi_scan.c
 @@ -497,11 +497,6 @@ void __init dmi_scan_machine(void)
@@ -38331,7 +38331,7 @@ index b95159b..841ae55 100644
  		p = dmi_ioremap(0xF0000, 0x10000);
  		if (p == NULL)
  			goto error;
-@@ -786,7 +781,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
+@@ -792,7 +787,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
  	if (buf == NULL)
  		return -1;
  
@@ -38999,10 +38999,10 @@ index c8d16a6..ca71b5e 100644
  	iir = I915_READ(IIR);
  
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index ab95259..8898d43 100644
+index c714d4d..665732e 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8935,13 +8935,13 @@ struct intel_quirk {
+@@ -8939,13 +8939,13 @@ struct intel_quirk {
  	int subsystem_vendor;
  	int subsystem_device;
  	void (*hook)(struct drm_device *dev);
@@ -39018,7 +39018,7 @@ index ab95259..8898d43 100644
  
  static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
  {
-@@ -8949,18 +8949,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
+@@ -8953,18 +8953,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
  	return 1;
  }
  
@@ -39167,10 +39167,10 @@ index f2b30f8..d0f9a95 100644
  			    struct ttm_buffer_object *,
  			    struct ttm_mem_reg *, struct ttm_mem_reg *);
 diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
-index b4b4d0c..b7edc15 100644
+index 5bccf31..7b5667c 100644
 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c
 +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
-@@ -322,7 +322,7 @@ validate_init(struct nouveau_channel *chan, struct drm_file *file_priv,
+@@ -323,7 +323,7 @@ validate_init(struct nouveau_channel *chan, struct drm_file *file_priv,
  	int ret, i;
  	struct nouveau_bo *res_bo = NULL;
  
@@ -39179,7 +39179,7 @@ index b4b4d0c..b7edc15 100644
  retry:
  	if (++trycnt > 100000) {
  		NV_ERROR(cli, "%s failed and gave up.\n", __func__);
-@@ -359,7 +359,7 @@ retry:
+@@ -360,7 +360,7 @@ retry:
  		if (ret) {
  			validate_fini(op, NULL);
  			if (unlikely(ret == -EAGAIN)) {
@@ -39899,10 +39899,10 @@ index 8c04943..4370ed9 100644
  	err = drm_debugfs_create_files(dc->debugfs_files,
  				       ARRAY_SIZE(debugfs_files),
 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index e04bf0ef..500861b 100644
+index c4e5cdf..7ab7631 100644
 --- a/drivers/hid/hid-core.c
 +++ b/drivers/hid/hid-core.c
-@@ -2358,7 +2358,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
+@@ -2355,7 +2355,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
  
  int hid_add_device(struct hid_device *hdev)
  {
@@ -39911,7 +39911,7 @@ index e04bf0ef..500861b 100644
  	int ret;
  
  	if (WARN_ON(hdev->status & HID_STAT_ADDED))
-@@ -2392,7 +2392,7 @@ int hid_add_device(struct hid_device *hdev)
+@@ -2389,7 +2389,7 @@ int hid_add_device(struct hid_device *hdev)
  	/* XXX hack, any other cleaner solution after the driver core
  	 * is converted to allow more than 20 bytes as the device name? */
  	dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
@@ -39921,7 +39921,7 @@ index e04bf0ef..500861b 100644
  	hid_debug_register(hdev, dev_name(&hdev->dev));
  	ret = device_add(&hdev->dev);
 diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index b6701ce..720a166 100644
+index 3d8e58a..bf8b8ce 100644
 --- a/drivers/hid/hid-multitouch.c
 +++ b/drivers/hid/hid-multitouch.c
 @@ -325,12 +325,21 @@ static void mt_feature_mapping(struct hid_device *hdev,
@@ -39987,7 +39987,7 @@ index 90124ff..3761764 100644
  
  	*off += size;
 diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
-index 145a4cb..2353a3e 100644
+index 0bb3bb8..1222415 100644
 --- a/drivers/hid/uhid.c
 +++ b/drivers/hid/uhid.c
 @@ -47,7 +47,7 @@ struct uhid_device {
@@ -42001,7 +42001,7 @@ index d907ca6..cfb8384 100644
  				schedule_work(&sc->trigger_event);
  		}
 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
-index 1ff252a..ee384c1 100644
+index 9e3a045..9d0f95b 100644
 --- a/drivers/md/dm-table.c
 +++ b/drivers/md/dm-table.c
 @@ -389,7 +389,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
@@ -42094,7 +42094,7 @@ index 1c13071..4bb0452 100644
  
  void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
 diff --git a/drivers/md/md.c b/drivers/md/md.c
-index d78f1ff..952b9c6 100644
+index 2290b95..77ca464 100644
 --- a/drivers/md/md.c
 +++ b/drivers/md/md.c
 @@ -234,10 +234,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio);
@@ -42166,7 +42166,7 @@ index d78f1ff..952b9c6 100644
  
  	INIT_LIST_HEAD(&rdev->same_set);
  	init_waitqueue_head(&rdev->blocked_wait);
-@@ -7009,7 +7009,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
+@@ -7010,7 +7010,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
  
  		spin_unlock(&pers_lock);
  		seq_printf(seq, "\n");
@@ -42175,7 +42175,7 @@ index d78f1ff..952b9c6 100644
  		return 0;
  	}
  	if (v == (void*)2) {
-@@ -7112,7 +7112,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
+@@ -7113,7 +7113,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
  		return error;
  
  	seq = file->private_data;
@@ -42184,7 +42184,7 @@ index d78f1ff..952b9c6 100644
  	return error;
  }
  
-@@ -7126,7 +7126,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
+@@ -7127,7 +7127,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
  	/* always allow read */
  	mask = POLLIN | POLLRDNORM;
  
@@ -42193,7 +42193,7 @@ index d78f1ff..952b9c6 100644
  		mask |= POLLERR | POLLPRI;
  	return mask;
  }
-@@ -7170,7 +7170,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
+@@ -7171,7 +7171,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
  		struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
  		curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
  			      (int)part_stat_read(&disk->part0, sectors[1]) -
@@ -42708,10 +42708,10 @@ index 1cf382a..c22998c 100644
  	dev_set_drvdata(&dev->dev, dev);
  	rc = device_add(&dev->dev);
 diff --git a/drivers/media/usb/dvb-usb/cxusb.c b/drivers/media/usb/dvb-usb/cxusb.c
-index 3940bb0..fb3952a 100644
+index 20e345d..da56fe4 100644
 --- a/drivers/media/usb/dvb-usb/cxusb.c
 +++ b/drivers/media/usb/dvb-usb/cxusb.c
-@@ -1068,7 +1068,7 @@ static struct dib0070_config dib7070p_dib0070_config = {
+@@ -1101,7 +1101,7 @@ static struct dib0070_config dib7070p_dib0070_config = {
  
  struct dib0700_adapter_state {
  	int (*set_param_save) (struct dvb_frontend *);
@@ -42721,10 +42721,10 @@ index 3940bb0..fb3952a 100644
  static int dib7070_set_param_override(struct dvb_frontend *fe)
  {
 diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
-index 6e237b6..dc25556 100644
+index 71b22f5..a63b33f 100644
 --- a/drivers/media/usb/dvb-usb/dw2102.c
 +++ b/drivers/media/usb/dvb-usb/dw2102.c
-@@ -118,7 +118,7 @@ struct su3000_state {
+@@ -121,7 +121,7 @@ struct su3000_state {
  
  struct s6x0_state {
  	int (*old_set_voltage)(struct dvb_frontend *f, fe_sec_voltage_t v);
@@ -43955,7 +43955,7 @@ index d3f8797..82a03d3 100644
  	vlan_req = (struct qlcnic_vlan_req *)&req->words[1];
  	vlan_req->vlan_id = cpu_to_le16(vlan_id);
 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index 7199d2a..0cae710 100644
+index e9b5d77a..1898ba7 100644
 --- a/drivers/net/ethernet/realtek/r8169.c
 +++ b/drivers/net/ethernet/realtek/r8169.c
 @@ -753,22 +753,22 @@ struct rtl8169_private {
@@ -44098,10 +44098,10 @@ index 06eba6e..a06bf31 100644
  };
  
 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index 523d6b2..5e16aa1 100644
+index c70ff7d..10fcffc 100644
 --- a/drivers/net/macvtap.c
 +++ b/drivers/net/macvtap.c
-@@ -1110,7 +1110,7 @@ static int macvtap_device_event(struct notifier_block *unused,
+@@ -1116,7 +1116,7 @@ static int macvtap_device_event(struct notifier_block *unused,
  	return NOTIFY_DONE;
  }
  
@@ -44158,10 +44158,10 @@ index 1252d9c..80e660b 100644
  
  	/* We've got a compressed packet; read the change byte */
 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
-index b305105..8ead6df 100644
+index fe3fd77..b048392 100644
 --- a/drivers/net/team/team.c
 +++ b/drivers/net/team/team.c
-@@ -2682,7 +2682,7 @@ static int team_device_event(struct notifier_block *unused,
+@@ -2686,7 +2686,7 @@ static int team_device_event(struct notifier_block *unused,
  	return NOTIFY_DONE;
  }
  
@@ -44171,10 +44171,10 @@ index b305105..8ead6df 100644
  };
  
 diff --git a/drivers/net/tun.c b/drivers/net/tun.c
-index b18ead5..109dcbd 100644
+index 9ef85fe..64e88b0 100644
 --- a/drivers/net/tun.c
 +++ b/drivers/net/tun.c
-@@ -1876,7 +1876,7 @@ unlock:
+@@ -1884,7 +1884,7 @@ unlock:
  }
  
  static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
@@ -44183,7 +44183,7 @@ index b18ead5..109dcbd 100644
  {
  	struct tun_file *tfile = file->private_data;
  	struct tun_struct *tun;
-@@ -1888,6 +1888,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
+@@ -1896,6 +1896,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
  	int vnet_hdr_sz;
  	int ret;
  
@@ -44823,7 +44823,7 @@ index 7510723..5ba37f5 100644
  
  static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
 diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
-index d955741..8730748 100644
+index 1f17f5b..16cddd3 100644
 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
 @@ -252,9 +252,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
@@ -48742,7 +48742,7 @@ index d3aa353..0e284af 100644
  			wake_up(&usb_kill_urb_queue);
  		usb_put_urb(urb);
 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index c8b9fa0..abb8ce1 100644
+index 1424a89..62da951 100644
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
 @@ -27,6 +27,7 @@
@@ -48753,7 +48753,7 @@ index c8b9fa0..abb8ce1 100644
  
  #include <asm/uaccess.h>
  #include <asm/byteorder.h>
-@@ -4431,6 +4432,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
+@@ -4436,6 +4437,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
    			goto done;
  		return;
  	}
@@ -52555,7 +52555,7 @@ index 789bc25..fafaeea 100644
  			     &data);
  	if (!inode) {
 diff --git a/fs/aio.c b/fs/aio.c
-index 2bbcacf..8614116 100644
+index ebd06fd..41c850d 100644
 --- a/fs/aio.c
 +++ b/fs/aio.c
 @@ -160,7 +160,7 @@ static int aio_setup_ring(struct kioctx *ctx)
@@ -52567,7 +52567,7 @@ index 2bbcacf..8614116 100644
  		return -EINVAL;
  
  	nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
-@@ -950,6 +950,7 @@ static ssize_t aio_rw_vect_retry(struct kiocb *iocb, int rw, aio_rw_op *rw_op)
+@@ -952,6 +952,7 @@ static ssize_t aio_rw_vect_retry(struct kiocb *iocb, int rw, aio_rw_op *rw_op)
  static ssize_t aio_setup_vectored_rw(int rw, struct kiocb *kiocb, bool compat)
  {
  	ssize_t ret;
@@ -52575,7 +52575,7 @@ index 2bbcacf..8614116 100644
  
  	kiocb->ki_nr_segs = kiocb->ki_nbytes;
  
-@@ -957,17 +958,22 @@ static ssize_t aio_setup_vectored_rw(int rw, struct kiocb *kiocb, bool compat)
+@@ -959,17 +960,22 @@ static ssize_t aio_setup_vectored_rw(int rw, struct kiocb *kiocb, bool compat)
  	if (compat)
  		ret = compat_rw_copy_check_uvector(rw,
  				(struct compat_iovec __user *)kiocb->ki_buf,
@@ -54795,10 +54795,10 @@ index 996cdc5..15e2f33 100644
  		return 1;
  	if (a < b)
 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
-index 7aabc6a..34c1197 100644
+index fa38d07..acce73f 100644
 --- a/fs/configfs/dir.c
 +++ b/fs/configfs/dir.c
-@@ -1565,7 +1565,8 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
+@@ -1577,7 +1577,8 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
  			}
  			for (p=q->next; p!= &parent_sd->s_children; p=p->next) {
  				struct configfs_dirent *next;
@@ -54808,7 +54808,7 @@ index 7aabc6a..34c1197 100644
  				int len;
  				struct inode *inode = NULL;
  
-@@ -1575,7 +1576,12 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
+@@ -1587,7 +1588,12 @@ static int configfs_readdir(struct file * filp, void * dirent, filldir_t filldir
  					continue;
  
  				name = configfs_get_name(next);
@@ -55012,7 +55012,7 @@ index e4141f2..d8263e8 100644
  		i += packet_length_size;
  		if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
 diff --git a/fs/exec.c b/fs/exec.c
-index 1f44670..3c84660 100644
+index bb60cda..c875ac4 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -55,8 +55,20 @@
@@ -55494,7 +55494,7 @@ index 1f44670..3c84660 100644
  out:
  	if (bprm->mm) {
  		acct_arg_size(bprm, 0);
-@@ -1701,3 +1875,287 @@ asmlinkage long compat_sys_execve(const char __user * filename,
+@@ -1707,3 +1881,287 @@ asmlinkage long compat_sys_execve(const char __user * filename,
  	return error;
  }
  #endif
@@ -57896,7 +57896,7 @@ index cb424a4..850e4dd 100644
  
  	lock_flocks();
 diff --git a/fs/namei.c b/fs/namei.c
-index 9ed9361..2b72db1 100644
+index cccaf77..b28ec8a 100644
 --- a/fs/namei.c
 +++ b/fs/namei.c
 @@ -319,16 +319,32 @@ int generic_permission(struct inode *inode, int mask)
@@ -58030,7 +58030,7 @@ index 9ed9361..2b72db1 100644
  	return retval;
  }
  
-@@ -2381,6 +2413,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
+@@ -2382,6 +2414,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
  	if (flag & O_NOATIME && !inode_owner_or_capable(inode))
  		return -EPERM;
  
@@ -58044,7 +58044,7 @@ index 9ed9361..2b72db1 100644
  	return 0;
  }
  
-@@ -2602,7 +2641,7 @@ looked_up:
+@@ -2603,7 +2642,7 @@ looked_up:
   * cleared otherwise prior to returning.
   */
  static int lookup_open(struct nameidata *nd, struct path *path,
@@ -58053,7 +58053,7 @@ index 9ed9361..2b72db1 100644
  			const struct open_flags *op,
  			bool got_write, int *opened)
  {
-@@ -2637,6 +2676,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -2638,6 +2677,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
  	/* Negative dentry, just create the file */
  	if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
  		umode_t mode = op->mode;
@@ -58071,7 +58071,7 @@ index 9ed9361..2b72db1 100644
  		if (!IS_POSIXACL(dir->d_inode))
  			mode &= ~current_umask();
  		/*
-@@ -2658,6 +2708,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
+@@ -2659,6 +2709,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
  				   nd->flags & LOOKUP_EXCL);
  		if (error)
  			goto out_dput;
@@ -58080,7 +58080,7 @@ index 9ed9361..2b72db1 100644
  	}
  out_no_open:
  	path->dentry = dentry;
-@@ -2672,7 +2724,7 @@ out_dput:
+@@ -2673,7 +2725,7 @@ out_dput:
  /*
   * Handle the last step of open()
   */
@@ -58089,7 +58089,7 @@ index 9ed9361..2b72db1 100644
  		   struct file *file, const struct open_flags *op,
  		   int *opened, struct filename *name)
  {
-@@ -2701,16 +2753,32 @@ static int do_last(struct nameidata *nd, struct path *path,
+@@ -2702,16 +2754,32 @@ static int do_last(struct nameidata *nd, struct path *path,
  		error = complete_walk(nd);
  		if (error)
  			return error;
@@ -58122,7 +58122,7 @@ index 9ed9361..2b72db1 100644
  		audit_inode(name, dir, 0);
  		goto finish_open;
  	}
-@@ -2759,7 +2827,7 @@ retry_lookup:
+@@ -2760,7 +2828,7 @@ retry_lookup:
  		 */
  	}
  	mutex_lock(&dir->d_inode->i_mutex);
@@ -58131,7 +58131,7 @@ index 9ed9361..2b72db1 100644
  	mutex_unlock(&dir->d_inode->i_mutex);
  
  	if (error <= 0) {
-@@ -2783,11 +2851,28 @@ retry_lookup:
+@@ -2784,11 +2852,28 @@ retry_lookup:
  		goto finish_open_created;
  	}
  
@@ -58161,7 +58161,7 @@ index 9ed9361..2b72db1 100644
  
  	/*
  	 * If atomic_open() acquired write access it is dropped now due to
-@@ -2828,6 +2913,11 @@ finish_lookup:
+@@ -2829,6 +2914,11 @@ finish_lookup:
  			}
  		}
  		BUG_ON(inode != path->dentry->d_inode);
@@ -58173,7 +58173,7 @@ index 9ed9361..2b72db1 100644
  		return 1;
  	}
  
-@@ -2837,7 +2927,6 @@ finish_lookup:
+@@ -2838,7 +2928,6 @@ finish_lookup:
  		save_parent.dentry = nd->path.dentry;
  		save_parent.mnt = mntget(path->mnt);
  		nd->path.dentry = path->dentry;
@@ -58181,7 +58181,7 @@ index 9ed9361..2b72db1 100644
  	}
  	nd->inode = inode;
  	/* Why this, you ask?  _Now_ we might have grown LOOKUP_JUMPED... */
-@@ -2846,6 +2935,16 @@ finish_lookup:
+@@ -2847,6 +2936,16 @@ finish_lookup:
  		path_put(&save_parent);
  		return error;
  	}
@@ -58198,7 +58198,7 @@ index 9ed9361..2b72db1 100644
  	error = -EISDIR;
  	if ((open_flag & O_CREAT) && S_ISDIR(nd->inode->i_mode))
  		goto out;
-@@ -2944,7 +3043,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
+@@ -2945,7 +3044,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
  	if (unlikely(error))
  		goto out;
  
@@ -58207,7 +58207,7 @@ index 9ed9361..2b72db1 100644
  	while (unlikely(error > 0)) { /* trailing symlink */
  		struct path link = path;
  		void *cookie;
-@@ -2962,7 +3061,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
+@@ -2963,7 +3062,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
  		error = follow_link(&link, nd, &cookie);
  		if (unlikely(error))
  			break;
@@ -58216,7 +58216,7 @@ index 9ed9361..2b72db1 100644
  		put_link(nd, &link, cookie);
  	}
  out:
-@@ -3062,8 +3161,12 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
+@@ -3063,8 +3162,12 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
  		goto unlock;
  
  	error = -EEXIST;
@@ -58230,7 +58230,7 @@ index 9ed9361..2b72db1 100644
  	/*
  	 * Special case - lookup gave negative, but... we had foo/bar/
  	 * From the vfs_mknod() POV we just have a negative dentry -
-@@ -3115,6 +3218,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
+@@ -3116,6 +3219,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
  }
  EXPORT_SYMBOL(user_path_create);
  
@@ -58251,7 +58251,7 @@ index 9ed9361..2b72db1 100644
  int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
  {
  	int error = may_create(dir, dentry);
-@@ -3177,6 +3294,17 @@ retry:
+@@ -3178,6 +3295,17 @@ retry:
  
  	if (!IS_POSIXACL(path.dentry->d_inode))
  		mode &= ~current_umask();
@@ -58269,7 +58269,7 @@ index 9ed9361..2b72db1 100644
  	error = security_path_mknod(&path, dentry, mode, dev);
  	if (error)
  		goto out;
-@@ -3193,6 +3321,8 @@ retry:
+@@ -3194,6 +3322,8 @@ retry:
  			break;
  	}
  out:
@@ -58278,7 +58278,7 @@ index 9ed9361..2b72db1 100644
  	done_path_create(&path, dentry);
  	if (retry_estale(error, lookup_flags)) {
  		lookup_flags |= LOOKUP_REVAL;
-@@ -3245,9 +3375,16 @@ retry:
+@@ -3246,9 +3376,16 @@ retry:
  
  	if (!IS_POSIXACL(path.dentry->d_inode))
  		mode &= ~current_umask();
@@ -58295,7 +58295,7 @@ index 9ed9361..2b72db1 100644
  	done_path_create(&path, dentry);
  	if (retry_estale(error, lookup_flags)) {
  		lookup_flags |= LOOKUP_REVAL;
-@@ -3328,6 +3465,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
+@@ -3329,6 +3466,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
  	struct filename *name;
  	struct dentry *dentry;
  	struct nameidata nd;
@@ -58304,7 +58304,7 @@ index 9ed9361..2b72db1 100644
  	unsigned int lookup_flags = 0;
  retry:
  	name = user_path_parent(dfd, pathname, &nd, lookup_flags);
-@@ -3360,10 +3499,21 @@ retry:
+@@ -3361,10 +3500,21 @@ retry:
  		error = -ENOENT;
  		goto exit3;
  	}
@@ -58326,7 +58326,7 @@ index 9ed9361..2b72db1 100644
  exit3:
  	dput(dentry);
  exit2:
-@@ -3429,6 +3579,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
+@@ -3430,6 +3580,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
  	struct dentry *dentry;
  	struct nameidata nd;
  	struct inode *inode = NULL;
@@ -58335,7 +58335,7 @@ index 9ed9361..2b72db1 100644
  	unsigned int lookup_flags = 0;
  retry:
  	name = user_path_parent(dfd, pathname, &nd, lookup_flags);
-@@ -3455,10 +3607,22 @@ retry:
+@@ -3456,10 +3608,22 @@ retry:
  		if (!inode)
  			goto slashes;
  		ihold(inode);
@@ -58358,7 +58358,7 @@ index 9ed9361..2b72db1 100644
  exit2:
  		dput(dentry);
  	}
-@@ -3536,9 +3700,17 @@ retry:
+@@ -3537,9 +3701,17 @@ retry:
  	if (IS_ERR(dentry))
  		goto out_putname;
  
@@ -58376,7 +58376,7 @@ index 9ed9361..2b72db1 100644
  	done_path_create(&path, dentry);
  	if (retry_estale(error, lookup_flags)) {
  		lookup_flags |= LOOKUP_REVAL;
-@@ -3612,6 +3784,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
+@@ -3613,6 +3785,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
  {
  	struct dentry *new_dentry;
  	struct path old_path, new_path;
@@ -58384,7 +58384,7 @@ index 9ed9361..2b72db1 100644
  	int how = 0;
  	int error;
  
-@@ -3635,7 +3808,7 @@ retry:
+@@ -3636,7 +3809,7 @@ retry:
  	if (error)
  		return error;
  
@@ -58393,7 +58393,7 @@ index 9ed9361..2b72db1 100644
  					(how & LOOKUP_REVAL));
  	error = PTR_ERR(new_dentry);
  	if (IS_ERR(new_dentry))
-@@ -3647,11 +3820,28 @@ retry:
+@@ -3648,11 +3821,28 @@ retry:
  	error = may_linkat(&old_path);
  	if (unlikely(error))
  		goto out_dput;
@@ -58422,7 +58422,7 @@ index 9ed9361..2b72db1 100644
  	done_path_create(&new_path, new_dentry);
  	if (retry_estale(error, how)) {
  		how |= LOOKUP_REVAL;
-@@ -3897,12 +4087,21 @@ retry:
+@@ -3898,12 +4088,21 @@ retry:
  	if (new_dentry == trap)
  		goto exit5;
  
@@ -58444,7 +58444,7 @@ index 9ed9361..2b72db1 100644
  exit5:
  	dput(new_dentry);
  exit4:
-@@ -3934,6 +4133,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
+@@ -3935,6 +4134,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
  
  int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link)
  {
@@ -58453,7 +58453,7 @@ index 9ed9361..2b72db1 100644
  	int len;
  
  	len = PTR_ERR(link);
-@@ -3943,7 +4144,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
+@@ -3944,7 +4145,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
  	len = strlen(link);
  	if (len > (unsigned) buflen)
  		len = buflen;
@@ -58732,10 +58732,10 @@ index e76244e..9fe8f2f1 100644
  	/* Don't cache excessive amounts of data and XDR failures */
  	if (!statp || len > (256 >> 2)) {
 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
-index baf149a..76b86ad 100644
+index 62fd661..e2a1eb7 100644
 --- a/fs/nfsd/vfs.c
 +++ b/fs/nfsd/vfs.c
-@@ -940,7 +940,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
+@@ -965,7 +965,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
  	} else {
  		oldfs = get_fs();
  		set_fs(KERNEL_DS);
@@ -58744,7 +58744,7 @@ index baf149a..76b86ad 100644
  		set_fs(oldfs);
  	}
  
-@@ -1027,7 +1027,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
+@@ -1052,7 +1052,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
  
  	/* Write the data. */
  	oldfs = get_fs(); set_fs(KERNEL_DS);
@@ -58753,7 +58753,7 @@ index baf149a..76b86ad 100644
  	set_fs(oldfs);
  	if (host_err < 0)
  		goto out_nfserr;
-@@ -1573,7 +1573,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
+@@ -1598,7 +1598,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
  	 */
  
  	oldfs = get_fs(); set_fs(KERNEL_DS);
@@ -61814,7 +61814,7 @@ index 6157424..ac98f6d 100644
  			*offset = off & 0x7fffffff;
  			return 0;
 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
-index 5e99968..45bd327 100644
+index ca01d83..86b14a7 100644
 --- a/fs/xfs/xfs_ioctl.c
 +++ b/fs/xfs/xfs_ioctl.c
 @@ -127,7 +127,7 @@ xfs_find_handle(
@@ -73075,7 +73075,7 @@ index c1da539..1dcec55 100644
  struct atmphy_ops {
  	int (*start)(struct atm_dev *dev);
 diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
-index 70cf138..0418ee2 100644
+index df97ca4..c4d4aa6 100644
 --- a/include/linux/binfmts.h
 +++ b/include/linux/binfmts.h
 @@ -73,8 +73,10 @@ struct linux_binfmt {
@@ -76066,7 +76066,7 @@ index 5c76737..61f518e 100644
  	/*
  	 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on
 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
-index b508016..237cfe5 100644
+index b3bd7e7..010fa12 100644
 --- a/include/linux/mod_devicetable.h
 +++ b/include/linux/mod_devicetable.h
 @@ -13,7 +13,7 @@
@@ -76087,7 +76087,7 @@ index b508016..237cfe5 100644
  #define HID_BUS_ANY				0xffff
  #define HID_GROUP_ANY				0x0000
  
-@@ -465,7 +465,7 @@ struct dmi_system_id {
+@@ -466,7 +466,7 @@ struct dmi_system_id {
  	const char *ident;
  	struct dmi_strmatch matches[4];
  	void *driver_data;
@@ -76319,10 +76319,10 @@ index 5a5ff57..5ae5070 100644
  	return nd->saved_names[nd->depth];
  }
 diff --git a/include/linux/net.h b/include/linux/net.h
-index 99c9f0c..e1cf296 100644
+index 0c4ae5d..87874be 100644
 --- a/include/linux/net.h
 +++ b/include/linux/net.h
-@@ -183,7 +183,7 @@ struct net_proto_family {
+@@ -191,7 +191,7 @@ struct net_proto_family {
  	int		(*create)(struct net *net, struct socket *sock,
  				  int protocol, int kern);
  	struct module	*owner;
@@ -76783,7 +76783,7 @@ index 34a1e10..03a6d03 100644
  struct proc_ns {
  	void *ns;
 diff --git a/include/linux/random.h b/include/linux/random.h
-index 6312dd9..f67904d 100644
+index bf9085e..57fbf6c 100644
 --- a/include/linux/random.h
 +++ b/include/linux/random.h
 @@ -33,6 +33,11 @@ void prandom_seed(u32 seed);
@@ -76941,7 +76941,7 @@ index 6dacb93..6174423 100644
  static inline void anon_vma_merge(struct vm_area_struct *vma,
  				  struct vm_area_struct *next)
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 178a8d9..918ea01 100644
+index 597c8ab..a4ef49a 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
 @@ -62,6 +62,7 @@ struct bio_list;
@@ -76980,7 +76980,7 @@ index 178a8d9..918ea01 100644
  extern void arch_pick_mmap_layout(struct mm_struct *mm);
  extern unsigned long
  arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
-@@ -591,6 +604,17 @@ struct signal_struct {
+@@ -595,6 +608,17 @@ struct signal_struct {
  #ifdef CONFIG_TASKSTATS
  	struct taskstats *stats;
  #endif
@@ -76998,7 +76998,7 @@ index 178a8d9..918ea01 100644
  #ifdef CONFIG_AUDIT
  	unsigned audit_tty;
  	unsigned audit_tty_log_passwd;
-@@ -671,6 +695,14 @@ struct user_struct {
+@@ -675,6 +699,14 @@ struct user_struct {
  	struct key *session_keyring;	/* UID's default session keyring */
  #endif
  
@@ -77013,7 +77013,7 @@ index 178a8d9..918ea01 100644
  	/* Hash table maintenance information */
  	struct hlist_node uidhash_node;
  	kuid_t uid;
-@@ -1158,8 +1190,8 @@ struct task_struct {
+@@ -1162,8 +1194,8 @@ struct task_struct {
  	struct list_head thread_group;
  
  	struct completion *vfork_done;		/* for vfork() */
@@ -77024,7 +77024,7 @@ index 178a8d9..918ea01 100644
  
  	cputime_t utime, stime, utimescaled, stimescaled;
  	cputime_t gtime;
-@@ -1184,11 +1216,6 @@ struct task_struct {
+@@ -1188,11 +1220,6 @@ struct task_struct {
  	struct task_cputime cputime_expires;
  	struct list_head cpu_timers[3];
  
@@ -77036,7 +77036,7 @@ index 178a8d9..918ea01 100644
  	char comm[TASK_COMM_LEN]; /* executable name excluding path
  				     - access with [gs]et_task_comm (which lock
  				       it with task_lock())
-@@ -1205,6 +1232,10 @@ struct task_struct {
+@@ -1209,6 +1236,10 @@ struct task_struct {
  #endif
  /* CPU-specific state of this task */
  	struct thread_struct thread;
@@ -77047,7 +77047,7 @@ index 178a8d9..918ea01 100644
  /* filesystem information */
  	struct fs_struct *fs;
  /* open file information */
-@@ -1278,6 +1309,10 @@ struct task_struct {
+@@ -1282,6 +1313,10 @@ struct task_struct {
  	gfp_t lockdep_reclaim_gfp;
  #endif
  
@@ -77058,7 +77058,7 @@ index 178a8d9..918ea01 100644
  /* journalling filesystem info */
  	void *journal_info;
  
-@@ -1316,6 +1351,10 @@ struct task_struct {
+@@ -1320,6 +1355,10 @@ struct task_struct {
  	/* cg_list protected by css_set_lock and tsk->alloc_lock */
  	struct list_head cg_list;
  #endif
@@ -77069,7 +77069,7 @@ index 178a8d9..918ea01 100644
  #ifdef CONFIG_FUTEX
  	struct robust_list_head __user *robust_list;
  #ifdef CONFIG_COMPAT
-@@ -1416,8 +1455,76 @@ struct task_struct {
+@@ -1420,8 +1459,76 @@ struct task_struct {
  	unsigned int	sequential_io;
  	unsigned int	sequential_io_avg;
  #endif
@@ -77146,7 +77146,7 @@ index 178a8d9..918ea01 100644
  /* Future-safe accessor for struct task_struct's cpus_allowed. */
  #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
  
-@@ -1476,7 +1583,7 @@ struct pid_namespace;
+@@ -1480,7 +1587,7 @@ struct pid_namespace;
  pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
  			struct pid_namespace *ns);
  
@@ -77155,7 +77155,7 @@ index 178a8d9..918ea01 100644
  {
  	return tsk->pid;
  }
-@@ -1919,7 +2026,9 @@ void yield(void);
+@@ -1923,7 +2030,9 @@ void yield(void);
  extern struct exec_domain	default_exec_domain;
  
  union thread_union {
@@ -77165,7 +77165,7 @@ index 178a8d9..918ea01 100644
  	unsigned long stack[THREAD_SIZE/sizeof(long)];
  };
  
-@@ -1952,6 +2061,7 @@ extern struct pid_namespace init_pid_ns;
+@@ -1956,6 +2065,7 @@ extern struct pid_namespace init_pid_ns;
   */
  
  extern struct task_struct *find_task_by_vpid(pid_t nr);
@@ -77173,7 +77173,7 @@ index 178a8d9..918ea01 100644
  extern struct task_struct *find_task_by_pid_ns(pid_t nr,
  		struct pid_namespace *ns);
  
-@@ -2118,7 +2228,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
+@@ -2122,7 +2232,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
  extern void exit_itimers(struct signal_struct *);
  extern void flush_itimer_signals(void);
  
@@ -77182,7 +77182,7 @@ index 178a8d9..918ea01 100644
  
  extern int allow_signal(int);
  extern int disallow_signal(int);
-@@ -2309,9 +2419,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
+@@ -2313,9 +2423,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
  
  #endif
  
@@ -77268,10 +77268,10 @@ index 2ac423b..237c72e 100644
  #define save_altstack_ex(uss, sp) do { \
  	stack_t __user *__uss = uss; \
 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index eaf6027..2266947 100644
+index 74db47e..c42c51d 100644
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -640,7 +640,7 @@ extern bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
+@@ -631,7 +631,7 @@ extern bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
  extern struct sk_buff *__alloc_skb(unsigned int size,
  				   gfp_t priority, int flags, int node);
  extern struct sk_buff *build_skb(void *data, unsigned int frag_size);
@@ -77280,7 +77280,7 @@ index eaf6027..2266947 100644
  					gfp_t priority)
  {
  	return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
-@@ -756,7 +756,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
+@@ -747,7 +747,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
   */
  static inline int skb_queue_empty(const struct sk_buff_head *list)
  {
@@ -77289,7 +77289,7 @@ index eaf6027..2266947 100644
  }
  
  /**
-@@ -769,7 +769,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list)
+@@ -760,7 +760,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list)
  static inline bool skb_queue_is_last(const struct sk_buff_head *list,
  				     const struct sk_buff *skb)
  {
@@ -77298,7 +77298,7 @@ index eaf6027..2266947 100644
  }
  
  /**
-@@ -782,7 +782,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list,
+@@ -773,7 +773,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list,
  static inline bool skb_queue_is_first(const struct sk_buff_head *list,
  				      const struct sk_buff *skb)
  {
@@ -77307,7 +77307,7 @@ index eaf6027..2266947 100644
  }
  
  /**
-@@ -1853,7 +1853,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
+@@ -1844,7 +1844,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
@@ -77316,7 +77316,7 @@ index eaf6027..2266947 100644
  #endif
  
  extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
-@@ -2448,7 +2448,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,
+@@ -2439,7 +2439,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,
  					 int noblock, int *err);
  extern unsigned int    datagram_poll(struct file *file, struct socket *sock,
  				     struct poll_table_struct *wait);
@@ -77325,7 +77325,7 @@ index eaf6027..2266947 100644
  					       int offset, struct iovec *to,
  					       int size);
  extern int	       skb_copy_and_csum_datagram_iovec(struct sk_buff *skb,
-@@ -2738,6 +2738,9 @@ static inline void nf_reset(struct sk_buff *skb)
+@@ -2713,6 +2713,9 @@ static inline void nf_reset(struct sk_buff *skb)
  	nf_bridge_put(skb->nf_bridge);
  	skb->nf_bridge = NULL;
  #endif
@@ -77893,10 +77893,10 @@ index 7faf933..9b85a0c 100644
  #ifdef CONFIG_MAGIC_SYSRQ
  
 diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
-index e7e0473..7989295 100644
+index 4ae6f32..425d3e1 100644
 --- a/include/linux/thread_info.h
 +++ b/include/linux/thread_info.h
-@@ -148,6 +148,15 @@ static inline bool test_and_clear_restore_sigmask(void)
+@@ -150,6 +150,15 @@ static inline bool test_and_clear_restore_sigmask(void)
  #error "no set_restore_sigmask() provided and default one won't work"
  #endif
  
@@ -78482,7 +78482,7 @@ index 53f464d..0bd0b49 100644
  
  #endif /* _NET_INETPEER_H */
 diff --git a/include/net/ip.h b/include/net/ip.h
-index edfa591..a643b82 100644
+index 788f1d8..64d3e27 100644
 --- a/include/net/ip.h
 +++ b/include/net/ip.h
 @@ -202,7 +202,7 @@ extern struct local_ports {
@@ -78508,10 +78508,10 @@ index e49db91..76a81de 100644
  	 fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
  #define FIB_RES_GW(res)			(FIB_RES_NH(res).nh_gw)
 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
-index 4c062cc..3562c31 100644
+index f0c13a3..f41f6d86 100644
 --- a/include/net/ip_vs.h
 +++ b/include/net/ip_vs.h
-@@ -612,7 +612,7 @@ struct ip_vs_conn {
+@@ -582,7 +582,7 @@ struct ip_vs_conn {
  	struct ip_vs_conn       *control;       /* Master control connection */
  	atomic_t                n_control;      /* Number of controlled ones */
  	struct ip_vs_dest       *dest;          /* real server */
@@ -78520,7 +78520,7 @@ index 4c062cc..3562c31 100644
  
  	/* packet transmitter for different forwarding methods.  If it
  	   mangles the packet, it must return NF_DROP or better NF_STOLEN,
-@@ -761,7 +761,7 @@ struct ip_vs_dest {
+@@ -731,7 +731,7 @@ struct ip_vs_dest {
  	__be16			port;		/* port number of the server */
  	union nf_inet_addr	addr;		/* IP address of the server */
  	volatile unsigned int	flags;		/* dest status flags */
@@ -78529,7 +78529,7 @@ index 4c062cc..3562c31 100644
  	atomic_t		weight;		/* server weight */
  
  	atomic_t		refcnt;		/* reference counter */
-@@ -1013,11 +1013,11 @@ struct netns_ipvs {
+@@ -983,11 +983,11 @@ struct netns_ipvs {
  	/* ip_vs_lblc */
  	int			sysctl_lblc_expiration;
  	struct ctl_table_header	*lblc_ctl_header;
@@ -79045,7 +79045,7 @@ index b797e8f..8e2c3aa 100644
  
  /**
 diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
-index 9031a26..750d592 100644
+index ae6c3b8..fd748ac 100644
 --- a/include/sound/compress_driver.h
 +++ b/include/sound/compress_driver.h
 @@ -128,7 +128,7 @@ struct snd_compr_ops {
@@ -80011,7 +80011,7 @@ index e83ac04..ddd6ed5 100644
  	 * Ok, we have completed the initial bootup, and
  	 * we're essentially up and running. Get rid of the
 diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
-index 130dfec..cc88451 100644
+index b0e99de..09f385c 100644
 --- a/ipc/ipc_sysctl.c
 +++ b/ipc/ipc_sysctl.c
 @@ -30,7 +30,7 @@ static void *get_ipc(ctl_table *table)
@@ -80033,7 +80033,7 @@ index 130dfec..cc88451 100644
  	memcpy(&ipc_table, table, sizeof(ipc_table));
  	ipc_table.data = get_ipc(table);
 @@ -65,7 +65,7 @@ static int proc_ipc_dointvec_minmax_orphans(ctl_table *table, int write,
- static int proc_ipc_callback_dointvec(ctl_table *table, int write,
+ static int proc_ipc_callback_dointvec_minmax(ctl_table *table, int write,
  	void __user *buffer, size_t *lenp, loff_t *ppos)
  {
 -	struct ctl_table ipc_table;
@@ -80041,7 +80041,7 @@ index 130dfec..cc88451 100644
  	size_t lenp_bef = *lenp;
  	int rc;
  
-@@ -88,7 +88,7 @@ static int proc_ipc_callback_dointvec(ctl_table *table, int write,
+@@ -88,7 +88,7 @@ static int proc_ipc_callback_dointvec_minmax(ctl_table *table, int write,
  static int proc_ipc_doulongvec_minmax(ctl_table *table, int write,
  	void __user *buffer, size_t *lenp, loff_t *ppos)
  {
@@ -80073,7 +80073,7 @@ index 383d638..943fdbb 100644
  	mq_table.data = get_mq(table);
  
 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
-index e4e47f6..a85e0ad 100644
+index ae1996d..a35f2cc 100644
 --- a/ipc/mqueue.c
 +++ b/ipc/mqueue.c
 @@ -278,6 +278,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
@@ -80114,7 +80114,7 @@ index 558aa91..359e718 100644
  	msg_params.flg = msgflg;
  
 diff --git a/ipc/sem.c b/ipc/sem.c
-index 8c4f59b..3a3f4ff 100644
+index db9d241..bc8427c 100644
 --- a/ipc/sem.c
 +++ b/ipc/sem.c
 @@ -562,10 +562,15 @@ static inline int sem_more_checks(struct kern_ipc_perm *ipcp,
@@ -80146,7 +80146,7 @@ index 8c4f59b..3a3f4ff 100644
  	sem_params.flg = semflg;
  	sem_params.u.nsems = nsems;
 diff --git a/ipc/shm.c b/ipc/shm.c
-index 7b87bea..fd0b9bd 100644
+index 6dc55af..30a00cf 100644
 --- a/ipc/shm.c
 +++ b/ipc/shm.c
 @@ -72,6 +72,14 @@ static void shm_destroy (struct ipc_namespace *ns, struct shmid_kernel *shp);
@@ -80164,7 +80164,7 @@ index 7b87bea..fd0b9bd 100644
  void shm_init_ns(struct ipc_namespace *ns)
  {
  	ns->shm_ctlmax = SHMMAX;
-@@ -551,6 +559,14 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
+@@ -554,6 +562,14 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
  	shp->shm_lprid = 0;
  	shp->shm_atim = shp->shm_dtim = 0;
  	shp->shm_ctim = get_seconds();
@@ -80179,7 +80179,7 @@ index 7b87bea..fd0b9bd 100644
  	shp->shm_segsz = size;
  	shp->shm_nattch = 0;
  	shp->shm_file = file;
-@@ -604,18 +620,19 @@ static inline int shm_more_checks(struct kern_ipc_perm *ipcp,
+@@ -607,18 +623,19 @@ static inline int shm_more_checks(struct kern_ipc_perm *ipcp,
  	return 0;
  }
  
@@ -80204,7 +80204,7 @@ index 7b87bea..fd0b9bd 100644
  	shm_params.key = key;
  	shm_params.flg = shmflg;
  	shm_params.u.size = size;
-@@ -1076,6 +1093,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
+@@ -1089,6 +1106,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
  		f_mode = FMODE_READ | FMODE_WRITE;
  	}
  	if (shmflg & SHM_EXEC) {
@@ -80217,7 +80217,7 @@ index 7b87bea..fd0b9bd 100644
  		prot |= PROT_EXEC;
  		acc_mode |= S_IXUGO;
  	}
-@@ -1100,10 +1123,22 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
+@@ -1113,6 +1136,15 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
  	if (err)
  		goto out_unlock;
  
@@ -80231,6 +80231,9 @@ index 7b87bea..fd0b9bd 100644
 +#endif
 +
  	ipc_lock_object(&shp->shm_perm);
+ 
+ 	/* check if shm_destroy() is tearing down shp */
+@@ -1125,6 +1157,9 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
  	path = shp->shm_file->f_path;
  	path_get(&path);
  	shp->shm_nattch++;
@@ -80254,7 +80257,7 @@ index 8d6e145..33e0b1e 100644
  	current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
  	set_fs(fs);
 diff --git a/kernel/audit.c b/kernel/audit.c
-index 7b0e23a..861041e 100644
+index 7ddfd8a..c97daf0 100644
 --- a/kernel/audit.c
 +++ b/kernel/audit.c
 @@ -118,7 +118,7 @@ u32		audit_sig_sid = 0;
@@ -80284,7 +80287,7 @@ index 7b0e23a..861041e 100644
  				audit_rate_limit,
  				audit_backlog_limit);
  		audit_panic(message);
-@@ -664,7 +664,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+@@ -665,7 +665,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
  		status_set.pid		 = audit_pid;
  		status_set.rate_limit	 = audit_rate_limit;
  		status_set.backlog_limit = audit_backlog_limit;
@@ -80307,10 +80310,10 @@ index 6bd4a90..0ee9eff 100644
  			f->val = 0;
  		}
 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
-index 3c8a601..3a416f6 100644
+index 9845cb3..3ec9369 100644
 --- a/kernel/auditsc.c
 +++ b/kernel/auditsc.c
-@@ -1956,7 +1956,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
+@@ -1962,7 +1962,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
  }
  
  /* global counter which is incremented every time something logs in */
@@ -80319,7 +80322,7 @@ index 3c8a601..3a416f6 100644
  
  /**
   * audit_set_loginuid - set current task's audit_context loginuid
-@@ -1980,7 +1980,7 @@ int audit_set_loginuid(kuid_t loginuid)
+@@ -1986,7 +1986,7 @@ int audit_set_loginuid(kuid_t loginuid)
  		return -EPERM;
  #endif  /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
  
@@ -80425,10 +80428,10 @@ index f6c2ce5..982c0f9 100644
 +	return ns_capable_nolog(ns, cap) && kuid_has_mapping(ns, inode->i_uid);
 +}
 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index b6b26fa..ae2217e 100644
+index d0def7f..ff3a63e 100644
 --- a/kernel/cgroup.c
 +++ b/kernel/cgroup.c
-@@ -5398,7 +5398,7 @@ static int cgroup_css_links_read(struct cgroup *cont,
+@@ -5422,7 +5422,7 @@ static int cgroup_css_links_read(struct cgroup *cont,
  		struct css_set *cg = link->cg;
  		struct task_struct *task;
  		int count = 0;
@@ -83342,10 +83345,10 @@ index 0bf4007..6234708 100644
  }
  
 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
-index 335a7ae..3bbbceb 100644
+index afadcf7..7a883f1 100644
 --- a/kernel/ptrace.c
 +++ b/kernel/ptrace.c
-@@ -326,7 +326,7 @@ static int ptrace_attach(struct task_struct *task, long request,
+@@ -327,7 +327,7 @@ static int ptrace_attach(struct task_struct *task, long request,
  	if (seize)
  		flags |= PT_SEIZED;
  	rcu_read_lock();
@@ -83354,7 +83357,7 @@ index 335a7ae..3bbbceb 100644
  		flags |= PT_PTRACE_CAP;
  	rcu_read_unlock();
  	task->ptrace = flags;
-@@ -537,7 +537,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
+@@ -538,7 +538,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
  				break;
  			return -EIO;
  		}
@@ -83363,7 +83366,7 @@ index 335a7ae..3bbbceb 100644
  			return -EFAULT;
  		copied += retval;
  		src += retval;
-@@ -805,7 +805,7 @@ int ptrace_request(struct task_struct *child, long request,
+@@ -806,7 +806,7 @@ int ptrace_request(struct task_struct *child, long request,
  	bool seized = child->ptrace & PT_SEIZED;
  	int ret = -EIO;
  	siginfo_t siginfo, *si;
@@ -83372,7 +83375,7 @@ index 335a7ae..3bbbceb 100644
  	unsigned long __user *datalp = datavp;
  	unsigned long flags;
  
-@@ -1011,14 +1011,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
+@@ -1012,14 +1012,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
  		goto out;
  	}
  
@@ -83395,7 +83398,7 @@ index 335a7ae..3bbbceb 100644
  		goto out_put_task_struct;
  	}
  
-@@ -1046,7 +1053,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
+@@ -1047,7 +1054,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
  	copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
  	if (copied != sizeof(tmp))
  		return -EIO;
@@ -83404,7 +83407,7 @@ index 335a7ae..3bbbceb 100644
  }
  
  int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
-@@ -1140,7 +1147,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
+@@ -1141,7 +1148,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
  }
  
  asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
@@ -83413,7 +83416,7 @@ index 335a7ae..3bbbceb 100644
  {
  	struct task_struct *child;
  	long ret;
-@@ -1156,14 +1163,21 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
+@@ -1157,14 +1164,21 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
  		goto out;
  	}
  
@@ -85190,7 +85193,7 @@ index d3617db..c98bbe9 100644
  {
  	unsigned long sec = value->tv_sec;
 diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
-index f11d83b..d016d91 100644
+index a8f5084..5a673cb 100644
 --- a/kernel/time/alarmtimer.c
 +++ b/kernel/time/alarmtimer.c
 @@ -750,7 +750,7 @@ static int __init alarmtimer_init(void)
@@ -85404,10 +85407,10 @@ index b8b8560..75b1a09 100644
  	ret = -EIO;
  	bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt,
 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index f23449d..b8cc3a1 100644
+index 331c102..b7a32e2 100644
 --- a/kernel/trace/ftrace.c
 +++ b/kernel/trace/ftrace.c
-@@ -1925,12 +1925,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
+@@ -1919,12 +1919,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
  	if (unlikely(ftrace_disabled))
  		return 0;
  
@@ -85438,7 +85441,7 @@ index f23449d..b8cc3a1 100644
  
  	start_pg = ftrace_allocate_pages(count);
  	if (!start_pg)
-@@ -4718,8 +4725,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
+@@ -4717,8 +4724,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
  #ifdef CONFIG_FUNCTION_GRAPH_TRACER
  
  static int ftrace_graph_active;
@@ -85447,7 +85450,7 @@ index f23449d..b8cc3a1 100644
  int ftrace_graph_entry_stub(struct ftrace_graph_ent *trace)
  {
  	return 0;
-@@ -4863,6 +4868,10 @@ ftrace_suspend_notifier_call(struct notifier_block *bl, unsigned long state,
+@@ -4862,6 +4867,10 @@ ftrace_suspend_notifier_call(struct notifier_block *bl, unsigned long state,
  	return NOTIFY_DONE;
  }
  
@@ -85455,10 +85458,10 @@ index f23449d..b8cc3a1 100644
 +	.notifier_call = ftrace_suspend_notifier_call
 +};
 +
- int register_ftrace_graph(trace_func_graph_ret_t retfunc,
- 			trace_func_graph_ent_t entryfunc)
- {
-@@ -4876,7 +4885,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc,
+ /* Just a place holder for function graph */
+ static struct ftrace_ops fgraph_ops __read_mostly = {
+ 	.func		= ftrace_stub,
+@@ -4882,7 +4891,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc,
  		goto out;
  	}
  
@@ -85989,10 +85992,10 @@ index 05039e3..17490c7 100644
  	.thread_should_run	= watchdog_should_run,
  	.thread_fn		= watchdog,
 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index e52d002..576b367 100644
+index 68086a3..729fa07 100644
 --- a/kernel/workqueue.c
 +++ b/kernel/workqueue.c
-@@ -4605,7 +4605,7 @@ static void rebind_workers(struct worker_pool *pool)
+@@ -4615,7 +4615,7 @@ static void rebind_workers(struct worker_pool *pool)
  		WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
  		worker_flags |= WORKER_REBOUND;
  		worker_flags &= ~WORKER_UNBOUND;
@@ -86529,7 +86532,7 @@ index 4f5b1dd..7cab418 100644
 +}
 +EXPORT_SYMBOL(copy_to_user_overflow);
 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
-index e149c64..24aa71a 100644
+index 620fae4..6ed4d6c 100644
 --- a/lib/vsprintf.c
 +++ b/lib/vsprintf.c
 @@ -16,6 +16,9 @@
@@ -86542,7 +86545,7 @@ index e149c64..24aa71a 100644
  #include <stdarg.h>
  #include <linux/module.h>	/* for KSYM_SYMBOL_LEN */
  #include <linux/types.h>
-@@ -981,7 +984,11 @@ char *netdev_feature_string(char *buf, char *end, const u8 *addr,
+@@ -982,7 +985,11 @@ char *netdev_feature_string(char *buf, char *end, const u8 *addr,
  	return number(buf, end, *(const netdev_features_t *)addr, spec);
  }
  
@@ -86554,7 +86557,7 @@ index e149c64..24aa71a 100644
  
  /*
   * Show a '%p' thing.  A kernel extension is that the '%p' is followed
-@@ -994,6 +1001,7 @@ int kptr_restrict __read_mostly;
+@@ -995,6 +1002,7 @@ int kptr_restrict __read_mostly;
   * - 'f' For simple symbolic function names without offset
   * - 'S' For symbolic direct pointers with offset
   * - 's' For symbolic direct pointers without offset
@@ -86562,7 +86565,7 @@ index e149c64..24aa71a 100644
   * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
   * - 'B' For backtraced symbolic direct pointers with offset
   * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
-@@ -1052,12 +1060,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1053,12 +1061,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
  
  	if (!ptr && *fmt != 'K') {
  		/*
@@ -86577,7 +86580,7 @@ index e149c64..24aa71a 100644
  	}
  
  	switch (*fmt) {
-@@ -1067,6 +1075,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1068,6 +1076,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
  		/* Fallthrough */
  	case 'S':
  	case 's':
@@ -86590,7 +86593,7 @@ index e149c64..24aa71a 100644
  	case 'B':
  		return symbol_string(buf, end, ptr, spec, fmt);
  	case 'R':
-@@ -1107,6 +1121,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1108,6 +1122,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
  			va_end(va);
  			return buf;
  		}
@@ -86599,7 +86602,7 @@ index e149c64..24aa71a 100644
  	case 'K':
  		/*
  		 * %pK cannot be used in IRQ context because its test
-@@ -1136,6 +1152,21 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
+@@ -1163,6 +1179,21 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
  		return number(buf, end,
  			      (unsigned long long) *((phys_addr_t *)ptr), spec);
  	}
@@ -86621,7 +86624,7 @@ index e149c64..24aa71a 100644
  	spec.flags |= SMALL;
  	if (spec.field_width == -1) {
  		spec.field_width = default_width;
-@@ -1857,11 +1888,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
+@@ -1884,11 +1915,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
  	typeof(type) value;						\
  	if (sizeof(type) == 8) {					\
  		args = PTR_ALIGN(args, sizeof(u32));			\
@@ -86636,7 +86639,7 @@ index e149c64..24aa71a 100644
  	}								\
  	args += sizeof(type);						\
  	value;								\
-@@ -1924,7 +1955,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
+@@ -1951,7 +1982,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
  		case FORMAT_TYPE_STR: {
  			const char *str_arg = args;
  			args += strlen(str_arg) + 1;
@@ -88069,7 +88072,7 @@ index 79b7cf7..9944291 100644
  	    capable(CAP_IPC_LOCK))
  		ret = do_mlockall(flags);
 diff --git a/mm/mmap.c b/mm/mmap.c
-index 8d25fdc..bfb7626 100644
+index 8f87b14..5748b4e 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
 @@ -36,6 +36,7 @@
@@ -88617,9 +88620,9 @@ index 8d25fdc..bfb7626 100644
  	struct vm_unmapped_area_info info;
 +	unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
  
- 	if (len > TASK_SIZE)
+ 	if (len > TASK_SIZE - mmap_min_addr)
  		return -ENOMEM;
-@@ -1859,29 +2119,45 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
+@@ -1859,29 +2119,46 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
  	if (flags & MAP_FIXED)
  		return addr;
  
@@ -88630,9 +88633,9 @@ index 8d25fdc..bfb7626 100644
  	if (addr) {
  		addr = PAGE_ALIGN(addr);
  		vma = find_vma(mm, addr);
--		if (TASK_SIZE - len >= addr &&
+ 		if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
 -		    (!vma || addr + len <= vma->vm_start))
-+		if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
++		    check_heap_stack_gap(vma, addr, len, offset))
  			return addr;
  	}
  
@@ -88668,15 +88671,15 @@ index 8d25fdc..bfb7626 100644
  		mm->free_area_cache = addr;
  }
  
-@@ -1899,6 +2175,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1899,6 +2176,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
  	struct mm_struct *mm = current->mm;
  	unsigned long addr = addr0;
  	struct vm_unmapped_area_info info;
 +	unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
  
  	/* requested length too big for entire address space */
- 	if (len > TASK_SIZE)
-@@ -1907,12 +2184,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+ 	if (len > TASK_SIZE - mmap_min_addr)
+@@ -1907,12 +2185,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
  	if (flags & MAP_FIXED)
  		return addr;
  
@@ -88688,21 +88691,21 @@ index 8d25fdc..bfb7626 100644
  	if (addr) {
  		addr = PAGE_ALIGN(addr);
  		vma = find_vma(mm, addr);
--		if (TASK_SIZE - len >= addr &&
+ 		if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
 -				(!vma || addr + len <= vma->vm_start))
-+		if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
++				check_heap_stack_gap(vma, addr, len, offset))
  			return addr;
  	}
  
-@@ -1921,6 +2201,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
- 	info.low_limit = PAGE_SIZE;
+@@ -1921,6 +2203,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+ 	info.low_limit = max(PAGE_SIZE, mmap_min_addr);
  	info.high_limit = mm->mmap_base;
  	info.align_mask = 0;
 +	info.threadstack_offset = offset;
  	addr = vm_unmapped_area(&info);
  
  	/*
-@@ -1933,6 +2214,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1933,6 +2216,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
  		VM_BUG_ON(addr != -ENOMEM);
  		info.flags = 0;
  		info.low_limit = TASK_UNMAPPED_BASE;
@@ -88715,7 +88718,7 @@ index 8d25fdc..bfb7626 100644
  		info.high_limit = TASK_SIZE;
  		addr = vm_unmapped_area(&info);
  	}
-@@ -1943,6 +2230,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+@@ -1943,6 +2232,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
  
  void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
  {
@@ -88728,7 +88731,7 @@ index 8d25fdc..bfb7626 100644
  	/*
  	 * Is this a new hole at the highest possible address?
  	 */
-@@ -1950,8 +2243,10 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
+@@ -1950,8 +2245,10 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
  		mm->free_area_cache = addr;
  
  	/* dont allow allocations above current base */
@@ -88740,7 +88743,7 @@ index 8d25fdc..bfb7626 100644
  }
  
  unsigned long
-@@ -2047,6 +2342,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
+@@ -2047,6 +2344,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
  	return vma;
  }
  
@@ -88769,7 +88772,7 @@ index 8d25fdc..bfb7626 100644
  /*
   * Verify that the stack growth is acceptable and
   * update accounting. This is shared with both the
-@@ -2063,6 +2380,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -2063,6 +2382,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
  		return -ENOMEM;
  
  	/* Stack limit test */
@@ -88777,7 +88780,7 @@ index 8d25fdc..bfb7626 100644
  	if (size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur))
  		return -ENOMEM;
  
-@@ -2073,6 +2391,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -2073,6 +2393,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
  		locked = mm->locked_vm + grow;
  		limit = ACCESS_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
  		limit >>= PAGE_SHIFT;
@@ -88785,7 +88788,7 @@ index 8d25fdc..bfb7626 100644
  		if (locked > limit && !capable(CAP_IPC_LOCK))
  			return -ENOMEM;
  	}
-@@ -2102,37 +2421,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
+@@ -2102,37 +2423,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
   * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
   * vma is the last one with address > vma->vm_end.  Have to extend vma.
   */
@@ -88843,7 +88846,7 @@ index 8d25fdc..bfb7626 100644
  		unsigned long size, grow;
  
  		size = address - vma->vm_start;
-@@ -2167,6 +2497,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
+@@ -2167,6 +2499,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
  			}
  		}
  	}
@@ -88852,7 +88855,7 @@ index 8d25fdc..bfb7626 100644
  	vma_unlock_anon_vma(vma);
  	khugepaged_enter_vma_merge(vma);
  	validate_mm(vma->vm_mm);
-@@ -2181,6 +2513,8 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2181,6 +2515,8 @@ int expand_downwards(struct vm_area_struct *vma,
  				   unsigned long address)
  {
  	int error;
@@ -88861,7 +88864,7 @@ index 8d25fdc..bfb7626 100644
  
  	/*
  	 * We must make sure the anon_vma is allocated
-@@ -2194,6 +2528,15 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2194,6 +2530,15 @@ int expand_downwards(struct vm_area_struct *vma,
  	if (error)
  		return error;
  
@@ -88877,7 +88880,7 @@ index 8d25fdc..bfb7626 100644
  	vma_lock_anon_vma(vma);
  
  	/*
-@@ -2203,9 +2546,17 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2203,9 +2548,17 @@ int expand_downwards(struct vm_area_struct *vma,
  	 */
  
  	/* Somebody else might have raced and expanded it already */
@@ -88896,7 +88899,7 @@ index 8d25fdc..bfb7626 100644
  		size = vma->vm_end - address;
  		grow = (vma->vm_start - address) >> PAGE_SHIFT;
  
-@@ -2230,13 +2581,27 @@ int expand_downwards(struct vm_area_struct *vma,
+@@ -2230,13 +2583,27 @@ int expand_downwards(struct vm_area_struct *vma,
  				vma->vm_pgoff -= grow;
  				anon_vma_interval_tree_post_update_vma(vma);
  				vma_gap_update(vma);
@@ -88924,7 +88927,7 @@ index 8d25fdc..bfb7626 100644
  	khugepaged_enter_vma_merge(vma);
  	validate_mm(vma->vm_mm);
  	return error;
-@@ -2334,6 +2699,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -2334,6 +2701,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
  	do {
  		long nrpages = vma_pages(vma);
  
@@ -88938,7 +88941,7 @@ index 8d25fdc..bfb7626 100644
  		if (vma->vm_flags & VM_ACCOUNT)
  			nr_accounted += nrpages;
  		vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
-@@ -2379,6 +2751,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2379,6 +2753,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
  	insertion_point = (prev ? &prev->vm_next : &mm->mmap);
  	vma->vm_prev = NULL;
  	do {
@@ -88955,7 +88958,7 @@ index 8d25fdc..bfb7626 100644
  		vma_rb_erase(vma, &mm->mm_rb);
  		mm->map_count--;
  		tail_vma = vma;
-@@ -2410,14 +2792,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2410,14 +2794,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  	struct vm_area_struct *new;
  	int err = -ENOMEM;
  
@@ -88989,7 +88992,7 @@ index 8d25fdc..bfb7626 100644
  	/* most fields are the same, copy all, and then fixup */
  	*new = *vma;
  
-@@ -2430,6 +2831,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2430,6 +2833,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  		new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
  	}
  
@@ -89012,7 +89015,7 @@ index 8d25fdc..bfb7626 100644
  	pol = mpol_dup(vma_policy(vma));
  	if (IS_ERR(pol)) {
  		err = PTR_ERR(pol);
-@@ -2452,6 +2869,36 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2452,6 +2871,36 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  	else
  		err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
  
@@ -89049,7 +89052,7 @@ index 8d25fdc..bfb7626 100644
  	/* Success. */
  	if (!err)
  		return 0;
-@@ -2461,10 +2908,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2461,10 +2910,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  		new->vm_ops->close(new);
  	if (new->vm_file)
  		fput(new->vm_file);
@@ -89069,7 +89072,7 @@ index 8d25fdc..bfb7626 100644
  	kmem_cache_free(vm_area_cachep, new);
   out_err:
  	return err;
-@@ -2477,6 +2932,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2477,6 +2934,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
  	      unsigned long addr, int new_below)
  {
@@ -89085,7 +89088,7 @@ index 8d25fdc..bfb7626 100644
  	if (mm->map_count >= sysctl_max_map_count)
  		return -ENOMEM;
  
-@@ -2488,11 +2952,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -2488,11 +2954,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
   * work.  This now handles partial unmappings.
   * Jeremy Fitzhardinge <jeremy@goop.org>
   */
@@ -89116,7 +89119,7 @@ index 8d25fdc..bfb7626 100644
  	if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
  		return -EINVAL;
  
-@@ -2567,6 +3050,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
+@@ -2567,6 +3052,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
  	/* Fix up all other VM information */
  	remove_vma_list(mm, vma);
  
@@ -89125,7 +89128,7 @@ index 8d25fdc..bfb7626 100644
  	return 0;
  }
  
-@@ -2575,6 +3060,13 @@ int vm_munmap(unsigned long start, size_t len)
+@@ -2575,6 +3062,13 @@ int vm_munmap(unsigned long start, size_t len)
  	int ret;
  	struct mm_struct *mm = current->mm;
  
@@ -89139,7 +89142,7 @@ index 8d25fdc..bfb7626 100644
  	down_write(&mm->mmap_sem);
  	ret = do_munmap(mm, start, len);
  	up_write(&mm->mmap_sem);
-@@ -2588,16 +3080,6 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
+@@ -2588,16 +3082,6 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
  	return vm_munmap(addr, len);
  }
  
@@ -89156,7 +89159,7 @@ index 8d25fdc..bfb7626 100644
  /*
   *  this is really a simplified "do_mmap".  it only handles
   *  anonymous maps.  eventually we may be able to do some
-@@ -2611,6 +3093,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2611,6 +3095,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
  	struct rb_node ** rb_link, * rb_parent;
  	pgoff_t pgoff = addr >> PAGE_SHIFT;
  	int error;
@@ -89164,7 +89167,7 @@ index 8d25fdc..bfb7626 100644
  
  	len = PAGE_ALIGN(len);
  	if (!len)
-@@ -2618,16 +3101,30 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2618,16 +3103,30 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
  
  	flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
  
@@ -89196,7 +89199,7 @@ index 8d25fdc..bfb7626 100644
  		locked += mm->locked_vm;
  		lock_limit = rlimit(RLIMIT_MEMLOCK);
  		lock_limit >>= PAGE_SHIFT;
-@@ -2644,21 +3141,20 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2644,21 +3143,20 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
  	/*
  	 * Clear old maps.  this also does some error checking for us
  	 */
@@ -89221,7 +89224,7 @@ index 8d25fdc..bfb7626 100644
  		return -ENOMEM;
  
  	/* Can we just expand an old private anonymous mapping? */
-@@ -2672,7 +3168,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2672,7 +3170,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
  	 */
  	vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
  	if (!vma) {
@@ -89230,7 +89233,7 @@ index 8d25fdc..bfb7626 100644
  		return -ENOMEM;
  	}
  
-@@ -2686,9 +3182,10 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
+@@ -2686,9 +3184,10 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
  	vma_link(mm, vma, prev, rb_link, rb_parent);
  out:
  	perf_event_mmap(vma);
@@ -89243,7 +89246,7 @@ index 8d25fdc..bfb7626 100644
  	return addr;
  }
  
-@@ -2750,6 +3247,7 @@ void exit_mmap(struct mm_struct *mm)
+@@ -2750,6 +3249,7 @@ void exit_mmap(struct mm_struct *mm)
  	while (vma) {
  		if (vma->vm_flags & VM_ACCOUNT)
  			nr_accounted += vma_pages(vma);
@@ -89251,7 +89254,7 @@ index 8d25fdc..bfb7626 100644
  		vma = remove_vma(vma);
  	}
  	vm_unacct_memory(nr_accounted);
-@@ -2766,6 +3264,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -2766,6 +3266,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
  	struct vm_area_struct *prev;
  	struct rb_node **rb_link, *rb_parent;
  
@@ -89265,7 +89268,7 @@ index 8d25fdc..bfb7626 100644
  	/*
  	 * The vm_pgoff of a purely anonymous vma should be irrelevant
  	 * until its first write fault, when page's anon_vma and index
-@@ -2789,7 +3294,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
+@@ -2789,7 +3296,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
  	     security_vm_enough_memory_mm(mm, vma_pages(vma)))
  		return -ENOMEM;
  
@@ -89287,7 +89290,7 @@ index 8d25fdc..bfb7626 100644
  	return 0;
  }
  
-@@ -2809,6 +3328,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2809,6 +3330,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  	struct mempolicy *pol;
  	bool faulted_in_anon_vma = true;
  
@@ -89296,7 +89299,7 @@ index 8d25fdc..bfb7626 100644
  	/*
  	 * If anonymous vma has not yet been faulted, update new pgoff
  	 * to match new location, to increase its chance of merging.
-@@ -2875,6 +3396,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2875,6 +3398,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  	return NULL;
  }
  
@@ -89336,7 +89339,7 @@ index 8d25fdc..bfb7626 100644
  /*
   * Return true if the calling process may expand its vm space by the passed
   * number of pages
-@@ -2886,6 +3440,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
+@@ -2886,6 +3442,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
  
  	lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
  
@@ -89344,7 +89347,7 @@ index 8d25fdc..bfb7626 100644
  	if (cur + npages > lim)
  		return 0;
  	return 1;
-@@ -2956,6 +3511,22 @@ int install_special_mapping(struct mm_struct *mm,
+@@ -2956,6 +3513,22 @@ int install_special_mapping(struct mm_struct *mm,
  	vma->vm_start = addr;
  	vma->vm_end = addr + len;
  
@@ -89368,7 +89371,7 @@ index 8d25fdc..bfb7626 100644
  	vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
  
 diff --git a/mm/mprotect.c b/mm/mprotect.c
-index 2bbb648..1658c46 100644
+index d4d5399..48cbd4a 100644
 --- a/mm/mprotect.c
 +++ b/mm/mprotect.c
 @@ -23,10 +23,18 @@
@@ -89390,7 +89393,7 @@ index 2bbb648..1658c46 100644
  
  #ifndef pgprot_modify
  static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
-@@ -233,6 +241,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
+@@ -238,6 +246,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
  	return pages;
  }
  
@@ -89439,7 +89442,7 @@ index 2bbb648..1658c46 100644
  int
  mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
  	unsigned long start, unsigned long end, unsigned long newflags)
-@@ -245,11 +295,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -250,11 +300,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
  	int error;
  	int dirty_accountable = 0;
  
@@ -89469,7 +89472,7 @@ index 2bbb648..1658c46 100644
  	/*
  	 * If we make a private mapping writable we increase our commit;
  	 * but (without finer accounting) cannot reduce our commit if we
-@@ -266,6 +334,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -271,6 +339,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
  		}
  	}
  
@@ -89512,7 +89515,7 @@ index 2bbb648..1658c46 100644
  	/*
  	 * First try to merge with previous and/or next vma.
  	 */
-@@ -296,9 +400,21 @@ success:
+@@ -301,9 +405,21 @@ success:
  	 * vm_flags and vm_page_prot are protected by the mmap_sem
  	 * held in write mode.
  	 */
@@ -89535,7 +89538,7 @@ index 2bbb648..1658c46 100644
  
  	if (vma_wants_writenotify(vma)) {
  		vma->vm_page_prot = vm_get_page_prot(newflags & ~VM_SHARED);
-@@ -337,6 +453,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -342,6 +458,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
  	end = start + len;
  	if (end <= start)
  		return -ENOMEM;
@@ -89553,7 +89556,7 @@ index 2bbb648..1658c46 100644
  	if (!arch_validate_prot(prot))
  		return -EINVAL;
  
-@@ -344,7 +471,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -349,7 +476,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
  	/*
  	 * Does the application expect PROT_READ to imply PROT_EXEC:
  	 */
@@ -89562,7 +89565,7 @@ index 2bbb648..1658c46 100644
  		prot |= PROT_EXEC;
  
  	vm_flags = calc_vm_prot_bits(prot);
-@@ -376,6 +503,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -381,6 +508,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
  	if (start > vma->vm_start)
  		prev = vma;
  
@@ -89574,7 +89577,7 @@ index 2bbb648..1658c46 100644
  	for (nstart = start ; ; ) {
  		unsigned long newflags;
  
-@@ -386,6 +518,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -391,6 +523,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
  
  		/* newflags >> 4 shift VM_MAY% in place of VM_% */
  		if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
@@ -89589,7 +89592,7 @@ index 2bbb648..1658c46 100644
  			error = -EACCES;
  			goto out;
  		}
-@@ -400,6 +540,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -405,6 +545,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
  		error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
  		if (error)
  			goto out;
@@ -90883,7 +90886,7 @@ index eeed4a0..bb0e9ab 100644
  EXPORT_SYMBOL(kmem_cache_free);
  
 diff --git a/mm/slub.c b/mm/slub.c
-index 57707f0..7857bd3 100644
+index c34bd44..11a3c00 100644
 --- a/mm/slub.c
 +++ b/mm/slub.c
 @@ -198,7 +198,7 @@ struct track {
@@ -91447,7 +91450,7 @@ index d456560..3ed6863 100644
  	if (v->nr_pages)
  		seq_printf(m, " pages=%d", v->nr_pages);
 diff --git a/mm/vmstat.c b/mm/vmstat.c
-index f42745e..62f8346 100644
+index 10bbb54..7a0cf21 100644
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
 @@ -76,7 +76,7 @@ void vm_events_fold_cpu(int cpu)
@@ -91488,7 +91491,7 @@ index f42745e..62f8346 100644
  		}
  }
  #endif
-@@ -1226,7 +1226,7 @@ static int __cpuinit vmstat_cpuup_callback(struct notifier_block *nfb,
+@@ -1227,7 +1227,7 @@ static int __cpuinit vmstat_cpuup_callback(struct notifier_block *nfb,
  	return NOTIFY_OK;
  }
  
@@ -91497,7 +91500,7 @@ index f42745e..62f8346 100644
  	{ &vmstat_cpuup_callback, NULL, 0 };
  #endif
  
-@@ -1241,10 +1241,20 @@ static int __init setup_vmstat(void)
+@@ -1242,10 +1242,20 @@ static int __init setup_vmstat(void)
  		start_cpu_timer(cpu);
  #endif
  #ifdef CONFIG_PROC_FS
@@ -91998,10 +92001,10 @@ index 7c88f5f..b65befb 100644
  		destroy_workqueue(hdev->workqueue);
  		error = -ENOMEM;
 diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
-index 9bd7d95..6c4884f 100644
+index fa4bf66..e92948f 100644
 --- a/net/bluetooth/hci_sock.c
 +++ b/net/bluetooth/hci_sock.c
-@@ -934,7 +934,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
+@@ -932,7 +932,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
  			uf.event_mask[1] = *((u32 *) f->event_mask + 1);
  		}
  
@@ -92079,10 +92082,10 @@ index 36fed40..be2eeb2 100644
  			err = -EFAULT;
  			break;
 diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
-index 30b3721..c1bd0a0 100644
+index c1c6028..17e8dcc 100644
 --- a/net/bluetooth/rfcomm/sock.c
 +++ b/net/bluetooth/rfcomm/sock.c
-@@ -666,7 +666,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
+@@ -665,7 +665,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
  	struct sock *sk = sock->sk;
  	struct bt_security sec;
  	int err = 0;
@@ -92091,7 +92094,7 @@ index 30b3721..c1bd0a0 100644
  	u32 opt;
  
  	BT_DBG("sk %p", sk);
-@@ -688,7 +688,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
+@@ -687,7 +687,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
  
  		sec.level = BT_SECURITY_LOW;
  
@@ -92280,13 +92283,13 @@ index eb0a46a..5f3bae8 100644
  
  	switch (ss->ss_family) {
 diff --git a/net/compat.c b/net/compat.c
-index 8903258..24e30e5 100644
+index dd32e34..6066f87 100644
 --- a/net/compat.c
 +++ b/net/compat.c
 @@ -73,9 +73,9 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg)
  		return -EFAULT;
  	if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
- 		return -EINVAL;
+ 		kmsg->msg_namelen = sizeof(struct sockaddr_storage);
 -	kmsg->msg_name = compat_ptr(tmp1);
 -	kmsg->msg_iov = compat_ptr(tmp2);
 -	kmsg->msg_control = compat_ptr(tmp3);
@@ -92305,7 +92308,7 @@ index 8903258..24e30e5 100644
  						      kern_msg->msg_namelen,
  						      kern_address);
  			if (err < 0)
-@@ -98,7 +98,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
+@@ -99,7 +99,7 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
  		kern_msg->msg_name = NULL;
  
  	tot_len = iov_from_user_compat_to_kern(kern_iov,
@@ -92314,7 +92317,7 @@ index 8903258..24e30e5 100644
  					  kern_msg->msg_iovlen);
  	if (tot_len >= 0)
  		kern_msg->msg_iov = kern_iov;
-@@ -118,20 +118,20 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
+@@ -119,20 +119,20 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov,
  
  #define CMSG_COMPAT_FIRSTHDR(msg)			\
  	(((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ?	\
@@ -92338,7 +92341,7 @@ index 8903258..24e30e5 100644
  			msg->msg_controllen)
  		return NULL;
  	return (struct compat_cmsghdr __user *)ptr;
-@@ -221,7 +221,7 @@ Efault:
+@@ -222,7 +222,7 @@ Efault:
  
  int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
  {
@@ -92347,7 +92350,7 @@ index 8903258..24e30e5 100644
  	struct compat_cmsghdr cmhdr;
  	struct compat_timeval ctv;
  	struct compat_timespec cts[3];
-@@ -277,7 +277,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
+@@ -278,7 +278,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
  
  void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
  {
@@ -92356,7 +92359,7 @@ index 8903258..24e30e5 100644
  	int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int);
  	int fdnum = scm->fp->count;
  	struct file **fp = scm->fp->fp;
-@@ -365,7 +365,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
+@@ -366,7 +366,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
  		return -EFAULT;
  	old_fs = get_fs();
  	set_fs(KERNEL_DS);
@@ -92365,7 +92368,7 @@ index 8903258..24e30e5 100644
  	set_fs(old_fs);
  
  	return err;
-@@ -426,7 +426,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
+@@ -427,7 +427,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
  	len = sizeof(ktime);
  	old_fs = get_fs();
  	set_fs(KERNEL_DS);
@@ -92374,7 +92377,7 @@ index 8903258..24e30e5 100644
  	set_fs(old_fs);
  
  	if (!err) {
-@@ -569,7 +569,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -570,7 +570,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
  	case MCAST_JOIN_GROUP:
  	case MCAST_LEAVE_GROUP:
  	{
@@ -92383,7 +92386,7 @@ index 8903258..24e30e5 100644
  		struct group_req __user *kgr =
  			compat_alloc_user_space(sizeof(struct group_req));
  		u32 interface;
-@@ -590,7 +590,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -591,7 +591,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
  	case MCAST_BLOCK_SOURCE:
  	case MCAST_UNBLOCK_SOURCE:
  	{
@@ -92392,7 +92395,7 @@ index 8903258..24e30e5 100644
  		struct group_source_req __user *kgsr = compat_alloc_user_space(
  			sizeof(struct group_source_req));
  		u32 interface;
-@@ -611,7 +611,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+@@ -612,7 +612,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
  	}
  	case MCAST_MSFILTER:
  	{
@@ -92401,7 +92404,7 @@ index 8903258..24e30e5 100644
  		struct group_filter __user *kgf;
  		u32 interface, fmode, numsrc;
  
-@@ -649,7 +649,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
+@@ -650,7 +650,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
  	char __user *optval, int __user *optlen,
  	int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
  {
@@ -92410,7 +92413,7 @@ index 8903258..24e30e5 100644
  	struct group_filter __user *kgf;
  	int __user	*koptlen;
  	u32 interface, fmode, numsrc;
-@@ -807,7 +807,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
+@@ -808,7 +808,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
  
  	if (call < SYS_SOCKET || call > SYS_SENDMMSG)
  		return -EINVAL;
@@ -92433,7 +92436,7 @@ index b71423d..0360434 100644
  
  	return err;
 diff --git a/net/core/dev.c b/net/core/dev.c
-index 7ddbb31..3902452 100644
+index 1283c84..60f0253 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
 @@ -1649,7 +1649,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
@@ -92609,7 +92612,7 @@ index 7102f16..146b4bd 100644
  			fle->object = flo;
  		else
 diff --git a/net/core/iovec.c b/net/core/iovec.c
-index de178e4..1dabd8b 100644
+index 9a31515..4fd45a6 100644
 --- a/net/core/iovec.c
 +++ b/net/core/iovec.c
 @@ -42,7 +42,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
@@ -92621,7 +92624,7 @@ index de178e4..1dabd8b 100644
  			err = move_addr_to_kernel(namep, m->msg_namelen,
  						  address);
  			if (err < 0)
-@@ -54,7 +54,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
+@@ -55,7 +55,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
  	}
  
  	size = m->msg_iovlen * sizeof(struct iovec);
@@ -92816,10 +92819,10 @@ index b4da80b..98d6bdb 100644
  	{
  		struct socket *sock;
 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 1c1738c..4cab7f0 100644
+index d9e8736..6abcdf9 100644
 --- a/net/core/skbuff.c
 +++ b/net/core/skbuff.c
-@@ -3087,13 +3087,15 @@ void __init skb_init(void)
+@@ -3084,13 +3084,15 @@ void __init skb_init(void)
  	skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
  					      sizeof(struct sk_buff),
  					      0,
@@ -93091,7 +93094,7 @@ index a55eecc..dd8428c 100644
  
  	*lenp = len;
 diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
-index 55e1fd5..fd602b8 100644
+index 31b127e..627fdea 100644
 --- a/net/ieee802154/6lowpan.c
 +++ b/net/ieee802154/6lowpan.c
 @@ -459,7 +459,7 @@ static int lowpan_header_create(struct sk_buff *skb,
@@ -93418,10 +93421,10 @@ index 64e4e98..db77052 100644
  	.maxtype	= IFLA_GRE_MAX,
  	.policy		= ipgre_policy,
 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
-index d9c4f11..02b82dbc 100644
+index 23e6ab0..be67a57 100644
 --- a/net/ipv4/ip_sockglue.c
 +++ b/net/ipv4/ip_sockglue.c
-@@ -1152,7 +1152,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
+@@ -1153,7 +1153,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
  		len = min_t(unsigned int, len, opt->optlen);
  		if (put_user(len, optlen))
  			return -EFAULT;
@@ -93431,7 +93434,7 @@ index d9c4f11..02b82dbc 100644
  			return -EFAULT;
  		return 0;
  	}
-@@ -1283,7 +1284,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
+@@ -1284,7 +1285,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
  		if (sk->sk_type != SOCK_STREAM)
  			return -ENOPROTOOPT;
  
@@ -93441,7 +93444,7 @@ index d9c4f11..02b82dbc 100644
  		msg.msg_flags = flags;
  
 diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
-index 0656041..d6ecb60 100644
+index feb19db..61aa09b 100644
 --- a/net/ipv4/ip_vti.c
 +++ b/net/ipv4/ip_vti.c
 @@ -47,7 +47,7 @@
@@ -93453,7 +93456,7 @@ index 0656041..d6ecb60 100644
  
  static int vti_net_id __read_mostly;
  struct vti_net {
-@@ -848,7 +848,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
+@@ -849,7 +849,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
  	[IFLA_VTI_REMOTE]	= { .len = FIELD_SIZEOF(struct iphdr, daddr) },
  };
  
@@ -93627,10 +93630,10 @@ index d23118d..6ad7277 100644
  
  	case IPT_SO_GET_ENTRIES:
 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
-index 7d93d62..cbbf2a3 100644
+index 8cae28f..049d45a 100644
 --- a/net/ipv4/ping.c
 +++ b/net/ipv4/ping.c
-@@ -843,7 +843,7 @@ static void ping_format_sock(struct sock *sp, struct seq_file *f,
+@@ -842,7 +842,7 @@ static void ping_format_sock(struct sock *sp, struct seq_file *f,
  		from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
  		0, sock_i_ino(sp),
  		atomic_read(&sp->sk_refcnt), sp,
@@ -93640,7 +93643,7 @@ index 7d93d62..cbbf2a3 100644
  
  static int ping_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
-index 6fb2337..9cd6b20 100644
+index 402870f..4651346 100644
 --- a/net/ipv4/raw.c
 +++ b/net/ipv4/raw.c
 @@ -309,7 +309,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -93652,7 +93655,7 @@ index 6fb2337..9cd6b20 100644
  		kfree_skb(skb);
  		return NET_RX_DROP;
  	}
-@@ -746,16 +746,20 @@ static int raw_init(struct sock *sk)
+@@ -744,16 +744,20 @@ static int raw_init(struct sock *sk)
  
  static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
  {
@@ -93674,7 +93677,7 @@ index 6fb2337..9cd6b20 100644
  
  	if (get_user(len, optlen))
  		goto out;
-@@ -765,8 +769,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
+@@ -763,8 +767,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
  	if (len > sizeof(struct icmp_filter))
  		len = sizeof(struct icmp_filter);
  	ret = -EFAULT;
@@ -93685,7 +93688,7 @@ index 6fb2337..9cd6b20 100644
  		goto out;
  	ret = 0;
  out:	return ret;
-@@ -995,7 +999,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
+@@ -993,7 +997,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
  		0, 0L, 0,
  		from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
  		0, sock_i_ino(sp),
@@ -93695,10 +93698,10 @@ index 6fb2337..9cd6b20 100644
  
  static int raw_seq_show(struct seq_file *seq, void *v)
 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
-index d11e73c..25c1dc4 100644
+index f6c6ab1..e0dae89 100644
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -2558,34 +2558,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
+@@ -2562,34 +2562,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
  		.maxlen		= sizeof(int),
  		.mode		= 0200,
  		.proc_handler	= ipv4_sysctl_rtcache_flush,
@@ -93741,7 +93744,7 @@ index d11e73c..25c1dc4 100644
  err_dup:
  	return -ENOMEM;
  }
-@@ -2608,7 +2608,7 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
+@@ -2612,7 +2612,7 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
  
  static __net_init int rt_genid_init(struct net *net)
  {
@@ -93929,7 +93932,7 @@ index e15d330..c93711a 100644
  			if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
  				return 1;
 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index 7999fc5..c812f42 100644
+index 5d87806..1b9673a 100644
 --- a/net/ipv4/tcp_ipv4.c
 +++ b/net/ipv4/tcp_ipv4.c
 @@ -90,6 +90,10 @@ int sysctl_tcp_low_latency __read_mostly;
@@ -94057,7 +94060,7 @@ index 4b85e6f..22f9ac9 100644
  				  syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
  		/* Has it gone just too far? */
 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
-index 93b731d..5a2dd92 100644
+index c3075b5..6b23f6c 100644
 --- a/net/ipv4/udp.c
 +++ b/net/ipv4/udp.c
 @@ -87,6 +87,7 @@
@@ -94108,7 +94111,7 @@ index 93b731d..5a2dd92 100644
  		daddr = inet->inet_daddr;
  		dport = inet->inet_dport;
  		/* Open fast path for connected socket.
-@@ -1136,7 +1153,7 @@ static unsigned int first_packet_length(struct sock *sk)
+@@ -1139,7 +1156,7 @@ static unsigned int first_packet_length(struct sock *sk)
  				 IS_UDPLITE(sk));
  		UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
  				 IS_UDPLITE(sk));
@@ -94117,7 +94120,7 @@ index 93b731d..5a2dd92 100644
  		__skb_unlink(skb, rcvq);
  		__skb_queue_tail(&list_kill, skb);
  	}
-@@ -1222,6 +1239,10 @@ try_again:
+@@ -1219,6 +1236,10 @@ try_again:
  	if (!skb)
  		goto out;
  
@@ -94128,7 +94131,7 @@ index 93b731d..5a2dd92 100644
  	ulen = skb->len - sizeof(struct udphdr);
  	copied = len;
  	if (copied > ulen)
-@@ -1255,7 +1276,7 @@ try_again:
+@@ -1252,7 +1273,7 @@ try_again:
  	if (unlikely(err)) {
  		trace_kfree_skb(skb, udp_recvmsg);
  		if (!peeked) {
@@ -94137,7 +94140,7 @@ index 93b731d..5a2dd92 100644
  			UDP_INC_STATS_USER(sock_net(sk),
  					   UDP_MIB_INERRORS, is_udplite);
  		}
-@@ -1542,7 +1563,7 @@ csum_error:
+@@ -1540,7 +1561,7 @@ csum_error:
  	UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
  drop:
  	UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
@@ -94146,7 +94149,7 @@ index 93b731d..5a2dd92 100644
  	kfree_skb(skb);
  	return -1;
  }
-@@ -1561,7 +1582,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
+@@ -1559,7 +1580,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
  			skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
  
  		if (!skb1) {
@@ -94155,7 +94158,7 @@ index 93b731d..5a2dd92 100644
  			UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
  					 IS_UDPLITE(sk));
  			UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
-@@ -1730,6 +1751,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
+@@ -1728,6 +1749,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
  		goto csum_error;
  
  	UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
@@ -94165,7 +94168,7 @@ index 93b731d..5a2dd92 100644
  	icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
  
  	/*
-@@ -2160,7 +2184,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
+@@ -2158,7 +2182,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
  		from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
  		0, sock_i_ino(sp),
  		atomic_read(&sp->sk_refcnt), sp,
@@ -94422,7 +94425,7 @@ index 44400c2..8e11f52 100644
  
  	case IP6T_SO_GET_ENTRIES:
 diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
-index dffdc1a..ccc6678 100644
+index 253566a..9fa50c7 100644
 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c
 +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
 @@ -90,12 +90,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = {
@@ -94497,7 +94500,7 @@ index c2e73e6..12cca6f 100644
  EXPORT_SYMBOL(ipv6_select_ident);
  
 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
-index eedff8c..7d7e24a 100644
+index 464b1c9..673cedb 100644
 --- a/net/ipv6/raw.c
 +++ b/net/ipv6/raw.c
 @@ -108,7 +108,7 @@ found:
@@ -94536,7 +94539,7 @@ index eedff8c..7d7e24a 100644
  			kfree_skb(skb);
  			return NET_RX_DROP;
  		}
-@@ -602,7 +602,7 @@ out:
+@@ -600,7 +600,7 @@ out:
  	return err;
  }
  
@@ -94545,7 +94548,7 @@ index eedff8c..7d7e24a 100644
  			struct flowi6 *fl6, struct dst_entry **dstp,
  			unsigned int flags)
  {
-@@ -914,12 +914,15 @@ do_confirm:
+@@ -912,12 +912,15 @@ do_confirm:
  static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
  			       char __user *optval, int optlen)
  {
@@ -94562,7 +94565,7 @@ index eedff8c..7d7e24a 100644
  		return 0;
  	default:
  		return -ENOPROTOOPT;
-@@ -932,6 +935,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
+@@ -930,6 +933,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
  			       char __user *optval, int __user *optlen)
  {
  	int len;
@@ -94570,7 +94573,7 @@ index eedff8c..7d7e24a 100644
  
  	switch (optname) {
  	case ICMPV6_FILTER:
-@@ -943,7 +947,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
+@@ -941,7 +945,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
  			len = sizeof(struct icmp6_filter);
  		if (put_user(len, optlen))
  			return -EFAULT;
@@ -94580,7 +94583,7 @@ index eedff8c..7d7e24a 100644
  			return -EFAULT;
  		return 0;
  	default:
-@@ -1251,7 +1256,7 @@ static void raw6_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
+@@ -1249,7 +1254,7 @@ static void raw6_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
  		   from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
  		   0,
  		   sock_i_ino(sp),
@@ -94632,10 +94635,10 @@ index 1aeb473..bea761c 100644
  	return -ENOMEM;
  }
 diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index 548a1f7c..63ee520 100644
+index 5a8bf536..72b1d94 100644
 --- a/net/ipv6/route.c
 +++ b/net/ipv6/route.c
-@@ -2934,7 +2934,7 @@ ctl_table ipv6_route_table_template[] = {
+@@ -2937,7 +2937,7 @@ ctl_table ipv6_route_table_template[] = {
  
  struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
  {
@@ -94739,7 +94742,7 @@ index 66c7188..5600868 100644
  	}
  
 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
-index e7b28f9..d09c290 100644
+index 6b298dc..c3e5995 100644
 --- a/net/ipv6/udp.c
 +++ b/net/ipv6/udp.c
 @@ -52,6 +52,10 @@
@@ -94753,7 +94756,7 @@ index e7b28f9..d09c290 100644
  int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
  {
  	const struct in6_addr *sk_rcv_saddr6 = &inet6_sk(sk)->rcv_saddr;
-@@ -419,7 +423,7 @@ try_again:
+@@ -416,7 +420,7 @@ try_again:
  	if (unlikely(err)) {
  		trace_kfree_skb(skb, udpv6_recvmsg);
  		if (!peeked) {
@@ -94762,7 +94765,7 @@ index e7b28f9..d09c290 100644
  			if (is_udp4)
  				UDP_INC_STATS_USER(sock_net(sk),
  						   UDP_MIB_INERRORS,
-@@ -665,7 +669,7 @@ csum_error:
+@@ -662,7 +666,7 @@ csum_error:
  	UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
  drop:
  	UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
@@ -94771,7 +94774,7 @@ index e7b28f9..d09c290 100644
  	kfree_skb(skb);
  	return -1;
  }
-@@ -723,7 +727,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
+@@ -720,7 +724,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
  		if (likely(skb1 == NULL))
  			skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
  		if (!skb1) {
@@ -94780,7 +94783,7 @@ index e7b28f9..d09c290 100644
  			UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
  					  IS_UDPLITE(sk));
  			UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
-@@ -860,6 +864,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
+@@ -857,6 +861,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
  		goto csum_error;
  
  	UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
@@ -94790,7 +94793,7 @@ index e7b28f9..d09c290 100644
  	icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
  
  	kfree_skb(skb);
-@@ -1392,7 +1399,7 @@ static void udp6_sock_seq_show(struct seq_file *seq, struct sock *sp, int bucket
+@@ -1389,7 +1396,7 @@ static void udp6_sock_seq_show(struct seq_file *seq, struct sock *sp, int bucket
  		   0,
  		   sock_i_ino(sp),
  		   atomic_read(&sp->sk_refcnt), sp,
@@ -94914,7 +94917,7 @@ index 41ac7938..75e3bb1 100644
  	seq_printf(m, "Max header size: %d\n", self->max_header_size);
  
 diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
-index ae69165..c8b82d8 100644
+index 276aa86..aeb81c8 100644
 --- a/net/iucv/af_iucv.c
 +++ b/net/iucv/af_iucv.c
 @@ -773,10 +773,10 @@ static int iucv_sock_autobind(struct sock *sk)
@@ -94944,7 +94947,7 @@ index 4fe76ff..426a904 100644
  };
  
 diff --git a/net/key/af_key.c b/net/key/af_key.c
-index ab8bd2c..cd2d641 100644
+index 66f51c5..8f0eef1 100644
 --- a/net/key/af_key.c
 +++ b/net/key/af_key.c
 @@ -3048,10 +3048,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
@@ -95269,7 +95272,7 @@ index a083bda..da661c3 100644
  
  	if (!todrop_rate[i]) return 0;
 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
-index 23b8eb5..48a8959 100644
+index 21a3a47..268e13e 100644
 --- a/net/netfilter/ipvs/ip_vs_core.c
 +++ b/net/netfilter/ipvs/ip_vs_core.c
 @@ -559,7 +559,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
@@ -95281,7 +95284,7 @@ index 23b8eb5..48a8959 100644
  		ip_vs_conn_put(cp);
  		return ret;
  	}
-@@ -1711,7 +1711,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
+@@ -1698,7 +1698,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
  	if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
  		pkts = sysctl_sync_threshold(ipvs);
  	else
@@ -95946,7 +95949,7 @@ index 4fe4fb4..87a89e5 100644
  	return 0;
  }
 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
-index 57ee84d..8b99cf5 100644
+index c9c2a84..ae00c02 100644
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
 @@ -121,7 +121,7 @@ static void netlink_overrun(struct sock *sk)
@@ -95958,7 +95961,7 @@ index 57ee84d..8b99cf5 100644
  }
  
  static void netlink_rcv_wake(struct sock *sk)
-@@ -2771,7 +2771,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
+@@ -2769,7 +2769,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
  			   sk_wmem_alloc_get(s),
  			   nlk->cb,
  			   atomic_read(&s->sk_refcnt),
@@ -96010,7 +96013,7 @@ index 393f17e..a64232c 100644
  		}
  	}
 diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
-index ec0c80f..41e1830 100644
+index 13b92982..9ae9c97 100644
 --- a/net/netrom/af_netrom.c
 +++ b/net/netrom/af_netrom.c
 @@ -850,7 +850,6 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr,
@@ -96022,10 +96025,10 @@ index ec0c80f..41e1830 100644
  		*uaddr_len = sizeof(struct sockaddr_ax25);
  	}
 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index a6895ab..722fa96 100644
+index c503ad6..fbb6ef8 100644
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1681,7 +1681,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1688,7 +1688,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
  
  	spin_lock(&sk->sk_receive_queue.lock);
  	po->stats.stats1.tp_packets++;
@@ -96034,7 +96037,7 @@ index a6895ab..722fa96 100644
  	__skb_queue_tail(&sk->sk_receive_queue, skb);
  	spin_unlock(&sk->sk_receive_queue.lock);
  	sk->sk_data_ready(sk, skb->len);
-@@ -1690,7 +1690,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1697,7 +1697,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
  drop_n_acct:
  	spin_lock(&sk->sk_receive_queue.lock);
  	po->stats.stats1.tp_drops++;
@@ -96043,7 +96046,7 @@ index a6895ab..722fa96 100644
  	spin_unlock(&sk->sk_receive_queue.lock);
  
  drop_n_restore:
-@@ -2640,6 +2640,7 @@ out:
+@@ -2653,6 +2653,7 @@ out:
  
  static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
  {
@@ -96051,7 +96054,7 @@ index a6895ab..722fa96 100644
  	struct sock_exterr_skb *serr;
  	struct sk_buff *skb, *skb2;
  	int copied, err;
-@@ -2661,8 +2662,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
+@@ -2674,8 +2675,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
  	sock_recv_timestamp(msg, sk, skb);
  
  	serr = SKB_EXT_ERR(skb);
@@ -96062,7 +96065,7 @@ index a6895ab..722fa96 100644
  
  	msg->msg_flags |= MSG_ERRQUEUE;
  	err = copied;
-@@ -3283,7 +3285,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3294,7 +3296,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
  	case PACKET_HDRLEN:
  		if (len > sizeof(int))
  			len = sizeof(int);
@@ -96071,7 +96074,7 @@ index a6895ab..722fa96 100644
  			return -EFAULT;
  		switch (val) {
  		case TPACKET_V1:
-@@ -3326,7 +3328,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3337,7 +3339,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
  		len = lv;
  	if (put_user(len, optlen))
  		return -EFAULT;
@@ -96801,7 +96804,7 @@ index 098f1d5f..60da2f7 100644
  
  /* Start T3_rtx timer if it is not already running and update the heartbeat
 diff --git a/net/socket.c b/net/socket.c
-index 9c467b2..f2cbd27 100644
+index ac72efc..eac33e5 100644
 --- a/net/socket.c
 +++ b/net/socket.c
 @@ -88,6 +88,7 @@
@@ -96821,7 +96824,7 @@ index 9c467b2..f2cbd27 100644
  static int sock_no_open(struct inode *irrelevant, struct file *dontcare);
  static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov,
  			 unsigned long nr_segs, loff_t pos);
-@@ -321,7 +324,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
+@@ -322,7 +325,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
  		&sockfs_dentry_operations, SOCKFS_MAGIC);
  }
  
@@ -96830,7 +96833,7 @@ index 9c467b2..f2cbd27 100644
  
  static struct file_system_type sock_fs_type = {
  	.name =		"sockfs",
-@@ -1246,6 +1249,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
+@@ -1247,6 +1250,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
  		return -EAFNOSUPPORT;
  	if (type < 0 || type >= SOCK_MAX)
  		return -EINVAL;
@@ -96839,7 +96842,7 @@ index 9c467b2..f2cbd27 100644
  
  	/* Compatibility.
  
-@@ -1377,6 +1382,16 @@ SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
+@@ -1378,6 +1383,16 @@ SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
  	if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK))
  		flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK;
  
@@ -96856,7 +96859,7 @@ index 9c467b2..f2cbd27 100644
  	retval = sock_create(family, type, protocol, &sock);
  	if (retval < 0)
  		goto out;
-@@ -1504,6 +1519,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
+@@ -1505,6 +1520,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
  	if (sock) {
  		err = move_addr_to_kernel(umyaddr, addrlen, &address);
  		if (err >= 0) {
@@ -96871,7 +96874,7 @@ index 9c467b2..f2cbd27 100644
  			err = security_socket_bind(sock,
  						   (struct sockaddr *)&address,
  						   addrlen);
-@@ -1512,6 +1535,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
+@@ -1513,6 +1536,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
  						      (struct sockaddr *)
  						      &address, addrlen);
  		}
@@ -96879,7 +96882,7 @@ index 9c467b2..f2cbd27 100644
  		fput_light(sock->file, fput_needed);
  	}
  	return err;
-@@ -1535,10 +1559,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
+@@ -1536,10 +1560,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
  		if ((unsigned int)backlog > somaxconn)
  			backlog = somaxconn;
  
@@ -96900,7 +96903,7 @@ index 9c467b2..f2cbd27 100644
  		fput_light(sock->file, fput_needed);
  	}
  	return err;
-@@ -1582,6 +1616,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
+@@ -1583,6 +1617,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
  	newsock->type = sock->type;
  	newsock->ops = sock->ops;
  
@@ -96919,7 +96922,7 @@ index 9c467b2..f2cbd27 100644
  	/*
  	 * We don't need try_module_get here, as the listening socket (sock)
  	 * has the protocol module (sock->ops->owner) held.
-@@ -1627,6 +1673,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
+@@ -1628,6 +1674,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
  	fd_install(newfd, newfile);
  	err = newfd;
  
@@ -96928,7 +96931,7 @@ index 9c467b2..f2cbd27 100644
  out_put:
  	fput_light(sock->file, fput_needed);
  out:
-@@ -1659,6 +1707,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
+@@ -1660,6 +1708,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
  		int, addrlen)
  {
  	struct socket *sock;
@@ -96936,7 +96939,7 @@ index 9c467b2..f2cbd27 100644
  	struct sockaddr_storage address;
  	int err, fput_needed;
  
-@@ -1669,6 +1718,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
+@@ -1670,6 +1719,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
  	if (err < 0)
  		goto out_put;
  
@@ -96954,7 +96957,7 @@ index 9c467b2..f2cbd27 100644
  	err =
  	    security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
  	if (err)
-@@ -1750,6 +1810,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
+@@ -1751,6 +1811,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
   *	the protocol.
   */
  
@@ -96963,7 +96966,7 @@ index 9c467b2..f2cbd27 100644
  SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
  		unsigned int, flags, struct sockaddr __user *, addr,
  		int, addr_len)
-@@ -1816,7 +1878,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
+@@ -1817,7 +1879,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
  	struct socket *sock;
  	struct iovec iov;
  	struct msghdr msg;
@@ -96972,7 +96975,7 @@ index 9c467b2..f2cbd27 100644
  	int err, err2;
  	int fput_needed;
  
-@@ -2036,7 +2098,7 @@ static int ___sys_sendmsg(struct socket *sock, struct msghdr __user *msg,
+@@ -2039,7 +2101,7 @@ static int ___sys_sendmsg(struct socket *sock, struct msghdr __user *msg,
  		 * checking falls down on this.
  		 */
  		if (copy_from_user(ctl_buf,
@@ -96981,7 +96984,7 @@ index 9c467b2..f2cbd27 100644
  				   ctl_len))
  			goto out_freectl;
  		msg_sys->msg_control = ctl_buf;
-@@ -2187,7 +2249,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
+@@ -2190,7 +2252,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
  	int err, total_len, len;
  
  	/* kernel mode address */
@@ -96990,16 +96993,16 @@ index 9c467b2..f2cbd27 100644
  
  	/* user mode address pointers */
  	struct sockaddr __user *uaddr;
-@@ -2218,7 +2280,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
- 	 *      kernel msghdr to use the kernel address space)
+@@ -2219,7 +2281,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
+ 	/* Save the user-mode address (verify_iovec will change the
+ 	 * kernel msghdr to use the kernel address space)
  	 */
- 
 -	uaddr = (__force void __user *)msg_sys->msg_name;
 +	uaddr = (void __force_user *)msg_sys->msg_name;
  	uaddr_len = COMPAT_NAMELEN(msg);
- 	if (MSG_CMSG_COMPAT & flags) {
+ 	if (MSG_CMSG_COMPAT & flags)
  		err = verify_compat_iovec(msg_sys, iov, &addr, VERIFY_WRITE);
-@@ -2971,7 +3033,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
+@@ -2975,7 +3037,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
  		old_fs = get_fs();
  		set_fs(KERNEL_DS);
  		err = dev_ioctl(net, cmd,
@@ -97008,7 +97011,7 @@ index 9c467b2..f2cbd27 100644
  		set_fs(old_fs);
  
  		return err;
-@@ -3080,7 +3142,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
+@@ -3084,7 +3146,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
  
  	old_fs = get_fs();
  	set_fs(KERNEL_DS);
@@ -97017,7 +97020,7 @@ index 9c467b2..f2cbd27 100644
  	set_fs(old_fs);
  
  	if (cmd == SIOCGIFMAP && !err) {
-@@ -3185,7 +3247,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
+@@ -3189,7 +3251,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
  		ret |= __get_user(rtdev, &(ur4->rt_dev));
  		if (rtdev) {
  			ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
@@ -97026,7 +97029,7 @@ index 9c467b2..f2cbd27 100644
  			devname[15] = 0;
  		} else
  			r4.rt_dev = NULL;
-@@ -3411,8 +3473,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
+@@ -3415,8 +3477,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
  	int __user *uoptlen;
  	int err;
  
@@ -97037,7 +97040,7 @@ index 9c467b2..f2cbd27 100644
  
  	set_fs(KERNEL_DS);
  	if (level == SOL_SOCKET)
-@@ -3432,7 +3494,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
+@@ -3436,7 +3498,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
  	char __user *uoptval;
  	int err;
  
@@ -97069,7 +97072,7 @@ index 29b4ba9..f648ae7 100644
  	/* make a copy for the caller */
  	*handle = ctxh;
 diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
-index 426f8fc..1ef9c32 100644
+index 5b1bf7b..33f5f72 100644
 --- a/net/sunrpc/clnt.c
 +++ b/net/sunrpc/clnt.c
 @@ -1288,7 +1288,9 @@ call_start(struct rpc_task *task)
@@ -97398,7 +97401,7 @@ index 6b42d47..2ac24d5 100644
  
  	sub->evt.event = htohl(event, sub->swap);
 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
-index 0258072..fc6d46d 100644
+index 8664ad0..afe30af 100644
 --- a/net/unix/af_unix.c
 +++ b/net/unix/af_unix.c
 @@ -783,6 +783,12 @@ static struct sock *unix_find_other(struct net *net,
@@ -97447,7 +97450,7 @@ index 0258072..fc6d46d 100644
  	done_path_create(&path, dentry);
  	return err;
  }
-@@ -2334,9 +2353,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
+@@ -2329,9 +2348,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
  		seq_puts(seq, "Num       RefCount Protocol Flags    Type St "
  			 "Inode Path\n");
  	else {
@@ -97462,7 +97465,7 @@ index 0258072..fc6d46d 100644
  
  		seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
  			s,
-@@ -2363,8 +2386,10 @@ static int unix_seq_show(struct seq_file *seq, void *v)
+@@ -2358,8 +2381,10 @@ static int unix_seq_show(struct seq_file *seq, void *v)
  			}
  			for ( ; i < len; i++)
  				seq_putc(seq, u->addr->name->sun_path[i]);
@@ -97489,7 +97492,7 @@ index 8800604..0526440 100644
  	table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
  	if (table == NULL)
 diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
-index 3f77f42..662d89b 100644
+index 9b88693..e35cadb 100644
 --- a/net/vmw_vsock/af_vsock.c
 +++ b/net/vmw_vsock/af_vsock.c
 @@ -335,7 +335,7 @@ void vsock_for_each_connected_socket(void (*fn)(struct sock *sk))
@@ -100445,7 +100448,7 @@ index 7d8803a..559f8d0 100644
                  list_add(&s->list, &cs4297a_devs);
  
 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
-index 31461ba..d700d1a 100644
+index aeefec7..60de854 100644
 --- a/sound/pci/hda/hda_codec.c
 +++ b/sound/pci/hda/hda_codec.c
 @@ -916,14 +916,10 @@ find_codec_preset(struct hda_codec *codec)
-- 
GitLab