The build is successful, testing is required
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
#include <linux/version.h>
|
||||
#include "mcctrl.h"
|
||||
#include <ihk/ihk_host_user.h>
|
||||
#include "kallsyms_compat.h"
|
||||
|
||||
#define OS_MAX_MINOR 64
|
||||
|
||||
@@ -237,75 +238,84 @@ struct inode_operations *mcctrl_hugetlbfs_inode_operations;
|
||||
|
||||
static int symbols_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* Initialize kallsyms compatibility layer */
|
||||
ret = init_kallsyms_lookup();
|
||||
if (ret) {
|
||||
pr_err("Failed to initialize kallsyms compatibility layer: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0)
|
||||
mcctrl_sys_mount = (void *) kallsyms_lookup_name("ksys_mount");
|
||||
mcctrl_sys_mount = (void *) mcctrl_lookup_name("ksys_mount");
|
||||
#else
|
||||
mcctrl_sys_mount = (void *) kallsyms_lookup_name("sys_mount");
|
||||
mcctrl_sys_mount = (void *) mcctrl_lookup_name("sys_mount");
|
||||
#if defined(CONFIG_X86_64_SMP)
|
||||
if (!mcctrl_sys_mount)
|
||||
mcctrl_sys_mount =
|
||||
(void *) kallsyms_lookup_name("__x64_sys_mount");
|
||||
(void *) mcctrl_lookup_name("__x64_sys_mount");
|
||||
#endif
|
||||
#endif
|
||||
if (WARN_ON(!mcctrl_sys_mount))
|
||||
return -EFAULT;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0)
|
||||
mcctrl_sys_umount = (void *) kallsyms_lookup_name("ksys_umount");
|
||||
mcctrl_sys_umount = (void *) mcctrl_lookup_name("ksys_umount");
|
||||
#else
|
||||
mcctrl_sys_umount = (void *) kallsyms_lookup_name("sys_umount");
|
||||
mcctrl_sys_umount = (void *) mcctrl_lookup_name("sys_umount");
|
||||
#if defined(CONFIG_X86_64_SMP)
|
||||
if (!mcctrl_sys_umount)
|
||||
mcctrl_sys_umount =
|
||||
(void *) kallsyms_lookup_name("__x64_sys_umount");
|
||||
(void *) mcctrl_lookup_name("__x64_sys_umount");
|
||||
#endif
|
||||
#endif
|
||||
if (WARN_ON(!mcctrl_sys_umount))
|
||||
return -EFAULT;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0)
|
||||
mcctrl_sys_unshare = (void *) kallsyms_lookup_name("ksys_unshare");
|
||||
mcctrl_sys_unshare = (void *) mcctrl_lookup_name("ksys_unshare");
|
||||
#else
|
||||
mcctrl_sys_unshare = (void *) kallsyms_lookup_name("sys_unshare");
|
||||
mcctrl_sys_unshare = (void *) mcctrl_lookup_name("sys_unshare");
|
||||
#if defined(CONFIG_X86_64_SMP)
|
||||
if (!mcctrl_sys_unshare)
|
||||
mcctrl_sys_unshare =
|
||||
(void *) kallsyms_lookup_name("__x64_sys_unshare");
|
||||
(void *) mcctrl_lookup_name("__x64_sys_unshare");
|
||||
#endif
|
||||
#endif
|
||||
if (WARN_ON(!mcctrl_sys_unshare))
|
||||
return -EFAULT;
|
||||
|
||||
mcctrl_sched_setaffinity =
|
||||
(void *) kallsyms_lookup_name("sched_setaffinity");
|
||||
(void *) mcctrl_lookup_name("sched_setaffinity");
|
||||
if (WARN_ON(!mcctrl_sched_setaffinity))
|
||||
return -EFAULT;
|
||||
|
||||
mcctrl_sched_setscheduler_nocheck =
|
||||
(void *) kallsyms_lookup_name("sched_setscheduler_nocheck");
|
||||
(void *) mcctrl_lookup_name("sched_setscheduler_nocheck");
|
||||
if (WARN_ON(!mcctrl_sched_setscheduler_nocheck))
|
||||
return -EFAULT;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0)
|
||||
mcctrl_sys_readlinkat = (void *)kallsyms_lookup_name("do_readlinkat");
|
||||
mcctrl_sys_readlinkat = (void *)mcctrl_lookup_name("do_readlinkat");
|
||||
#else
|
||||
mcctrl_sys_readlinkat = (void *)kallsyms_lookup_name("sys_readlinkat");
|
||||
mcctrl_sys_readlinkat = (void *)mcctrl_lookup_name("sys_readlinkat");
|
||||
#if defined(CONFIG_X86_64_SMP)
|
||||
if (!mcctrl_sys_readlinkat)
|
||||
mcctrl_sys_readlinkat =
|
||||
(void *) kallsyms_lookup_name("__x64_sys_readlinkat");
|
||||
(void *) mcctrl_lookup_name("__x64_sys_readlinkat");
|
||||
#endif
|
||||
#endif
|
||||
if (WARN_ON(!mcctrl_sys_readlinkat))
|
||||
return -EFAULT;
|
||||
|
||||
mcctrl_zap_page_range =
|
||||
(void *) kallsyms_lookup_name("zap_page_range");
|
||||
(void *) mcctrl_lookup_name("zap_page_range");
|
||||
if (WARN_ON(!mcctrl_zap_page_range))
|
||||
return -EFAULT;
|
||||
|
||||
mcctrl_hugetlbfs_inode_operations =
|
||||
(void *) kallsyms_lookup_name("hugetlbfs_inode_operations");
|
||||
(void *) mcctrl_lookup_name("hugetlbfs_inode_operations");
|
||||
if (WARN_ON(!mcctrl_hugetlbfs_inode_operations))
|
||||
return -EFAULT;
|
||||
|
||||
@@ -359,6 +369,7 @@ static void __exit mcctrl_exit(void)
|
||||
|
||||
binfmt_mcexec_exit();
|
||||
uti_attr_finalize();
|
||||
cleanup_kallsyms_lookup();
|
||||
#ifdef ENABLE_TOFU
|
||||
mcctrl_tofu_restore_release_handlers();
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user