Merge pull request #762 from joe-lawrence/fedora-27-rebase

testing fedora 27: rebase integration test patches
This commit is contained in:
Joe Lawrence 2018-03-22 14:43:48 -04:00 committed by GitHub
commit 7e1b495f52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 176 additions and 175 deletions

View File

@ -1 +0,0 @@
4.9.7-201.fc25.x86_64

View File

@ -1,11 +0,0 @@
diff -Nupr src.orig/net/core/dev.c src/net/core/dev.c
--- src.orig/net/core/dev.c 2016-11-30 19:39:45.232737234 +0000
+++ src/net/core/dev.c 2016-11-30 19:40:02.077737234 +0000
@@ -4179,6 +4179,7 @@ ncls:
case RX_HANDLER_PASS:
break;
default:
+ printk("BUG!\n");
BUG();
}
}

View File

@ -1,11 +0,0 @@
diff -Nupr src.orig/fs/proc/generic.c src/fs/proc/generic.c
--- src.orig/fs/proc/generic.c 2016-11-30 19:39:49.317737234 +0000
+++ src/fs/proc/generic.c 2016-11-30 19:41:05.659737234 +0000
@@ -192,6 +192,7 @@ int proc_alloc_inum(unsigned int *inum)
unsigned int i;
int error;
+ printk("kpatch-test: testing change to .parainstructions section\n");
retry:
if (!ida_pre_get(&proc_inum_ida, GFP_KERNEL))
return -ENOMEM;

View File

