/kernel/module/ |
D | main.c | 181 static unsigned int find_sec(const struct load_info *info, const char *name) in find_sec() argument 185 for (i = 1; i < info->hdr->e_shnum; i++) { in find_sec() 186 Elf_Shdr *shdr = &info->sechdrs[i]; in find_sec() 189 && strcmp(info->secstrings + shdr->sh_name, name) == 0) in find_sec() 196 static void *section_addr(const struct load_info *info, const char *name) in section_addr() argument 199 return (void *)info->sechdrs[find_sec(info, name)].sh_addr; in section_addr() 203 static void *section_objs(const struct load_info *info, in section_objs() argument 208 unsigned int sec = find_sec(info, name); in section_objs() 211 *num = info->sechdrs[sec].sh_size / object_size; in section_objs() 212 return (void *)info->sechdrs[sec].sh_addr; in section_objs() [all …]
|
D | decompress.c | 17 static int module_extend_max_pages(struct load_info *info, unsigned int extent) in module_extend_max_pages() argument 21 new_pages = kvmalloc_array(info->max_pages + extent, in module_extend_max_pages() 22 sizeof(info->pages), GFP_KERNEL); in module_extend_max_pages() 26 memcpy(new_pages, info->pages, info->max_pages * sizeof(info->pages)); in module_extend_max_pages() 27 kvfree(info->pages); in module_extend_max_pages() 28 info->pages = new_pages; in module_extend_max_pages() 29 info->max_pages += extent; in module_extend_max_pages() 34 static struct page *module_get_next_page(struct load_info *info) in module_get_next_page() argument 39 if (info->max_pages == info->used_pages) { in module_get_next_page() 40 error = module_extend_max_pages(info, info->used_pages); in module_get_next_page() [all …]
|
D | kallsyms.c | 37 static char elf_type(const Elf_Sym *sym, const struct load_info *info) in elf_type() argument 39 const Elf_Shdr *sechdrs = info->sechdrs; in elf_type() 49 if (sym->st_shndx == SHN_ABS || sym->st_shndx == info->index.pcpu) in elf_type() 70 if (strstarts(info->secstrings + sechdrs[sym->st_shndx].sh_name, in elf_type() 110 void layout_symtab(struct module *mod, struct load_info *info) in layout_symtab() argument 112 Elf_Shdr *symsect = info->sechdrs + info->index.sym; in layout_symtab() 113 Elf_Shdr *strsect = info->sechdrs + info->index.str; in layout_symtab() 120 info->index.sym) | INIT_OFFSET_MASK; in layout_symtab() 121 pr_debug("\t%s\n", info->secstrings + symsect->sh_name); in layout_symtab() 123 src = (void *)info->hdr + symsect->sh_offset; in layout_symtab() [all …]
|
D | internal.h | 77 unsigned int sym, str, mod, vers, info, pcpu; member 99 int mod_verify_sig(const void *mod, struct load_info *info); 130 int copy_module_elf(struct module *mod, struct load_info *info); 133 static inline int copy_module_elf(struct module *mod, struct load_info *info) in copy_module_elf() argument 173 int module_decompress(struct load_info *info, const void *buf, size_t size); 174 void module_decompress_cleanup(struct load_info *info); 176 static inline int module_decompress(struct load_info *info, in module_decompress() argument 182 static inline void module_decompress_cleanup(struct load_info *info) in module_decompress_cleanup() argument 230 int module_sig_check(struct load_info *info, int flags); 232 static inline int module_sig_check(struct load_info *info, int flags) in module_sig_check() argument [all …]
|
D | signing.c | 50 int mod_verify_sig(const void *mod, struct load_info *info) in mod_verify_sig() argument 53 size_t sig_len, modlen = info->len; in mod_verify_sig() 69 info->len = modlen; in mod_verify_sig() 77 int module_sig_check(struct load_info *info, int flags) in module_sig_check() argument 82 const void *mod = info->hdr; in module_sig_check() 90 info->len > markerlen && in module_sig_check() 91 memcmp(mod + info->len - markerlen, MODULE_SIG_STRING, markerlen) == 0) { in module_sig_check() 93 info->len -= markerlen; in module_sig_check() 94 err = mod_verify_sig(mod, info); in module_sig_check() 96 info->sig_ok = true; in module_sig_check()
|
D | livepatch.c | 18 int copy_module_elf(struct module *mod, struct load_info *info) in copy_module_elf() argument 30 memcpy(&mod->klp_info->hdr, info->hdr, size); in copy_module_elf() 33 size = sizeof(*info->sechdrs) * info->hdr->e_shnum; in copy_module_elf() 34 mod->klp_info->sechdrs = kmemdup(info->sechdrs, size, GFP_KERNEL); in copy_module_elf() 41 size = info->sechdrs[info->hdr->e_shstrndx].sh_size; in copy_module_elf() 42 mod->klp_info->secstrings = kmemdup(info->secstrings, size, GFP_KERNEL); in copy_module_elf() 49 symndx = info->index.sym; in copy_module_elf()
|
D | sysfs.c | 72 static void add_sect_attrs(struct module *mod, const struct load_info *info) in add_sect_attrs() argument 80 for (i = 0; i < info->hdr->e_shnum; i++) in add_sect_attrs() 81 if (!sect_empty(&info->sechdrs[i])) in add_sect_attrs() 97 for (i = 0; i < info->hdr->e_shnum; i++) { in add_sect_attrs() 98 Elf_Shdr *sec = &info->sechdrs[i]; in add_sect_attrs() 105 kstrdup(info->secstrings + sec->sh_name, GFP_KERNEL); in add_sect_attrs() 172 static void add_notes_attrs(struct module *mod, const struct load_info *info) in add_notes_attrs() argument 184 for (i = 0; i < info->hdr->e_shnum; i++) in add_notes_attrs() 185 if (!sect_empty(&info->sechdrs[i]) && in add_notes_attrs() 186 info->sechdrs[i].sh_type == SHT_NOTE) in add_notes_attrs() [all …]
|
D | debug_kmemleak.c | 13 const struct load_info *info) in kmemleak_load_module() argument 20 for (i = 1; i < info->hdr->e_shnum; i++) { in kmemleak_load_module() 22 if (!(info->sechdrs[i].sh_flags & SHF_ALLOC) || in kmemleak_load_module() 23 !(info->sechdrs[i].sh_flags & SHF_WRITE) || in kmemleak_load_module() 24 (info->sechdrs[i].sh_flags & SHF_EXECINSTR)) in kmemleak_load_module() 27 kmemleak_scan_area((void *)info->sechdrs[i].sh_addr, in kmemleak_load_module() 28 info->sechdrs[i].sh_size, GFP_KERNEL); in kmemleak_load_module()
|
D | version.c | 13 int check_version(const struct load_info *info, in check_version() argument 18 Elf_Shdr *sechdrs = info->sechdrs; in check_version() 19 unsigned int versindex = info->index.vers; in check_version() 50 pr_warn_once("%s: no symbol version for %s\n", info->name, symname); in check_version() 54 pr_warn("%s: disagrees about version of symbol %s\n", info->name, symname); in check_version() 58 int check_modstruct_version(const struct load_info *info, in check_modstruct_version() argument 76 return check_version(info, "module_layout", mod, fsa.crc); in check_modstruct_version()
|
/kernel/gcov/ |
D | gcc_4_7.c | 112 const char *gcov_info_filename(struct gcov_info *info) in gcov_info_filename() argument 114 return info->filename; in gcov_info_filename() 121 unsigned int gcov_info_version(struct gcov_info *info) in gcov_info_version() argument 123 return info->version; in gcov_info_version() 133 struct gcov_info *gcov_info_next(struct gcov_info *info) in gcov_info_next() argument 135 if (!info) in gcov_info_next() 138 return info->next; in gcov_info_next() 145 void gcov_info_link(struct gcov_info *info) in gcov_info_link() argument 147 info->next = gcov_info_head; in gcov_info_link() 148 gcov_info_head = info; in gcov_info_link() [all …]
|
D | clang.c | 84 struct gcov_info *info = kzalloc(sizeof(*info), GFP_KERNEL); in llvm_gcov_init() local 86 if (!info) in llvm_gcov_init() 89 INIT_LIST_HEAD(&info->head); in llvm_gcov_init() 90 INIT_LIST_HEAD(&info->functions); in llvm_gcov_init() 94 list_add_tail(&info->head, &clang_gcov_list); in llvm_gcov_init() 95 current_info = info; in llvm_gcov_init() 99 gcov_event(GCOV_ADD, info); in llvm_gcov_init() 115 struct gcov_fn_info *info = kzalloc(sizeof(*info), GFP_KERNEL); in llvm_gcda_emit_function() local 117 if (!info) in llvm_gcda_emit_function() 120 INIT_LIST_HEAD(&info->head); in llvm_gcda_emit_function() [all …]
|
D | fs.c | 99 struct gcov_info *info; member 111 static struct gcov_iterator *gcov_iter_new(struct gcov_info *info) in gcov_iter_new() argument 117 size = convert_to_gcda(NULL, info); in gcov_iter_new() 123 iter->info = info; in gcov_iter_new() 125 convert_to_gcda(iter->buffer, info); in gcov_iter_new() 146 return iter->info; in gcov_iter_get_info() 269 struct gcov_info *info; in get_accumulated_info() local 273 info = gcov_info_dup(node->unloaded_info); in get_accumulated_info() 275 info = gcov_info_dup(node->loaded_info[i++]); in get_accumulated_info() 276 if (!info) in get_accumulated_info() [all …]
|
D | gcov.h | 45 const char *gcov_info_filename(struct gcov_info *info); 46 unsigned int gcov_info_version(struct gcov_info *info); 47 struct gcov_info *gcov_info_next(struct gcov_info *info); 48 void gcov_info_link(struct gcov_info *info); 49 void gcov_info_unlink(struct gcov_info *prev, struct gcov_info *info); 50 bool gcov_info_within_module(struct gcov_info *info, struct module *mod); 51 size_t convert_to_gcda(char *buffer, struct gcov_info *info); 59 void gcov_event(enum gcov_action action, struct gcov_info *info); 67 void gcov_info_reset(struct gcov_info *info); 70 struct gcov_info *gcov_info_dup(struct gcov_info *info); [all …]
|
D | base.c | 38 struct gcov_info *info = NULL; in gcov_enable_events() local 44 while ((info = gcov_info_next(info))) { in gcov_enable_events() 45 gcov_event(GCOV_ADD, info); in gcov_enable_events() 107 struct gcov_info *info = NULL; in gcov_module_notifier() local 115 while ((info = gcov_info_next(info))) { in gcov_module_notifier() 116 if (gcov_info_within_module(info, mod)) { in gcov_module_notifier() 117 gcov_info_unlink(prev, info); in gcov_module_notifier() 119 gcov_event(GCOV_REMOVE, info); in gcov_module_notifier() 121 prev = info; in gcov_module_notifier()
|
/kernel/ |
D | signal.c | 502 int sig = q->info.si_signo; in __flush_itimer_signals() 504 if (likely(q->info.si_code != SI_TIMER)) { in __flush_itimer_signals() 576 static void collect_signal(int sig, struct sigpending *list, kernel_siginfo_t *info, in collect_signal() argument 586 if (q->info.si_signo == sig) { in collect_signal() 598 copy_siginfo(info, &first->info); in collect_signal() 602 (info->si_code == SI_TIMER) && in collect_signal() 603 (info->si_sys_private); in collect_signal() 612 clear_siginfo(info); in collect_signal() 613 info->si_signo = sig; in collect_signal() 614 info->si_errno = 0; in collect_signal() [all …]
|
D | usermode_driver.c | 60 int umd_load_blob(struct umd_info *info, const void *data, size_t len) in umd_load_blob() argument 64 if (WARN_ON_ONCE(info->wd.dentry || info->wd.mnt)) in umd_load_blob() 67 mnt = blob_to_mnt(data, len, info->driver_name); in umd_load_blob() 71 info->wd.mnt = mnt; in umd_load_blob() 72 info->wd.dentry = mnt->mnt_root; in umd_load_blob() 82 int umd_unload_blob(struct umd_info *info) in umd_unload_blob() argument 84 if (WARN_ON_ONCE(!info->wd.mnt || in umd_unload_blob() 85 !info->wd.dentry || in umd_unload_blob() 86 info->wd.mnt->mnt_root != info->wd.dentry)) in umd_unload_blob() 89 kern_unmount(info->wd.mnt); in umd_unload_blob() [all …]
|
D | taskstats.c | 66 static int prepare_reply(struct genl_info *info, u8 cmd, struct sk_buff **skbp, in prepare_reply() argument 79 if (!info) { in prepare_reply() 84 reply = genlmsg_put_reply(skb, info, &family, 0, cmd); in prepare_reply() 97 static int send_reply(struct sk_buff *skb, struct genl_info *info) in send_reply() argument 104 return genlmsg_reply(skb, info); in send_reply() 407 static int cgroupstats_user_cmd(struct sk_buff *skb, struct genl_info *info) in cgroupstats_user_cmd() argument 417 na = info->attrs[CGROUPSTATS_CMD_ATTR_FD]; in cgroupstats_user_cmd() 421 fd = nla_get_u32(info->attrs[CGROUPSTATS_CMD_ATTR_FD]); in cgroupstats_user_cmd() 428 rc = prepare_reply(info, CGROUPSTATS_CMD_NEW, &rep_skb, in cgroupstats_user_cmd() 450 rc = send_reply(rep_skb, info); in cgroupstats_user_cmd() [all …]
|
D | up.c | 12 int smp_call_function_single(int cpu, void (*func) (void *info), void *info, in smp_call_function_single() argument 21 func(info); in smp_call_function_single() 33 csd->func(csd->info); in smp_call_function_single_async() 44 void *info, bool wait, const struct cpumask *mask) in on_each_cpu_cond_mask() argument 49 if ((!cond_func || cond_func(0, info)) && cpumask_test_cpu(0, mask)) { in on_each_cpu_cond_mask() 51 func(info); in on_each_cpu_cond_mask()
|
/kernel/bpf/ |
D | task_iter.c | 162 struct bpf_iter_seq_task_info *info = seq->private; in task_seq_start() local 165 task = task_seq_get_next(&info->common, &info->tid, false); in task_seq_start() 176 struct bpf_iter_seq_task_info *info = seq->private; in task_seq_next() local 180 ++info->tid; in task_seq_next() 182 task = task_seq_get_next(&info->common, &info->tid, false); in task_seq_next() 279 task_file_seq_get_next(struct bpf_iter_seq_task_file_info *info) in task_file_seq_get_next() argument 281 u32 saved_tid = info->tid; in task_file_seq_get_next() 283 unsigned int curr_fd = info->fd; in task_file_seq_get_next() 290 if (info->task) { in task_file_seq_get_next() 291 curr_task = info->task; in task_file_seq_get_next() [all …]
|
D | syscall.c | 2938 struct bpf_link_info *info) in bpf_tracing_link_fill_link_info() argument 2943 info->tracing.attach_type = tr_link->attach_type; in bpf_tracing_link_fill_link_info() 2945 &info->tracing.target_obj_id, in bpf_tracing_link_fill_link_info() 2946 &info->tracing.target_btf_id); in bpf_tracing_link_fill_link_info() 3179 struct bpf_link_info *info) in bpf_raw_tp_link_fill_link_info() argument 3183 char __user *ubuf = u64_to_user_ptr(info->raw_tracepoint.tp_name); in bpf_raw_tp_link_fill_link_info() 3185 u32 ulen = info->raw_tracepoint.tp_name_len; in bpf_raw_tp_link_fill_link_info() 3191 info->raw_tracepoint.tp_name_len = tp_len + 1; in bpf_raw_tp_link_fill_link_info() 3882 static int set_info_rec_size(struct bpf_prog_info *info) in set_info_rec_size() argument 3894 if ((info->nr_func_info || info->func_info_rec_size) && in set_info_rec_size() [all …]
|
D | offload.c | 262 struct bpf_prog_info *info; member 276 args->info->ifindex = aux->offload->netdev->ifindex; in bpf_prog_offload_info_fill_ns() 281 args->info->ifindex = 0; in bpf_prog_offload_info_fill_ns() 291 int bpf_prog_offload_info_fill(struct bpf_prog_info *info, in bpf_prog_offload_info_fill() argument 296 .info = info, in bpf_prog_offload_info_fill() 307 if (!info->ifindex) in bpf_prog_offload_info_fill() 319 ulen = info->jited_prog_len; in bpf_prog_offload_info_fill() 320 info->jited_prog_len = aux->offload->jited_len; in bpf_prog_offload_info_fill() 321 if (info->jited_prog_len && ulen) { in bpf_prog_offload_info_fill() 322 uinsns = u64_to_user_ptr(info->jited_prog_insns); in bpf_prog_offload_info_fill() [all …]
|
/kernel/irq/ |
D | msi.c | 471 struct msi_domain_info *info = domain->host_data; in msi_check_level() local 477 WARN_ON(!((info->flags & MSI_FLAG_LEVEL_CAPABLE) && in msi_check_level() 478 (info->chip->flags & IRQCHIP_SUPPORTS_LEVEL_MSI)) && in msi_check_level() 533 struct msi_domain_info *info = domain->host_data; in msi_domain_alloc() local 534 struct msi_domain_ops *ops = info->ops; in msi_domain_alloc() 535 irq_hw_number_t hwirq = ops->get_hwirq(info, arg); in msi_domain_alloc() 548 ret = ops->msi_init(domain, info, virq + i, hwirq + i, arg); in msi_domain_alloc() 552 ops->msi_free(domain, info, virq + i); in msi_domain_alloc() 565 struct msi_domain_info *info = domain->host_data; in msi_domain_free() local 568 if (info->ops->msi_free) { in msi_domain_free() [all …]
|
/kernel/printk/ |
D | printk.c | 556 struct printk_info *info) in info_print_ext_header() argument 558 u64 ts_usec = info->ts_nsec; in info_print_ext_header() 561 u32 id = info->caller_id; in info_print_ext_header() 572 (info->facility << 3) | info->level, info->seq, in info_print_ext_header() 573 ts_usec, info->flags & LOG_CONT ? 'c' : '-', caller); in info_print_ext_header() 639 struct printk_info info; member 757 if (r->info->seq != atomic64_read(&user->seq)) { in devkmsg_read() 759 atomic64_set(&user->seq, r->info->seq); in devkmsg_read() 764 len = info_print_ext_header(user->buf, sizeof(user->buf), r->info); in devkmsg_read() 766 &r->text_buf[0], r->info->text_len, in devkmsg_read() [all …]
|
D | printk_ringbuffer.c | 436 struct printk_info *info = to_info(desc_ring, id); in desc_read() local 482 *seq_out = info->seq; /* also part of desc_read:C */ in desc_read() 484 *caller_id_out = info->caller_id; /* also part of desc_read:C */ in desc_read() 1354 struct printk_info *info; in prb_reserve_in_last() local 1370 info = to_info(desc_ring, id); in prb_reserve_in_last() 1384 if (caller_id != info->caller_id) in prb_reserve_in_last() 1388 if (WARN_ON_ONCE(info->text_len != 0)) { in prb_reserve_in_last() 1390 info->text_len); in prb_reserve_in_last() 1391 info->text_len = 0; in prb_reserve_in_last() 1411 if (WARN_ON_ONCE(info->text_len > data_size)) { in prb_reserve_in_last() [all …]
|
/kernel/entry/ |
D | syscall_user_dispatch.c | 21 struct kernel_siginfo info; in trigger_sigsys() local 23 clear_siginfo(&info); in trigger_sigsys() 24 info.si_signo = SIGSYS; in trigger_sigsys() 25 info.si_code = SYS_USER_DISPATCH; in trigger_sigsys() 26 info.si_call_addr = (void __user *)KSTK_EIP(current); in trigger_sigsys() 27 info.si_errno = 0; in trigger_sigsys() 28 info.si_arch = syscall_get_arch(current); in trigger_sigsys() 29 info.si_syscall = syscall_get_nr(current, regs); in trigger_sigsys() 31 force_sig_info(&info); in trigger_sigsys()
|