diff --git a/test/integration/fedora-25/README b/test/integration/fedora-25/README
index d200f42..4f0e966 100644
--- a/test/integration/fedora-25/README
+++ b/test/integration/fedora-25/README
@@ -1 +1 @@
-4.8.6-300.fc25.x86_64
+4.9.7-201.fc25.x86_64
diff --git a/test/integration/fedora-25/convert-global-local.patch b/test/integration/fedora-25/convert-global-local.patch
index 9e65528..5987bd6 100644
--- a/test/integration/fedora-25/convert-global-local.patch
+++ b/test/integration/fedora-25/convert-global-local.patch
@@ -1,11 +1,10 @@
 This is a test for #658: a kernel panic seen when patching an exported
 function (e.g., kmalloc) which is used by patch_init().
 ---
-diff --git a/mm/slub.c b/mm/slub.c
-index 067598a..b517aec 100644
---- a/mm/slub.c
-+++ b/mm/slub.c
-@@ -3719,6 +3719,9 @@ void *__kmalloc(size_t size, gfp_t flags)
+diff -Nupr src.orig/mm/slub.c src/mm/slub.c
+--- src.orig/mm/slub.c	2016-12-11 14:17:54.000000000 -0500
++++ src/mm/slub.c	2017-02-08 21:02:17.946870598 -0500
+@@ -3719,6 +3719,9 @@ void *__kmalloc(size_t size, gfp_t flags
  	struct kmem_cache *s;
  	void *ret;
  
diff --git a/test/integration/fedora-25/data-new.patch b/test/integration/fedora-25/data-new.patch
index 1061b93..57b1834 100644
--- a/test/integration/fedora-25/data-new.patch
+++ b/test/integration/fedora-25/data-new.patch
@@ -1,8 +1,8 @@
 diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
---- src.orig/fs/proc/meminfo.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/meminfo.c	2016-11-30 19:39:58.934737234 +0000
-@@ -23,6 +23,8 @@ void __attribute__((weak)) arch_report_m
- {
+--- src.orig/fs/proc/meminfo.c	2017-02-08 21:06:25.943876606 -0500
++++ src/fs/proc/meminfo.c	2017-02-08 21:08:07.154879058 -0500
+@@ -42,6 +42,8 @@ static void show_val_kb(struct seq_file
+ 	seq_write(m, " kB\n", 4);
  }
  
 +static int foo = 5;
@@ -10,19 +10,11 @@ diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
  static int meminfo_proc_show(struct seq_file *m, void *v)
  {
  	struct sysinfo i;
-@@ -112,6 +114,7 @@ static int meminfo_proc_show(struct seq_
- 		"CmaTotal:       %8lu kB\n"
- 		"CmaFree:        %8lu kB\n"
+@@ -153,6 +155,7 @@ static int meminfo_proc_show(struct seq_
+ 	show_val_kb(m, "CmaFree:        ",
+ 		    global_page_state(NR_FREE_CMA_PAGES));
  #endif
-+		"kpatch: %d"
- 		,
- 		K(i.totalram),
- 		K(i.freeram),
-@@ -172,6 +175,7 @@ static int meminfo_proc_show(struct seq_
- 		, K(totalcma_pages)
- 		, K(global_page_state(NR_FREE_CMA_PAGES))
- #endif
-+		,foo
- 		);
++	seq_printf(m, "kpatch: %d\n", foo);
  
  	hugetlb_report_meminfo(m);
+ 
diff --git a/test/integration/fedora-25/gcc-static-local-var-2.patch b/test/integration/fedora-25/gcc-static-local-var-2.patch
index c5a7eeb..e06a536 100644
--- a/test/integration/fedora-25/gcc-static-local-var-2.patch
+++ b/test/integration/fedora-25/gcc-static-local-var-2.patch
@@ -1,7 +1,7 @@
 diff -Nupr src.orig/mm/mmap.c src/mm/mmap.c
---- src.orig/mm/mmap.c	2016-11-30 19:39:45.200737234 +0000
-+++ src/mm/mmap.c	2016-11-30 19:40:17.029737234 +0000
-@@ -1429,6 +1429,7 @@ static inline int accountable_mapping(st
+--- src.orig/mm/mmap.c	2017-02-08 20:48:33.821850633 -0500
++++ src/mm/mmap.c	2017-02-08 20:48:56.682851187 -0500
+@@ -1582,6 +1582,7 @@ static inline int accountable_mapping(st
  	return (vm_flags & (VM_NORESERVE | VM_SHARED | VM_WRITE)) == VM_WRITE;
  }
  
@@ -9,7 +9,7 @@ diff -Nupr src.orig/mm/mmap.c src/mm/mmap.c
  unsigned long mmap_region(struct file *file, unsigned long addr,
  		unsigned long len, vm_flags_t vm_flags, unsigned long pgoff)
  {
-@@ -1438,6 +1439,9 @@ unsigned long mmap_region(struct file *f
+@@ -1591,6 +1592,9 @@ unsigned long mmap_region(struct file *f
  	struct rb_node **rb_link, *rb_parent;
  	unsigned long charged = 0;
  
diff --git a/test/integration/fedora-25/gcc-static-local-var-4.patch b/test/integration/fedora-25/gcc-static-local-var-4.patch
index d4acf2d..ae24570 100644
--- a/test/integration/fedora-25/gcc-static-local-var-4.patch
+++ b/test/integration/fedora-25/gcc-static-local-var-4.patch
@@ -1,7 +1,7 @@
 diff -Nupr src.orig/fs/aio.c src/fs/aio.c
---- src.orig/fs/aio.c	2016-11-30 19:39:49.237737234 +0000
-+++ src/fs/aio.c	2016-11-30 19:40:22.706737234 +0000
-@@ -271,9 +271,16 @@ static int __init aio_setup(void)
+--- src.orig/fs/aio.c.orig	2017-02-08 21:10:29.963882517 -0500
++++ src/fs/aio.c	2017-02-08 21:10:51.501883039 -0500
+@@ -271,10 +271,17 @@ static int __init aio_setup(void)
  }
  __initcall(aio_setup);
  
@@ -14,7 +14,8 @@ diff -Nupr src.orig/fs/aio.c src/fs/aio.c
  static void put_aio_ring_file(struct kioctx *ctx)
  {
  	struct file *aio_ring_file = ctx->aio_ring_file;
+ 	struct address_space *i_mapping;
 +	kpatch_aio_foo();
+ 
  	if (aio_ring_file) {
  		truncate_setsize(aio_ring_file->f_inode, 0);
- 
diff --git a/test/integration/fedora-25/macro-printk.patch b/test/integration/fedora-25/macro-printk.patch
index cff08b0..70981df 100644
--- a/test/integration/fedora-25/macro-printk.patch
+++ b/test/integration/fedora-25/macro-printk.patch
@@ -1,7 +1,7 @@
 diff -Nupr src.orig/net/ipv4/fib_frontend.c src/net/ipv4/fib_frontend.c
---- src.orig/net/ipv4/fib_frontend.c	2016-11-30 19:39:45.253737234 +0000
-+++ src/net/ipv4/fib_frontend.c	2016-11-30 19:40:34.782737234 +0000
-@@ -730,6 +730,7 @@ errout:
+--- src.orig/net/ipv4/fib_frontend.c	2017-02-08 21:47:41.895936587 -0500
++++ src/net/ipv4/fib_frontend.c	2017-02-08 21:48:15.908937411 -0500
+@@ -721,6 +721,7 @@ errout:
  	return err;
  }
  
@@ -9,17 +9,17 @@ diff -Nupr src.orig/net/ipv4/fib_frontend.c src/net/ipv4/fib_frontend.c
  static int inet_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh)
  {
  	struct net *net = sock_net(skb->sk);
-@@ -748,6 +749,7 @@ static int inet_rtm_newroute(struct sk_b
+@@ -739,6 +740,7 @@ static int inet_rtm_newroute(struct sk_b
  	}
  
- 	err = fib_table_insert(tb, &cfg);
+ 	err = fib_table_insert(net, tb, &cfg);
 +	KPATCH_PRINTK("[inet_rtm_newroute]: err is %d\n", err);
  errout:
  	return err;
  }
 diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
---- src.orig/net/ipv4/fib_semantics.c	2016-11-30 19:39:45.252737234 +0000
-+++ src/net/ipv4/fib_semantics.c	2016-11-30 19:40:34.783737234 +0000
+--- src.orig/net/ipv4/fib_semantics.c	2017-02-08 21:49:22.766939031 -0500
++++ src/net/ipv4/fib_semantics.c	2017-02-08 21:53:08.628944503 -0500
 @@ -991,6 +991,7 @@ fib_convert_metrics(struct fib_info *fi,
  	return 0;
  }
@@ -60,16 +60,17 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
  
  	err = fib_convert_metrics(fi, cfg);
  	if (err)
-@@ -1118,6 +1123,8 @@ struct fib_info *fib_create_info(struct
- 		nh->nh_weight = 1;
+@@ -1119,6 +1124,9 @@ struct fib_info *fib_create_info(struct
  #endif
  	}
+ 
 +	KPATCH_PRINTK("[fib_create_info]: 5 create error err is %d\n",err);
 +	KPATCH_PRINTK("[fib_create_info]: 6 create error err is %d\n",err);
- 
++
  	if (fib_props[cfg->fc_type].error) {
  		if (cfg->fc_gw || cfg->fc_oif || cfg->fc_mp)
-@@ -1135,6 +1142,7 @@ struct fib_info *fib_create_info(struct
+ 			goto err_inval;
+@@ -1135,6 +1143,7 @@ struct fib_info *fib_create_info(struct
  			goto err_inval;
  		}
  	}
@@ -77,7 +78,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
  
  	if (cfg->fc_scope > RT_SCOPE_HOST)
  		goto err_inval;
-@@ -1163,6 +1171,7 @@ struct fib_info *fib_create_info(struct
+@@ -1163,6 +1172,7 @@ struct fib_info *fib_create_info(struct
  		if (linkdown == fi->fib_nhs)
  			fi->fib_flags |= RTNH_F_LINKDOWN;
  	}
@@ -85,7 +86,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
  
  	if (fi->fib_prefsrc && !fib_valid_prefsrc(cfg, fi->fib_prefsrc))
  		goto err_inval;
-@@ -1171,6 +1180,7 @@ struct fib_info *fib_create_info(struct
+@@ -1171,6 +1181,7 @@ struct fib_info *fib_create_info(struct
  		fib_info_update_nh_saddr(net, nexthop_nh);
  		fib_add_weight(fi, nexthop_nh);
  	} endfor_nexthops(fi)
@@ -93,7 +94,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
  
  	fib_rebalance(fi);
  
-@@ -1182,6 +1192,7 @@ link_it:
+@@ -1182,6 +1193,7 @@ link_it:
  		ofi->fib_treeref++;
  		return ofi;
  	}
@@ -101,7 +102,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
  
  	fi->fib_treeref++;
  	atomic_inc(&fi->fib_clntref);
-@@ -1205,6 +1216,7 @@ link_it:
+@@ -1205,6 +1217,7 @@ link_it:
  		hlist_add_head(&nexthop_nh->nh_hash, head);
  	} endfor_nexthops(fi)
  	spin_unlock_bh(&fib_info_lock);
@@ -109,7 +110,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
  	return fi;
  
  err_inval:
-@@ -1215,6 +1227,7 @@ failure:
+@@ -1215,6 +1228,7 @@ failure:
  		fi->fib_dead = 1;
  		free_fib_info(fi);
  	}
@@ -118,17 +119,17 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
  	return ERR_PTR(err);
  }
 diff -Nupr src.orig/net/ipv4/fib_trie.c src/net/ipv4/fib_trie.c
---- src.orig/net/ipv4/fib_trie.c	2016-11-30 19:39:45.252737234 +0000
-+++ src/net/ipv4/fib_trie.c	2016-11-30 19:40:34.783737234 +0000
-@@ -1076,6 +1076,7 @@ static int fib_insert_alias(struct trie
+--- src.orig/net/ipv4/fib_trie.c	2017-02-08 21:53:18.182944734 -0500
++++ src/net/ipv4/fib_trie.c	2017-02-09 16:43:09.835587031 -0500
+@@ -1106,6 +1106,7 @@ static int fib_insert_alias(struct trie
  }
  
  /* Caller must hold RTNL. */
 +#include "kpatch-macros.h"
- int fib_table_insert(struct fib_table *tb, struct fib_config *cfg)
+ int fib_table_insert(struct net *net, struct fib_table *tb,
+ 		     struct fib_config *cfg)
  {
- 	struct trie *t = (struct trie *)tb->tb_data;
-@@ -1099,11 +1100,14 @@ int fib_table_insert(struct fib_table *t
+@@ -1130,11 +1131,14 @@ int fib_table_insert(struct net *net, st
  	if ((plen < KEYLENGTH) && (key << plen))
  		return -EINVAL;
  
diff --git a/test/integration/fedora-25/meminfo-cmdline-rebuild-SLOW.patch b/test/integration/fedora-25/meminfo-cmdline-rebuild-SLOW.patch
index 3a8a761..c6ef55e 100644
--- a/test/integration/fedora-25/meminfo-cmdline-rebuild-SLOW.patch
+++ b/test/integration/fedora-25/meminfo-cmdline-rebuild-SLOW.patch
@@ -1,6 +1,6 @@
 diff -Nupr src.orig/fs/proc/cmdline.c src/fs/proc/cmdline.c
---- src.orig/fs/proc/cmdline.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/cmdline.c	2016-11-30 19:40:37.629737234 +0000
+--- src.orig/fs/proc/cmdline.c	2017-02-08 21:31:22.297912856 -0500
++++ src/fs/proc/cmdline.c	2017-02-08 21:39:53.633925243 -0500
 @@ -5,7 +5,7 @@
  
  static int cmdline_proc_show(struct seq_file *m, void *v)
@@ -11,20 +11,20 @@ diff -Nupr src.orig/fs/proc/cmdline.c src/fs/proc/cmdline.c
  }
  
 diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
---- src.orig/fs/proc/meminfo.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/meminfo.c	2016-11-30 19:40:37.629737234 +0000
-@@ -99,7 +99,7 @@ static int meminfo_proc_show(struct seq_
- 		"Committed_AS:   %8lu kB\n"
- 		"VmallocTotal:   %8lu kB\n"
- 		"VmallocUsed:    %8lu kB\n"
--		"VmallocChunk:   %8lu kB\n"
-+		"VMALLOCCHUNK:   %8lu kB\n"
+--- src.orig/fs/proc/meminfo.c	2017-02-08 21:06:25.943876606 -0500
++++ src/fs/proc/meminfo.c	2017-02-08 21:40:25.550926017 -0500
+@@ -132,7 +132,7 @@ static int meminfo_proc_show(struct seq_
+ 	seq_printf(m, "VmallocTotal:   %8lu kB\n",
+ 		   (unsigned long)VMALLOC_TOTAL >> 10);
+ 	show_val_kb(m, "VmallocUsed:    ", 0ul);
+-	show_val_kb(m, "VmallocChunk:   ", 0ul);
++	show_val_kb(m, "VMALLOCCHUNK:   ", 0ul);
+ 
  #ifdef CONFIG_MEMORY_FAILURE
- 		"HardwareCorrupted: %5lu kB\n"
- #endif
+ 	seq_printf(m, "HardwareCorrupted: %5lu kB\n",
 diff -Nupr src.orig/include/linux/kernel.h src/include/linux/kernel.h
---- src.orig/include/linux/kernel.h	2016-11-30 19:39:45.003737234 +0000
-+++ src/include/linux/kernel.h	2016-11-30 19:40:37.630737234 +0000
+--- src.orig/include/linux/kernel.h	2017-02-08 21:42:09.228928528 -0500
++++ src/include/linux/kernel.h	2017-02-08 21:42:10.994928571 -0500
 @@ -2,6 +2,7 @@
  #define _LINUX_KERNEL_H
  
diff --git a/test/integration/fedora-25/meminfo-init2-FAIL.patch b/test/integration/fedora-25/meminfo-init2-FAIL.patch
index 2bdedd6..9640c3b 100644
--- a/test/integration/fedora-25/meminfo-init2-FAIL.patch
+++ b/test/integration/fedora-25/meminfo-init2-FAIL.patch
@@ -1,15 +1,16 @@
 diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
---- src.orig/fs/proc/meminfo.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/meminfo.c	2016-11-30 19:40:40.686737234 +0000
-@@ -32,6 +32,7 @@ static int meminfo_proc_show(struct seq_
+--- src.orig/fs/proc/meminfo.c	2017-02-08 21:06:25.943876606 -0500
++++ src/fs/proc/meminfo.c	2017-02-08 21:37:44.992922127 -0500
+@@ -51,6 +51,8 @@ static int meminfo_proc_show(struct seq_
  	unsigned long pages[NR_LRU_LISTS];
  	int lru;
  
 +	printk("a\n");
- /*
-  * display in kilobytes.
-  */
-@@ -196,6 +197,7 @@ static const struct file_operations memi
++
+ 	si_meminfo(&i);
+ 	si_swapinfo(&i);
+ 	committed = percpu_counter_read_positive(&vm_committed_as);
+@@ -175,6 +177,7 @@ static const struct file_operations memi
  
  static int __init proc_meminfo_init(void)
  {
diff --git a/test/integration/fedora-25/meminfo-string.patch b/test/integration/fedora-25/meminfo-string.patch
index 9c453b8..82e11a0 100644
--- a/test/integration/fedora-25/meminfo-string.patch
+++ b/test/integration/fedora-25/meminfo-string.patch
@@ -1,12 +1,12 @@
 diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
---- src.orig/fs/proc/meminfo.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/meminfo.c	2016-11-30 19:40:46.959737234 +0000
-@@ -99,7 +99,7 @@ static int meminfo_proc_show(struct seq_
- 		"Committed_AS:   %8lu kB\n"
- 		"VmallocTotal:   %8lu kB\n"
- 		"VmallocUsed:    %8lu kB\n"
--		"VmallocChunk:   %8lu kB\n"
-+		"VMALLOCCHUNK:   %8lu kB\n"
+--- src.orig/fs/proc/meminfo.c	2017-02-08 21:06:25.943876606 -0500
++++ fs/proc/meminfo.c	2017-02-08 21:35:26.574918774 -0500
+@@ -132,7 +132,7 @@ static int meminfo_proc_show(struct seq_
+ 	seq_printf(m, "VmallocTotal:   %8lu kB\n",
+ 		   (unsigned long)VMALLOC_TOTAL >> 10);
+ 	show_val_kb(m, "VmallocUsed:    ", 0ul);
+-	show_val_kb(m, "VmallocChunk:   ", 0ul);
++	show_val_kb(m, "VMALLOCCHUNK:   ", 0ul);
+ 
  #ifdef CONFIG_MEMORY_FAILURE
- 		"HardwareCorrupted: %5lu kB\n"
- #endif
+ 	seq_printf(m, "HardwareCorrupted: %5lu kB\n",
diff --git a/test/integration/fedora-25/new-globals.patch b/test/integration/fedora-25/new-globals.patch
index 6e1a378..f832029 100644
--- a/test/integration/fedora-25/new-globals.patch
+++ b/test/integration/fedora-25/new-globals.patch
@@ -1,6 +1,6 @@
 diff -Nupr src.orig/fs/proc/cmdline.c src/fs/proc/cmdline.c
---- src.orig/fs/proc/cmdline.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/cmdline.c	2016-11-30 19:41:02.546737234 +0000
+--- src.orig/fs/proc/cmdline.c	2017-02-08 21:31:22.297912856 -0500
++++ src/fs/proc/cmdline.c	2017-02-08 21:32:08.510913975 -0500
 @@ -27,3 +27,10 @@ static int __init proc_cmdline_init(void
  	return 0;
  }
@@ -13,8 +13,8 @@ diff -Nupr src.orig/fs/proc/cmdline.c src/fs/proc/cmdline.c
 +		printk("hello there!\n");
 +}
 diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
---- src.orig/fs/proc/meminfo.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/meminfo.c	2016-11-30 19:41:02.547737234 +0000
+--- src.orig/fs/proc/meminfo.c	2017-02-08 21:06:25.943876606 -0500
++++ src/fs/proc/meminfo.c	2017-02-08 21:33:26.498915865 -0500
 @@ -19,6 +19,8 @@
  #include <asm/pgtable.h>
  #include "internal.h"
@@ -24,11 +24,11 @@ diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
  void __attribute__((weak)) arch_report_meminfo(struct seq_file *m)
  {
  }
-@@ -53,6 +55,7 @@ static int meminfo_proc_show(struct seq_
- 	/*
- 	 * Tagged format, for easy grepping and expansion.
- 	 */
+@@ -65,6 +67,7 @@ static int meminfo_proc_show(struct seq_
+ 
+ 	available = si_mem_available();
+ 
 +	kpatch_print_message();
- 	seq_printf(m,
- 		"MemTotal:       %8lu kB\n"
- 		"MemFree:        %8lu kB\n"
+ 	show_val_kb(m, "MemTotal:       ", i.totalram);
+ 	show_val_kb(m, "MemFree:        ", i.freeram);
+ 	show_val_kb(m, "MemAvailable:   ", available);
diff --git a/test/integration/fedora-25/replace-section-references.patch b/test/integration/fedora-25/replace-section-references.patch
index 960ed28..d7b9f7f 100644
--- a/test/integration/fedora-25/replace-section-references.patch
+++ b/test/integration/fedora-25/replace-section-references.patch
@@ -1,7 +1,7 @@
 diff -Nupr src.orig/arch/x86/kvm/x86.c src/arch/x86/kvm/x86.c
---- src.orig/arch/x86/kvm/x86.c	2016-11-30 19:39:46.590737234 +0000
-+++ src/arch/x86/kvm/x86.c	2016-11-30 19:41:08.801737234 +0000
-@@ -241,6 +241,8 @@ static void shared_msr_update(unsigned s
+--- src.orig/arch/x86/kvm/x86.c	2017-02-08 20:48:33.312850621 -0500
++++ src/arch/x86/kvm/x86.c	2017-02-08 20:49:15.030851631 -0500
+@@ -250,6 +250,8 @@ static void shared_msr_update(unsigned s
  
  void kvm_define_shared_msr(unsigned slot, u32 msr)
  {
diff --git a/test/integration/fedora-25/shadow-newpid.patch b/test/integration/fedora-25/shadow-newpid.patch
index fd70820..dfb7823 100644
--- a/test/integration/fedora-25/shadow-newpid.patch
+++ b/test/integration/fedora-25/shadow-newpid.patch
@@ -1,7 +1,7 @@
 diff -Nupr src.orig/fs/proc/array.c src/fs/proc/array.c
---- src.orig/fs/proc/array.c	2016-11-30 19:39:49.317737234 +0000
-+++ src/fs/proc/array.c	2016-11-30 19:41:11.931737234 +0000
-@@ -352,13 +352,20 @@ static inline void task_seccomp(struct s
+--- src.orig/fs/proc/array.c	2017-02-08 21:17:58.244893377 -0500
++++ src/fs/proc/array.c	2017-02-08 21:26:21.670905573 -0500
+@@ -348,12 +348,19 @@ static inline void task_seccomp(struct s
  #endif
  }
  
@@ -11,10 +11,9 @@ diff -Nupr src.orig/fs/proc/array.c src/fs/proc/array.c
  {
 +	int *newpid;
 +
- 	seq_printf(m,	"voluntary_ctxt_switches:\t%lu\n"
- 			"nonvoluntary_ctxt_switches:\t%lu\n",
- 			p->nvcsw,
- 			p->nivcsw);
+ 	seq_put_decimal_ull(m, "voluntary_ctxt_switches:\t", p->nvcsw);
+ 	seq_put_decimal_ull(m, "\nnonvoluntary_ctxt_switches:\t", p->nivcsw);
+ 	seq_putc(m, '\n');
 +
 +	newpid = kpatch_shadow_get(p, "newpid");
 +	if (newpid)
@@ -23,17 +22,17 @@ diff -Nupr src.orig/fs/proc/array.c src/fs/proc/array.c
  
  static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
 diff -Nupr src.orig/kernel/exit.c src/kernel/exit.c
---- src.orig/kernel/exit.c	2016-11-30 19:39:45.166737234 +0000
-+++ src/kernel/exit.c	2016-11-30 19:41:11.932737234 +0000
+--- src.orig/kernel/exit.c	2017-02-08 21:26:31.119905802 -0500
++++ src/kernel/exit.c	2017-02-08 21:27:11.347906776 -0500
 @@ -725,6 +725,7 @@ static void check_stack_usage(void)
  static inline void check_stack_usage(void) {}
  #endif
  
 +#include "kpatch.h"
- void do_exit(long code)
+ void __noreturn do_exit(long code)
  {
  	struct task_struct *tsk = current;
-@@ -828,6 +829,8 @@ void do_exit(long code)
+@@ -828,6 +829,8 @@ void __noreturn do_exit(long code)
  	exit_task_work(tsk);
  	exit_thread(tsk);
  
@@ -43,9 +42,9 @@ diff -Nupr src.orig/kernel/exit.c src/kernel/exit.c
  	 * Flush inherited counters to the parent - before the parent
  	 * gets woken up by child-exit notifications.
 diff -Nupr src.orig/kernel/fork.c src/kernel/fork.c
---- src.orig/kernel/fork.c	2016-11-30 19:39:45.165737234 +0000
-+++ src/kernel/fork.c	2016-11-30 19:41:11.931737234 +0000
-@@ -1749,6 +1749,7 @@ struct task_struct *fork_idle(int cpu)
+--- src.orig/kernel/fork.c	2017-02-08 21:27:34.629907340 -0500
++++ src/kernel/fork.c	2017-02-08 21:28:31.182908710 -0500
+@@ -1904,6 +1904,7 @@ struct task_struct *fork_idle(int cpu)
   * It copies the process, and if successful kick-starts
   * it and waits for it to finish using the VM if required.
   */
@@ -53,7 +52,7 @@ diff -Nupr src.orig/kernel/fork.c src/kernel/fork.c
  long _do_fork(unsigned long clone_flags,
  	      unsigned long stack_start,
  	      unsigned long stack_size,
-@@ -1787,6 +1788,13 @@ long _do_fork(unsigned long clone_flags,
+@@ -1943,6 +1944,13 @@ long _do_fork(unsigned long clone_flags,
  	if (!IS_ERR(p)) {
  		struct completion vfork;
  		struct pid *pid;