@ -0,0 +1 @@
4.13.9-300.fc27.x86_64

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/fs/proc/proc_sysctl.c src/fs/proc/proc_sysctl.c
--- src.orig/fs/proc/proc_sysctl.c 2016-11-30 19:39:49.316737234 +0000
+++ src/fs/proc/proc_sysctl.c 2016-11-30 19:39:49.441737234 +0000
@@ -301,6 +301,8 @@ void sysctl_head_put(struct ctl_table_he
--- src.orig/fs/proc/proc_sysctl.c 2017-11-17 15:58:41.115211972 -0500
+++ src/fs/proc/proc_sysctl.c 2017-11-17 15:58:51.725211972 -0500
@@ -332,6 +332,8 @@ static void start_unregistering(struct c
static struct ctl_table_header *sysctl_head_grab(struct ctl_table_header *head)
{

View File

@ -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:39:52.696737234 +0000
--- src.orig/fs/proc/cmdline.c 2017-11-17 15:58:41.126211972 -0500
+++ src/fs/proc/cmdline.c 2017-11-17 15:58:54.891211972 -0500
@@ -5,7 +5,7 @@
static int cmdline_proc_show(struct seq_file *m, void *v)

View File

@ -2,9 +2,9 @@ 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 -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
--- src.orig/mm/slub.c 2017-11-17 15:58:51.157211972 -0500
+++ src/mm/slub.c 2017-11-17 15:58:56.808211972 -0500
@@ -3731,6 +3731,9 @@ void *__kmalloc(size_t size, gfp_t flags
struct kmem_cache *s;
void *ret;

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
--- 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
--- src.orig/fs/proc/meminfo.c 2017-11-17 15:58:41.113211972 -0500
+++ src/fs/proc/meminfo.c 2017-11-17 15:58:58.554211972 -0500
@@ -42,6 +42,8 @@ static void show_val_kb(struct seq_file
seq_write(m, " kB\n", 4);
}

View File

@ -0,0 +1,11 @@
diff -Nupr src.orig/net/core/dev.c src/net/core/dev.c
--- src.orig/net/core/dev.c 2017-11-17 15:58:50.569211972 -0500
+++ src/net/core/dev.c 2017-11-17 15:59:00.286211972 -0500
@@ -4260,6 +4260,7 @@ skip_classify:
case RX_HANDLER_PASS:
break;
default:
+ printk("BUG!\n");
BUG();
}
}

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/fs/readdir.c src/fs/readdir.c
--- src.orig/fs/readdir.c 2016-11-30 19:39:49.237737234 +0000
+++ src/fs/readdir.c 2016-11-30 19:40:05.186737234 +0000
@@ -188,6 +188,8 @@ static int filldir(struct dir_context *c
--- src.orig/fs/readdir.c 2017-11-17 15:58:39.457211972 -0500
+++ src/fs/readdir.c 2017-11-17 15:59:02.078211972 -0500
@@ -189,6 +189,8 @@ static int filldir(struct dir_context *c
goto efault;
}
dirent = buf->current_dir;

View File

@ -2,9 +2,9 @@ ensure timekeeping_forward_now.constprop.8 and
timekeeping_forward_now.constprop.9 are correlated.
diff -Nupr src.orig/kernel/time/timekeeping.c src/kernel/time/timekeeping.c
--- src.orig/kernel/time/timekeeping.c 2016-11-30 19:39:45.151737234 +0000
+++ src/kernel/time/timekeeping.c 2016-11-30 19:40:08.035737234 +0000
@@ -1150,6 +1150,9 @@ void do_gettimeofday(struct timeval *tv)
--- src.orig/kernel/time/timekeeping.c 2017-11-17 15:58:51.500211972 -0500
+++ src/kernel/time/timekeeping.c 2017-11-17 15:59:03.810211972 -0500
@@ -1206,6 +1206,9 @@ void do_gettimeofday(struct timeval *tv)
{
struct timespec64 now;

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/fs/proc/proc_sysctl.c src/fs/proc/proc_sysctl.c
--- src.orig/fs/proc/proc_sysctl.c 2016-11-30 19:39:49.316737234 +0000
+++ src/fs/proc/proc_sysctl.c 2016-11-30 19:40:10.918737234 +0000
@@ -46,6 +46,7 @@ void proc_sys_poll_notify(struct ctl_tab
--- src.orig/fs/proc/proc_sysctl.c 2017-11-17 15:58:41.115211972 -0500
+++ src/fs/proc/proc_sysctl.c 2017-11-17 15:59:05.548211972 -0500
@@ -47,6 +47,7 @@ void proc_sys_poll_notify(struct ctl_tab
if (!poll)
return;

View File

@ -2,9 +2,9 @@ ensure that __cmpxchg_double_slab.isra.45 and
__cmpxchg_double_slab.isra.45.part.46 aren't correlated.
diff -Nupr src.orig/mm/slub.c src/mm/slub.c
--- src.orig/mm/slub.c 2016-11-30 19:39:45.200737234 +0000
+++ src/mm/slub.c 2016-11-30 19:40:13.997737234 +0000
@@ -5758,6 +5758,9 @@ void get_slabinfo(struct kmem_cache *s,
--- src.orig/mm/slub.c 2017-11-17 15:58:51.157211972 -0500
+++ src/mm/slub.c 2017-11-17 15:59:07.361211972 -0500
@@ -5824,6 +5824,9 @@ void get_slabinfo(struct kmem_cache *s,
int node;
struct kmem_cache_node *n;

View File

@ -1,15 +1,15 @@
diff -Nupr src.orig/mm/mmap.c src/mm/mmap.c
--- 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
--- src.orig/mm/mmap.c 2017-11-17 15:58:51.131211972 -0500
+++ src/mm/mmap.c 2017-11-17 15:59:09.094211972 -0500
@@ -1599,6 +1599,7 @@ static inline int accountable_mapping(st
return (vm_flags & (VM_NORESERVE | VM_SHARED | VM_WRITE)) == VM_WRITE;
}
+#include "kpatch-macros.h"
unsigned long mmap_region(struct file *file, unsigned long addr,
unsigned long len, vm_flags_t vm_flags, unsigned long pgoff)
{
@@ -1591,6 +1592,9 @@ unsigned long mmap_region(struct file *f
unsigned long len, vm_flags_t vm_flags, unsigned long pgoff,
struct list_head *uf)
@@ -1609,6 +1610,9 @@ unsigned long mmap_region(struct file *f
struct rb_node **rb_link, *rb_parent;
unsigned long charged = 0;

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/kernel/reboot.c src/kernel/reboot.c
--- src.orig/kernel/reboot.c 2016-11-30 19:39:45.165737234 +0000
+++ src/kernel/reboot.c 2016-11-30 19:40:19.850737234 +0000
--- src.orig/kernel/reboot.c 2017-11-17 15:58:51.558211972 -0500
+++ src/kernel/reboot.c 2017-11-17 15:59:10.774211972 -0500
@@ -366,8 +366,15 @@ SYSCALL_DEFINE4(reboot, int, magic1, int
return ret;
}

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/fs/aio.c src/fs/aio.c
--- 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
--- src.orig/fs/aio.c 2017-11-17 15:58:38.111211972 -0500
+++ src/fs/aio.c 2017-11-17 15:59:12.467211972 -0500
@@ -271,10 +271,17 @@ static int __init aio_setup(void)
}
__initcall(aio_setup);
@ -18,4 +18,4 @@ diff -Nupr src.orig/fs/aio.c src/fs/aio.c
+ kpatch_aio_foo();
if (aio_ring_file) {
truncate_setsize(aio_ring_file->f_inode, 0);
truncate_setsize(file_inode(aio_ring_file), 0);

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/kernel/audit.c src/kernel/audit.c
--- src.orig/kernel/audit.c 2016-11-30 19:39:45.165737234 +0000
+++ src/kernel/audit.c 2016-11-30 19:40:25.802737234 +0000
@@ -211,6 +211,12 @@ void audit_panic(const char *message)
--- src.orig/kernel/audit.c 2017-11-17 15:58:51.516211972 -0500
+++ src/kernel/audit.c 2017-11-17 15:59:14.324211972 -0500
@@ -282,6 +282,12 @@ void audit_panic(const char *message)
}
}
@ -14,7 +14,7 @@ diff -Nupr src.orig/kernel/audit.c src/kernel/audit.c
static inline int audit_rate_check(void)
{
static unsigned long last_check = 0;
@@ -221,6 +227,7 @@ static inline int audit_rate_check(void)
@@ -292,6 +298,7 @@ static inline int audit_rate_check(void)
unsigned long elapsed;
int retval = 0;
@ -22,7 +22,7 @@ diff -Nupr src.orig/kernel/audit.c src/kernel/audit.c
if (!audit_rate_limit) return 1;
spin_lock_irqsave(&lock, flags);
@@ -240,6 +247,11 @@ static inline int audit_rate_check(void)
@@ -311,6 +318,11 @@ static inline int audit_rate_check(void)
return retval;
}
@ -34,7 +34,7 @@ diff -Nupr src.orig/kernel/audit.c src/kernel/audit.c
/**
* audit_log_lost - conditionally log lost audit message event
* @message: the message stating reason for lost audit message
@@ -286,6 +298,8 @@ static int audit_log_config_change(char
@@ -357,6 +369,8 @@ static int audit_log_config_change(char
struct audit_buffer *ab;
int rc = 0;

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/arch/x86/kernel/ldt.c src/arch/x86/kernel/ldt.c
--- src.orig/arch/x86/kernel/ldt.c 2016-11-30 19:39:46.579737234 +0000
+++ src/arch/x86/kernel/ldt.c 2016-11-30 19:40:28.658737234 +0000
@@ -99,6 +99,12 @@ static void free_ldt_struct(struct ldt_s
--- src.orig/arch/x86/kernel/ldt.c 2017-11-17 15:58:09.662211972 -0500
+++ src/arch/x86/kernel/ldt.c 2017-11-17 15:59:16.084211972 -0500
@@ -100,6 +100,12 @@ static void free_ldt_struct(struct ldt_s
kfree(ldt);
}
@ -14,7 +14,7 @@ diff -Nupr src.orig/arch/x86/kernel/ldt.c src/arch/x86/kernel/ldt.c
/*
* we do not have to muck with descriptors here, that is
* done in switch_mm() as needed.
@@ -109,6 +115,8 @@ int init_new_context_ldt(struct task_str
@@ -110,6 +116,8 @@ int init_new_context_ldt(struct task_str
struct mm_struct *old_mm;
int retval = 0;

View File

@ -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:31.570737234 +0000
@@ -1719,6 +1719,20 @@ SYSCALL_DEFINE3(io_cancel, aio_context_t
--- src.orig/fs/aio.c 2017-11-17 15:58:38.111211972 -0500
+++ src/fs/aio.c 2017-11-17 15:59:17.699211972 -0500
@@ -1819,6 +1819,20 @@ SYSCALL_DEFINE3(io_cancel, aio_context_t
return ret;
}

View File

@ -1,34 +1,34 @@
diff -Nupr src.orig/net/ipv4/fib_frontend.c src/net/ipv4/fib_frontend.c
--- 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:
--- src.orig/net/ipv4/fib_frontend.c 2017-11-17 16:16:54.789211972 -0500
+++ src/net/ipv4/fib_frontend.c 2017-11-17 16:19:58.429211972 -0500
@@ -740,6 +740,7 @@ errout:
return err;
}
+#include "kpatch-macros.h"
static int inet_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh)
static int inet_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh,
struct netlink_ext_ack *extack)
{
struct net *net = sock_net(skb->sk);
@@ -739,6 +740,7 @@ static int inet_rtm_newroute(struct sk_b
@@ -759,6 +760,7 @@ static int inet_rtm_newroute(struct sk_b
}
err = fib_table_insert(net, tb, &cfg);
err = fib_table_insert(net, tb, &cfg, extack);
+ 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 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,
--- src.orig/net/ipv4/fib_semantics.c 2017-11-17 16:16:54.789211972 -0500
+++ src/net/ipv4/fib_semantics.c 2017-11-17 16:21:11.653211972 -0500
@@ -1026,6 +1026,7 @@ fib_convert_metrics(struct fib_info *fi,
return 0;
}
+#include "kpatch-macros.h"
struct fib_info *fib_create_info(struct fib_config *cfg)
struct fib_info *fib_create_info(struct fib_config *cfg,
struct netlink_ext_ack *extack)
{
int err;
@@ -1018,6 +1019,7 @@ struct fib_info *fib_create_info(struct
@@ -1059,6 +1060,7 @@ struct fib_info *fib_create_info(struct
#endif
err = -ENOBUFS;
@ -36,7 +36,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
if (fib_info_cnt >= fib_info_hash_size) {
unsigned int new_size = fib_info_hash_size << 1;
struct hlist_head *new_info_hash;
@@ -1038,6 +1040,7 @@ struct fib_info *fib_create_info(struct
@@ -1079,6 +1081,7 @@ struct fib_info *fib_create_info(struct
if (!fib_info_hash_size)
goto failure;
}
@ -44,15 +44,16 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
fi = kzalloc(sizeof(*fi)+nhs*sizeof(struct fib_nh), GFP_KERNEL);
if (!fi)
@@ -1049,6 +1052,7 @@ struct fib_info *fib_create_info(struct
goto failure;
} else
fi->fib_metrics = (u32 *) dst_default_metrics;
@@ -1093,6 +1096,8 @@ struct fib_info *fib_create_info(struct
} else {
fi->fib_metrics = (struct dst_metrics *)&dst_default_metrics;
}
+ KPATCH_PRINTK("[fib_create_info]: 3 create error err is %d\n",err);
+
fib_info_cnt++;
fi->fib_net = net;
fi->fib_protocol = cfg->fc_protocol;
@@ -1066,6 +1070,7 @@ struct fib_info *fib_create_info(struct
@@ -1110,6 +1115,7 @@ struct fib_info *fib_create_info(struct
if (!nexthop_nh->nh_pcpu_rth_output)
goto failure;
} endfor_nexthops(fi)
@ -60,7 +61,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
err = fib_convert_metrics(fi, cfg);
if (err)
@@ -1119,6 +1124,9 @@ struct fib_info *fib_create_info(struct
@@ -1174,6 +1180,9 @@ struct fib_info *fib_create_info(struct
#endif
}
@ -68,25 +69,25 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
+ 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)
goto err_inval;
@@ -1135,6 +1143,7 @@ struct fib_info *fib_create_info(struct
if (cfg->fc_gw || cfg->fc_oif || cfg->fc_mp) {
NL_SET_ERR_MSG(extack,
@@ -1194,6 +1203,7 @@ struct fib_info *fib_create_info(struct
goto err_inval;
}
}
+ KPATCH_PRINTK("[fib_create_info]: 7 create error err is %d\n",err);
if (cfg->fc_scope > RT_SCOPE_HOST)
goto err_inval;
@@ -1163,6 +1172,7 @@ struct fib_info *fib_create_info(struct
if (cfg->fc_scope > RT_SCOPE_HOST) {
NL_SET_ERR_MSG(extack, "Invalid scope");
@@ -1232,6 +1242,7 @@ struct fib_info *fib_create_info(struct
if (linkdown == fi->fib_nhs)
fi->fib_flags |= RTNH_F_LINKDOWN;
}
+ KPATCH_PRINTK("[fib_create_info]: 8 create error err is %d\n",err);
if (fi->fib_prefsrc && !fib_valid_prefsrc(cfg, fi->fib_prefsrc))
goto err_inval;
@@ -1171,6 +1181,7 @@ struct fib_info *fib_create_info(struct
if (fi->fib_prefsrc && !fib_valid_prefsrc(cfg, fi->fib_prefsrc)) {
NL_SET_ERR_MSG(extack, "Invalid prefsrc address");
@@ -1242,6 +1253,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)
@ -94,15 +95,15 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
fib_rebalance(fi);
@@ -1182,6 +1193,7 @@ link_it:
@@ -1253,6 +1265,7 @@ link_it:
ofi->fib_treeref++;
return ofi;
}
+ KPATCH_PRINTK("[fib_create_info]: 10 create error err is %d\n",err);
fi->fib_treeref++;
atomic_inc(&fi->fib_clntref);
@@ -1205,6 +1217,7 @@ link_it:
refcount_set(&fi->fib_clntref, 1);
@@ -1276,6 +1289,7 @@ link_it:
hlist_add_head(&nexthop_nh->nh_hash, head);
} endfor_nexthops(fi)
spin_unlock_bh(&fib_info_lock);
@ -110,7 +111,7 @@ diff -Nupr src.orig/net/ipv4/fib_semantics.c src/net/ipv4/fib_semantics.c
return fi;
err_inval:
@@ -1215,6 +1228,7 @@ failure:
@@ -1286,6 +1300,7 @@ failure:
fi->fib_dead = 1;
free_fib_info(fi);
}
@ -119,22 +120,22 @@ 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 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
--- src.orig/net/ipv4/fib_trie.c 2017-11-17 16:16:54.789211972 -0500
+++ src/net/ipv4/fib_trie.c 2017-11-17 16:22:11.702211972 -0500
@@ -1116,6 +1116,7 @@ static bool fib_valid_key_len(u32 key, u
}
/* Caller must hold RTNL. */
+#include "kpatch-macros.h"
int fib_table_insert(struct net *net, struct fib_table *tb,
struct fib_config *cfg)
struct fib_config *cfg, struct netlink_ext_ack *extack)
{
@@ -1130,11 +1131,14 @@ int fib_table_insert(struct net *net, st
if ((plen < KEYLENGTH) && (key << plen))
return -EINVAL;
@@ -1138,11 +1139,14 @@ int fib_table_insert(struct net *net, st
pr_debug("Insert table=%u %08x/%d\n", tb->tb_id, key, plen);
+ KPATCH_PRINTK("[fib_table_insert]: start\n");
fi = fib_create_info(cfg);
fi = fib_create_info(cfg, extack);
if (IS_ERR(fi)) {
err = PTR_ERR(fi);
+ KPATCH_PRINTK("[fib_table_insert]: create error err is %d\n",err);

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/fs/proc/cmdline.c src/fs/proc/cmdline.c
--- 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
--- src.orig/fs/proc/cmdline.c 2017-11-17 15:58:41.126211972 -0500
+++ src/fs/proc/cmdline.c 2017-11-17 15:59:19.323211972 -0500
@@ -5,7 +5,7 @@
static int cmdline_proc_show(struct seq_file *m, void *v)
@ -11,8 +11,8 @@ 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 2017-02-08 21:06:25.943876606 -0500
+++ src/fs/proc/meminfo.c 2017-02-08 21:40:25.550926017 -0500
--- src.orig/fs/proc/meminfo.c 2017-11-17 15:58:41.113211972 -0500
+++ src/fs/proc/meminfo.c 2017-11-17 15:59:19.323211972 -0500
@@ -132,7 +132,7 @@ static int meminfo_proc_show(struct seq_
seq_printf(m, "VmallocTotal: %8lu kB\n",
(unsigned long)VMALLOC_TOTAL >> 10);
@ -23,8 +23,8 @@ diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
#ifdef CONFIG_MEMORY_FAILURE
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 2017-02-08 21:42:09.228928528 -0500
+++ src/include/linux/kernel.h 2017-02-08 21:42:10.994928571 -0500
--- src.orig/include/linux/kernel.h 2017-11-17 15:58:48.205211972 -0500
+++ src/include/linux/kernel.h 2017-11-17 15:59:19.376211972 -0500
@@ -2,6 +2,7 @@
#define _LINUX_KERNEL_H

View File

@ -1,7 +1,7 @@
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:43.833737234 +0000
@@ -196,6 +196,7 @@ static const struct file_operations memi
--- src.orig/fs/proc/meminfo.c 2017-11-17 15:58:41.113211972 -0500
+++ src/fs/proc/meminfo.c 2017-11-17 15:59:23.081211972 -0500
@@ -175,6 +175,7 @@ static const struct file_operations memi
static int __init proc_meminfo_init(void)
{

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
--- 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
--- src.orig/fs/proc/meminfo.c 2017-11-17 15:58:41.113211972 -0500
+++ src/fs/proc/meminfo.c 2017-11-17 15:59:21.276211972 -0500
@@ -51,6 +51,8 @@ static int meminfo_proc_show(struct seq_
unsigned long pages[NR_LRU_LISTS];
int lru;

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/fs/proc/meminfo.c src/fs/proc/meminfo.c
--- 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
--- src.orig/fs/proc/meminfo.c 2017-11-17 15:59:24.724211972 -0500
+++ src/fs/proc/meminfo.c 2017-11-17 15:59:24.721211972 -0500
@@ -132,7 +132,7 @@ static int meminfo_proc_show(struct seq_
seq_printf(m, "VmallocTotal: %8lu kB\n",
(unsigned long)VMALLOC_TOTAL >> 10);

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/fs/nfsd/export.c src/fs/nfsd/export.c
--- src.orig/fs/nfsd/export.c 2016-11-30 19:39:49.284737234 +0000
+++ src/fs/nfsd/export.c 2016-11-30 19:40:50.089737234 +0000
@@ -1193,6 +1193,8 @@ static void exp_flags(struct seq_file *m
--- src.orig/fs/nfsd/export.c 2017-11-17 15:58:26.667211972 -0500
+++ src/fs/nfsd/export.c 2017-11-17 15:59:26.338211972 -0500
@@ -1194,6 +1194,8 @@ static void exp_flags(struct seq_file *m
}
}
@ -10,7 +10,7 @@ diff -Nupr src.orig/fs/nfsd/export.c src/fs/nfsd/export.c
static int e_show(struct seq_file *m, void *p)
{
struct cache_head *cp = p;
@@ -1202,6 +1204,7 @@ static int e_show(struct seq_file *m, vo
@@ -1203,6 +1205,7 @@ static int e_show(struct seq_file *m, vo
if (p == SEQ_START_TOKEN) {
seq_puts(m, "# Version 1.1\n");
seq_puts(m, "# Path Client(Flags) # IPs\n");
@ -19,9 +19,9 @@ diff -Nupr src.orig/fs/nfsd/export.c src/fs/nfsd/export.c
}
diff -Nupr src.orig/net/netlink/af_netlink.c src/net/netlink/af_netlink.c
--- src.orig/net/netlink/af_netlink.c 2016-11-30 19:39:45.299737234 +0000
+++ src/net/netlink/af_netlink.c 2016-11-30 19:40:50.090737234 +0000
@@ -2619,4 +2619,9 @@ panic:
--- src.orig/net/netlink/af_netlink.c 2017-11-17 15:58:49.333211972 -0500
+++ src/net/netlink/af_netlink.c 2017-11-17 15:59:26.338211972 -0500
@@ -2739,4 +2739,9 @@ panic:
panic("netlink_init: Cannot allocate nl_table\n");
}

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/arch/x86/kvm/vmx.c src/arch/x86/kvm/vmx.c
--- src.orig/arch/x86/kvm/vmx.c 2016-11-30 19:39:46.591737234 +0000
+++ src/arch/x86/kvm/vmx.c 2016-11-30 19:40:53.182737234 +0000
@@ -10845,6 +10845,8 @@ static int vmx_check_intercept(struct kv
--- src.orig/arch/x86/kvm/vmx.c 2017-11-17 15:58:19.369211972 -0500
+++ src/arch/x86/kvm/vmx.c 2017-11-17 15:59:27.980211972 -0500
@@ -11275,6 +11275,8 @@ static int vmx_check_intercept(struct kv
struct x86_instruction_info *info,
enum x86_intercept_stage stage)
{

View File

@ -1,7 +1,7 @@
diff -Nupr src.orig/arch/x86/kvm/vmx.c src/arch/x86/kvm/vmx.c
--- src.orig/arch/x86/kvm/vmx.c 2016-11-30 19:39:46.591737234 +0000
+++ src/arch/x86/kvm/vmx.c 2016-11-30 19:40:56.291737234 +0000
@@ -10829,10 +10829,20 @@ static void vmx_leave_nested(struct kvm_
--- src.orig/arch/x86/kvm/vmx.c 2017-11-17 15:58:19.369211972 -0500
+++ src/arch/x86/kvm/vmx.c 2017-11-17 15:59:29.615211972 -0500
@@ -11259,10 +11259,20 @@ static void vmx_leave_nested(struct kvm_
* It should only be called before L2 actually succeeded to run, and when
* vmcs01 is current (it doesn't leave_guest_mode() or switch vmcss).
*/

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/drivers/tty/n_tty.c src/drivers/tty/n_tty.c
--- src.orig/drivers/tty/n_tty.c 2016-11-30 19:39:48.532737234 +0000
+++ src/drivers/tty/n_tty.c 2016-11-30 19:40:59.432737234 +0000
--- src.orig/drivers/tty/n_tty.c 2017-11-17 15:58:00.462211972 -0500
+++ src/drivers/tty/n_tty.c 2017-11-17 15:59:31.240211972 -0500
@@ -2269,7 +2269,7 @@ static ssize_t n_tty_read(struct tty_str
* lock themselves)
*/

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/fs/proc/cmdline.c src/fs/proc/cmdline.c
--- 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
--- src.orig/fs/proc/cmdline.c 2017-11-17 15:58:41.126211972 -0500
+++ src/fs/proc/cmdline.c 2017-11-17 15:59:32.886211972 -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 2017-02-08 21:06:25.943876606 -0500
+++ src/fs/proc/meminfo.c 2017-02-08 21:33:26.498915865 -0500
--- src.orig/fs/proc/meminfo.c 2017-11-17 15:59:24.724211972 -0500
+++ src/fs/proc/meminfo.c 2017-11-17 15:59:32.887211972 -0500
@@ -19,6 +19,8 @@
#include <asm/pgtable.h>
#include "internal.h"

View File

@ -0,0 +1,11 @@
diff -Nupr src.orig/fs/proc/generic.c src/fs/proc/generic.c
--- src.orig/fs/proc/generic.c 2017-11-17 16:08:17.202211972 -0500
+++ src/fs/proc/generic.c 2017-11-17 16:08:46.585211972 -0500
@@ -191,6 +191,7 @@ int proc_alloc_inum(unsigned int *inum)
{
int i;
+ printk("kpatch-test: testing change to .parainstructions section\n");
i = ida_simple_get(&proc_inum_ida, 0, UINT_MAX - PROC_DYNAMIC_FIRST + 1,
GFP_KERNEL);
if (i < 0)

View File

@ -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 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
--- src.orig/arch/x86/kvm/x86.c 2017-11-17 15:58:19.002211972 -0500
+++ src/arch/x86/kvm/x86.c 2017-11-17 15:59:34.499211972 -0500
@@ -252,6 +252,8 @@ static void shared_msr_update(unsigned s
void kvm_define_shared_msr(unsigned slot, u32 msr)
{

View File

@ -1,8 +1,8 @@
diff -Nupr src.orig/fs/proc/array.c src/fs/proc/array.c
--- 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
--- src.orig/fs/proc/array.c 2017-11-17 15:58:41.136211972 -0500
+++ src/fs/proc/array.c 2017-11-17 15:59:36.184211972 -0500
@@ -354,12 +354,19 @@ static inline void task_seccomp(struct s
seq_putc(m, '\n');
}
+#include "kpatch.h"
@ -22,9 +22,9 @@ 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 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)
--- src.orig/kernel/exit.c 2017-11-17 15:58:51.659211972 -0500
+++ src/kernel/exit.c 2017-11-17 15:59:36.184211972 -0500
@@ -760,6 +760,7 @@ static void check_stack_usage(void)
static inline void check_stack_usage(void) {}
#endif
@ -32,7 +32,7 @@ diff -Nupr src.orig/kernel/exit.c src/kernel/exit.c
void __noreturn do_exit(long code)
{
struct task_struct *tsk = current;
@@ -828,6 +829,8 @@ void __noreturn do_exit(long code)
@@ -865,6 +866,8 @@ void __noreturn do_exit(long code)
exit_task_work(tsk);
exit_thread(tsk);
@ -42,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 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)
--- src.orig/kernel/fork.c 2017-11-17 15:58:51.541211972 -0500
+++ src/kernel/fork.c 2017-11-17 15:59:36.184211972 -0500
@@ -2003,6 +2003,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.
*/
@ -52,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,
@@ -1943,6 +1944,13 @@ long _do_fork(unsigned long clone_flags,
@@ -2042,6 +2043,13 @@ long _do_fork(unsigned long clone_flags,
if (!IS_ERR(p)) {
struct completion vfork;
struct pid *pid;

View File

@ -1,6 +1,6 @@
diff -Nupr src.orig/drivers/tty/tty_buffer.c src/drivers/tty/tty_buffer.c
--- src.orig/drivers/tty/tty_buffer.c 2016-11-30 19:39:48.532737234 +0000
+++ src/drivers/tty/tty_buffer.c 2016-11-30 19:41:15.067737234 +0000
--- src.orig/drivers/tty/tty_buffer.c 2017-11-17 15:58:00.518211972 -0500
+++ src/drivers/tty/tty_buffer.c 2017-11-17 15:59:37.806211972 -0500
@@ -255,6 +255,8 @@ static int __tty_buffer_request_room(str
struct tty_buffer *b, *n;
int left, change;

View File

@ -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:18.201737234 +0000
@@ -2039,12 +2039,20 @@ static void record_steal_time(struct kvm
--- src.orig/arch/x86/kvm/x86.c 2017-11-17 15:58:19.002211972 -0500
+++ src/arch/x86/kvm/x86.c 2017-11-17 15:59:39.427211972 -0500
@@ -2126,12 +2126,20 @@ static void record_steal_time(struct kvm
&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
}

View File

@ -1,9 +1,9 @@
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:21.329737234 +0000
@@ -1169,10 +1169,18 @@ static void posix_cpu_timers_init_group(
INIT_LIST_HEAD(&sig->cpu_timers[2]);
}
--- src.orig/kernel/fork.c 2017-11-17 15:58:51.541211972 -0500
+++ src/kernel/fork.c 2017-11-17 15:59:41.041211972 -0500
@@ -1374,10 +1374,18 @@ static void posix_cpu_timers_init_group(
static inline void posix_cpu_timers_init_group(struct signal_struct *sig) { }
#endif
+void kpatch_foo(void)
+{

View File

@ -1,11 +1,11 @@
ensure __jump_table is parsed and we can tell that it effectively didn't change
diff -Nupr src.orig/kernel/time/timer.c src/kernel/time/timer.c
--- src.orig/kernel/time/timer.c 2016-11-30 19:39:45.150737234 +0000
+++ src/kernel/time/timer.c 2016-11-30 20:02:08.254737234 +0000
@@ -1637,6 +1637,9 @@ static void run_timer_softirq(struct sof
{
struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]);
--- src.orig/kernel/time/timer.c 2017-11-17 15:58:51.501211972 -0500
+++ src/kernel/time/timer.c 2017-11-17 15:59:42.654211972 -0500
@@ -1643,6 +1643,9 @@ static __latent_entropy void run_timer_s
*/
base->must_forward_clk = false;
+ if (!base)
+ printk("kpatch-test: testing __tracepoints section changes\n");

View File

@ -1,6 +1,6 @@
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:24.482737234 +0000
--- src.orig/arch/x86/kvm/x86.c 2017-11-17 15:58:19.002211972 -0500
+++ src/arch/x86/kvm/x86.c 2017-11-17 15:59:44.327211972 -0500
@@ -1,3 +1,4 @@
+
/*