Lines Matching refs:me
57 static void check_rela(Elf_Rela *rela, struct module *me)
61 info = me->arch.syminfo + ELF_R_SYM (rela->r_info);
76 info->got_offset = me->arch.got_size;
77 me->arch.got_size += sizeof(void*);
88 info->plt_offset = me->arch.plt_size;
89 me->arch.plt_size += PLT_ENTRY_SIZE;
107 char *secstrings, struct module *me)
125 printk(KERN_ERR "module %s: no symbol table\n", me->name);
130 me->arch.nsyms = symtab->sh_size / sizeof(Elf_Sym);
131 me->arch.syminfo = vmalloc(array_size(sizeof(struct mod_arch_syminfo),
132 me->arch.nsyms));
133 if (!me->arch.syminfo)
137 for (i = 0; i < me->arch.nsyms; i++) {
143 me->arch.syminfo[i].got_offset = -1UL;
144 me->arch.syminfo[i].plt_offset = -1UL;
145 me->arch.syminfo[i].got_initialized = 0;
146 me->arch.syminfo[i].plt_initialized = 0;
150 me->arch.got_size = me->arch.plt_size = 0;
157 check_rela(rela + j, me);
162 mod_mem = &me->mem[MOD_TEXT];
164 me->arch.got_offset = mod_mem->size;
165 mod_mem->size += me->arch.got_size;
166 me->arch.plt_offset = mod_mem->size;
167 if (me->arch.plt_size) {
169 me->arch.plt_size += PLT_ENTRY_SIZE;
170 mod_mem->size += me->arch.plt_size;
223 const char *strtab, struct module *me,
237 info = me->arch.syminfo + r_sym;
294 Elf_Addr *gotent = me->mem[MOD_TEXT].base +
295 me->arch.got_offset +
319 val += (Elf_Addr)me->mem[MOD_TEXT].base +
320 me->arch.got_offset - loc;
336 plt_base = me->mem[MOD_TEXT].base + me->arch.plt_offset;
343 jump_r1 = plt_base + me->arch.plt_size -
359 val = me->arch.plt_offset - me->arch.got_offset +
366 val = (Elf_Addr) me->mem[MOD_TEXT].base +
367 me->arch.plt_offset +
388 ((Elf_Addr) me->mem[MOD_TEXT].base + me->arch.got_offset);
398 val = (Elf_Addr) me->mem[MOD_TEXT].base + me->arch.got_offset +
414 me->name, r_type);
420 me->name, strtab + symtab[r_sym].st_name,
429 struct module *me,
446 rc = apply_rela(rela, base, symtab, strtab, me, write);
455 struct module *me)
457 bool early = me->state == MODULE_STATE_UNFORMED;
463 return __apply_relocate_add(sechdrs, strtab, symindex, relsec, me,
468 static int module_alloc_ftrace_hotpatch_trampolines(struct module *me,
483 me->arch.trampolines_start = (struct ftrace_hotpatch_trampoline *)start;
484 me->arch.trampolines_end = (struct ftrace_hotpatch_trampoline *)end;
485 me->arch.next_trampoline = me->arch.trampolines_start;
493 struct module *me)
503 !nospec_disable && me->arch.plt_size) {
506 ij = me->mem[MOD_TEXT].base + me->arch.plt_offset +
507 me->arch.plt_size - PLT_ENTRY_SIZE;
532 ret = module_alloc_ftrace_hotpatch_trampolines(me, s);