mirror of
https://github.com/dynup/kpatch
synced 2025-03-23 19:36:31 +00:00
Merge pull request #762 from joe-lawrence/fedora-27-rebase
testing fedora 27: rebase integration test patches
This commit is contained in:
commit
7e1b495f52
@ -1 +0,0 @@
|
||||
4.9.7-201.fc25.x86_64
|
@ -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();
|
||||
}
|
||||
}
|
@ -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;
|
1
test/integration/fedora-27/README
Normal file
1
test/integration/fedora-27/README
Normal file
@ -0,0 +1 @@
|
||||
4.13.9-300.fc27.x86_64
|
@ -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)
|
||||
{
|
@ -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)
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
11
test/integration/fedora-27/data-read-mostly.patch
Normal file
11
test/integration/fedora-27/data-read-mostly.patch
Normal 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();
|
||||
}
|
||||
}
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
@ -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);
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
@ -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;
|
@ -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);
|
@ -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");
|
||||
}
|
||||
|
@ -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)
|
||||
{
|
@ -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).
|
||||
*/
|
@ -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)
|
||||
*/
|
@ -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"
|
11
test/integration/fedora-27/parainstructions-section.patch
Normal file
11
test/integration/fedora-27/parainstructions-section.patch
Normal 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)
|
@ -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)
|
||||
{
|
@ -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;
|
@ -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;
|
@ -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));
|
||||
}
|
||||
|
@ -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)
|
||||
+{
|
@ -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");
|
@ -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 @@
|
||||
+
|
||||
/*
|
Loading…
Reference in New Issue
Block a user