Merge tag 'v6.5-rc1-modules-next' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-block.git] / kernel / kallsyms.c
index ddb91d8edaaead3f35c0c74935292f6f1b70b00e..7982cc9d497cd6ed715fcb18f1db7ccbbd35d7b5 100644 (file)
@@ -484,34 +484,6 @@ found:
        return 0;
 }
 
-int lookup_symbol_attrs(unsigned long addr, unsigned long *size,
-                       unsigned long *offset, char *modname, char *name)
-{
-       int res;
-
-       name[0] = '\0';
-       name[KSYM_NAME_LEN - 1] = '\0';
-
-       if (is_ksym_addr(addr)) {
-               unsigned long pos;
-
-               pos = get_symbol_pos(addr, size, offset);
-               /* Grab name */
-               kallsyms_expand_symbol(get_symbol_offset(pos),
-                                      name, KSYM_NAME_LEN);
-               modname[0] = '\0';
-               goto found;
-       }
-       /* See if it's in a module. */
-       res = lookup_module_symbol_attrs(addr, size, offset, modname, name);
-       if (res)
-               return res;
-
-found:
-       cleanup_symbol_name(name);
-       return 0;
-}
-
 /* Look up a kernel symbol and return it in a text buffer. */
 static int __sprint_symbol(char *buffer, unsigned long address,
                           int symbol_offset, int add_offset, int add_buildid)
@@ -646,7 +618,6 @@ int sprint_backtrace_build_id(char *buffer, unsigned long address)
 /* To avoid using get_symbol_offset for every symbol, we carry prefix along. */
 struct kallsym_iter {
        loff_t pos;
-       loff_t pos_arch_end;
        loff_t pos_mod_end;
        loff_t pos_ftrace_mod_end;
        loff_t pos_bpf_end;
@@ -659,29 +630,9 @@ struct kallsym_iter {
        int show_value;
 };
 
-int __weak arch_get_kallsym(unsigned int symnum, unsigned long *value,
-                           char *type, char *name)
-{
-       return -EINVAL;
-}
-
-static int get_ksymbol_arch(struct kallsym_iter *iter)
-{
-       int ret = arch_get_kallsym(iter->pos - kallsyms_num_syms,
-                                  &iter->value, &iter->type,
-                                  iter->name);
-
-       if (ret < 0) {
-               iter->pos_arch_end = iter->pos;
-               return 0;
-       }
-
-       return 1;
-}
-
 static int get_ksymbol_mod(struct kallsym_iter *iter)
 {
-       int ret = module_get_kallsym(iter->pos - iter->pos_arch_end,
+       int ret = module_get_kallsym(iter->pos - kallsyms_num_syms,
                                     &iter->value, &iter->type,
                                     iter->name, iter->module_name,
                                     &iter->exported);
@@ -764,7 +715,6 @@ static void reset_iter(struct kallsym_iter *iter, loff_t new_pos)
        iter->nameoff = get_symbol_offset(new_pos);
        iter->pos = new_pos;
        if (new_pos == 0) {
-               iter->pos_arch_end = 0;
                iter->pos_mod_end = 0;
                iter->pos_ftrace_mod_end = 0;
                iter->pos_bpf_end = 0;
@@ -780,10 +730,6 @@ static int update_iter_mod(struct kallsym_iter *iter, loff_t pos)
 {
        iter->pos = pos;
 
-       if ((!iter->pos_arch_end || iter->pos_arch_end > pos) &&
-           get_ksymbol_arch(iter))
-               return 1;
-
        if ((!iter->pos_mod_end || iter->pos_mod_end > pos) &&
            get_ksymbol_mod(iter))
                return 1;
@@ -961,41 +907,6 @@ late_initcall(bpf_ksym_iter_register);
 
 #endif /* CONFIG_BPF_SYSCALL */
 
-static inline int kallsyms_for_perf(void)
-{
-#ifdef CONFIG_PERF_EVENTS
-       extern int sysctl_perf_event_paranoid;
-       if (sysctl_perf_event_paranoid <= 1)
-               return 1;
-#endif
-       return 0;
-}
-
-/*
- * We show kallsyms information even to normal users if we've enabled
- * kernel profiling and are explicitly not paranoid (so kptr_restrict
- * is clear, and sysctl_perf_event_paranoid isn't set).
- *
- * Otherwise, require CAP_SYSLOG (assuming kptr_restrict isn't set to
- * block even that).
- */
-bool kallsyms_show_value(const struct cred *cred)
-{
-       switch (kptr_restrict) {
-       case 0:
-               if (kallsyms_for_perf())
-                       return true;
-               fallthrough;
-       case 1:
-               if (security_capable(cred, &init_user_ns, CAP_SYSLOG,
-                                    CAP_OPT_NOAUDIT) == 0)
-                       return true;
-               fallthrough;
-       default:
-               return false;
-       }
-}
-
 static int kallsyms_open(struct inode *inode, struct file *file)
 {
        /*