X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=kernel%2Ffail_function.c;h=1d5632d8bbccfd941a6b0b1cf0ac380c4aeb0a5c;hb=e15f20ea33b8e5074145abe464b4b48acea505d9;hp=21b0122cb39cb1c8f45976566e3b4f675d50450c;hpb=0bd2afc74808389591894dd7c7c83952006a1283;p=mirror_ubuntu-eoan-kernel.git diff --git a/kernel/fail_function.c b/kernel/fail_function.c index 21b0122cb39c..1d5632d8bbcc 100644 --- a/kernel/fail_function.c +++ b/kernel/fail_function.c @@ -14,6 +14,15 @@ static int fei_kprobe_handler(struct kprobe *kp, struct pt_regs *regs); +static void fei_post_handler(struct kprobe *kp, struct pt_regs *regs, + unsigned long flags) +{ + /* + * A dummy post handler is required to prohibit optimizing, because + * jump optimization does not support execution path overriding. + */ +} + struct fei_attr { struct list_head list; struct kprobe kp; @@ -56,6 +65,7 @@ static struct fei_attr *fei_attr_new(const char *sym, unsigned long addr) return NULL; } attr->kp.pre_handler = fei_kprobe_handler; + attr->kp.post_handler = fei_post_handler; attr->retval = adjust_error_retval(addr, 0); INIT_LIST_HEAD(&attr->list); }