opt.c (94817983fb2ccd1869ed0c5a763317a45283a272) | opt.c (868a6fc0ca2407622d2833adefe1c4d284766c4c) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Kernel Probes Jump Optimization (Optprobes) 4 * 5 * Copyright (C) IBM Corporation, 2002, 2004 6 * Copyright (C) Hitachi Ltd., 2012 7 */ 8#include <linux/kprobes.h> --- 32 unchanged lines hidden (view full) --- 41 long offs; 42 int i; 43 44 for (i = 0; i < JMP32_INSN_SIZE; i++) { 45 kp = get_kprobe((void *)addr - i); 46 /* This function only handles jump-optimized kprobe */ 47 if (kp && kprobe_optimized(kp)) { 48 op = container_of(kp, struct optimized_kprobe, kp); | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Kernel Probes Jump Optimization (Optprobes) 4 * 5 * Copyright (C) IBM Corporation, 2002, 2004 6 * Copyright (C) Hitachi Ltd., 2012 7 */ 8#include <linux/kprobes.h> --- 32 unchanged lines hidden (view full) --- 41 long offs; 42 int i; 43 44 for (i = 0; i < JMP32_INSN_SIZE; i++) { 45 kp = get_kprobe((void *)addr - i); 46 /* This function only handles jump-optimized kprobe */ 47 if (kp && kprobe_optimized(kp)) { 48 op = container_of(kp, struct optimized_kprobe, kp); |
49 /* If op->list is not empty, op is under optimizing */ 50 if (list_empty(&op->list)) | 49 /* If op is optimized or under unoptimizing */ 50 if (list_empty(&op->list) || optprobe_queued_unopt(op)) |
51 goto found; 52 } 53 } 54 55 return addr; 56found: 57 /* 58 * If the kprobe can be optimized, original bytes which can be --- 505 unchanged lines hidden --- | 51 goto found; 52 } 53 } 54 55 return addr; 56found: 57 /* 58 * If the kprobe can be optimized, original bytes which can be --- 505 unchanged lines hidden --- |