Optimized sub-optimal code. @5andr0
static void * get_symbol_addr_kprobe(const char * symbol_name) {
struct kprobe kp = {
.symbol_name = symbol_name,
};
int ret = register_kprobe( & kp);
if (ret < 0) {
pr_err("register_kprobe failed for %s\n", symbol_name);
return NULL;
}
void * addr = (void * ) kp.addr;
unregister_kprobe( & kp);
return addr;
}