/linux/tools/objtool/include/objtool/ |
H A D | elf.h | 46 struct reloc *relocs; 73 struct reloc *relocs; 76 struct reloc { struct 80 struct reloc *sym_next_reloc; argument 119 struct reloc *elf_init_reloc_text_sym(struct elf *elf, struct section *sec, 125 struct reloc *elf_init_reloc_data_sym(struct elf *elf, struct section *sec, 143 struct reloc *find_reloc_by_dest(const struct elf *elf, struct section *sec, unsigned long offset); 144 struct reloc *find_reloc_by_dest_range(const struct elf *elf, struct section *sec, 200 static inline unsigned int reloc_idx(struct reloc *reloc) in reloc_idx() argument 202 return reloc - reloc->sec->relocs; in reloc_idx() [all …]
|
H A D | special.h | 39 struct reloc *reloc); 40 struct reloc *arch_find_switch_table(struct objtool_file *file,
|
/linux/tools/objtool/ |
H A D | elf.c | 271 struct reloc *find_reloc_by_dest_range(const struct elf *elf, struct section *sec, in find_reloc_by_dest_range() 274 struct reloc *reloc, *r = NULL; in find_reloc_by_dest_range() local 283 elf_hash_for_each_possible(reloc, reloc, hash, in find_reloc_by_dest_range() 285 if (reloc->sec != rsec) in find_reloc_by_dest_range() 288 if (reloc_offset(reloc) >= offset && in find_reloc_by_dest_range() 289 reloc_offset(reloc) < offset + len) { in find_reloc_by_dest_range() 290 if (!r || reloc_offset(reloc) < reloc_offset(r)) in find_reloc_by_dest_range() 291 r = reloc; in find_reloc_by_dest_range() 301 struct reloc *find_reloc_by_dest(const struct elf *elf, struct section *sec, unsigned long offset) in find_reloc_by_dest() 584 struct reloc *reloc; in elf_update_sym_relocs() local [all …]
|
H A D | check.c | 144 static inline struct reloc *insn_jump_table(struct instruction *insn) in insn_jump_table() 557 struct reloc *reloc; in add_pv_ops() local 567 reloc = find_reloc_by_dest_range(file->elf, sym->sec, off, end - off); in add_pv_ops() 568 if (!reloc) in add_pv_ops() 571 func = reloc->sym; in add_pv_ops() 573 func = find_symbol_by_offset(reloc->sym->sec, in add_pv_ops() 574 reloc_addend(reloc)); in add_pv_ops() 576 idx = (reloc_offset(reloc) - sym->offset) / sizeof(unsigned long); in add_pv_ops() 580 off = reloc_offset(reloc) + 1; in add_pv_ops() 925 struct reloc *reloc; in create_mcount_loc_sections() local [all …]
|
H A D | special.c | 61 static void reloc_to_sec_off(struct reloc *reloc, struct section **sec, in reloc_to_sec_off() argument 64 *sec = reloc->sym->sec; in reloc_to_sec_off() 65 *off = reloc->sym->offset + reloc_addend(reloc); in reloc_to_sec_off() 72 struct reloc *orig_reloc, *new_reloc; in get_alt_entry() 121 struct reloc *key_reloc; in get_alt_entry()
|
/linux/drivers/gpu/drm/radeon/ |
H A D | r600_cs.c | 969 struct radeon_bo_list *reloc; in r600_cs_check_reg() local 1014 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r600_cs_check_reg() 1020 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in r600_cs_check_reg() 1032 r = radeon_cs_packet_next_reloc(p, &reloc, r600_nomm); in r600_cs_check_reg() 1041 if (reloc->tiling_flags & RADEON_TILING_MACRO) { in r600_cs_check_reg() 1074 r = radeon_cs_packet_next_reloc(p, &reloc, r600_nomm); in r600_cs_check_reg() 1082 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in r600_cs_check_reg() 1083 track->vgt_strmout_bo[tmp] = reloc->robj; in r600_cs_check_reg() 1084 track->vgt_strmout_bo_mc[tmp] = reloc->gpu_offset; in r600_cs_check_reg() 1097 r = radeon_cs_packet_next_reloc(p, &reloc, r600_nomm); in r600_cs_check_reg() [all …]
|
H A D | r200.c | 149 struct radeon_bo_list *reloc; in r200_packet0_check() local 181 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r200_packet0_check() 188 track->zb.robj = reloc->robj; in r200_packet0_check() 191 ib[idx] = idx_value + ((u32)reloc->gpu_offset); in r200_packet0_check() 194 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r200_packet0_check() 201 track->cb[0].robj = reloc->robj; in r200_packet0_check() 204 ib[idx] = idx_value + ((u32)reloc->gpu_offset); in r200_packet0_check() 213 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r200_packet0_check() 221 if (reloc->tiling_flags & RADEON_TILING_MACRO) in r200_packet0_check() 223 if (reloc->tiling_flags & RADEON_TILING_MICRO) in r200_packet0_check() [all …]
|
H A D | evergreen_cs.c | 1098 struct radeon_bo_list *reloc; in evergreen_cs_handle_reg() local 1144 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in evergreen_cs_handle_reg() 1150 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in evergreen_cs_handle_reg() 1173 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in evergreen_cs_handle_reg() 1181 ib[idx] |= Z_ARRAY_MODE(evergreen_cs_get_aray_mode(reloc->tiling_flags)); in evergreen_cs_handle_reg() 1182 track->db_z_info |= Z_ARRAY_MODE(evergreen_cs_get_aray_mode(reloc->tiling_flags)); in evergreen_cs_handle_reg() 1183 if (reloc->tiling_flags & RADEON_TILING_MACRO) { in evergreen_cs_handle_reg() 1186 evergreen_tiling_fields(reloc->tiling_flags, in evergreen_cs_handle_reg() 1215 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in evergreen_cs_handle_reg() 1222 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in evergreen_cs_handle_reg() [all …]
|
H A D | r300.c | 631 struct radeon_bo_list *reloc; in r300_packet0_check() local 665 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r300_packet0_check() 672 track->cb[i].robj = reloc->robj; in r300_packet0_check() 675 ib[idx] = idx_value + ((u32)reloc->gpu_offset); in r300_packet0_check() 678 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r300_packet0_check() 685 track->zb.robj = reloc->robj; in r300_packet0_check() 688 ib[idx] = idx_value + ((u32)reloc->gpu_offset); in r300_packet0_check() 707 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r300_packet0_check() 717 ((idx_value & ~31) + (u32)reloc->gpu_offset); in r300_packet0_check() 719 if (reloc->tiling_flags & RADEON_TILING_MACRO) in r300_packet0_check() [all …]
|
H A D | r100.c | 1296 struct radeon_bo_list *reloc; in r100_reloc_pitch_offset() local 1299 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r100_reloc_pitch_offset() 1309 tmp += (((u32)reloc->gpu_offset) >> 10); in r100_reloc_pitch_offset() 1312 if (reloc->tiling_flags & RADEON_TILING_MACRO) in r100_reloc_pitch_offset() 1314 if (reloc->tiling_flags & RADEON_TILING_MICRO) { in r100_reloc_pitch_offset() 1335 struct radeon_bo_list *reloc; in r100_packet3_load_vbpntr() local 1352 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r100_packet3_load_vbpntr() 1360 ib[idx+1] = radeon_get_ib_value(p, idx + 1) + ((u32)reloc->gpu_offset); in r100_packet3_load_vbpntr() 1363 track->arrays[i + 0].robj = reloc->robj; in r100_packet3_load_vbpntr() 1365 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r100_packet3_load_vbpntr() [all …]
|
/linux/drivers/gpu/drm/qxl/ |
H A D | qxl_ioctl.c | 204 struct drm_qxl_reloc reloc; in qxl_process_single_command() local 207 if (copy_from_user(&reloc, u + i, sizeof(reloc))) { in qxl_process_single_command() 214 if (reloc.reloc_type != QXL_RELOC_TYPE_BO && reloc.reloc_type != QXL_RELOC_TYPE_SURF) { in qxl_process_single_command() 215 DRM_DEBUG("unknown reloc type %d\n", reloc.reloc_type); in qxl_process_single_command() 220 reloc_info[i].type = reloc.reloc_type; in qxl_process_single_command() 222 if (reloc.dst_handle) { in qxl_process_single_command() 223 ret = qxlhw_handle_to_bo(file_priv, reloc.dst_handle, release, in qxl_process_single_command() 227 reloc_info[i].dst_offset = reloc.dst_offset; in qxl_process_single_command() 230 reloc_info[i].dst_offset = reloc.dst_offset + release->release_offset; in qxl_process_single_command() 234 if (reloc.reloc_type == QXL_RELOC_TYPE_BO || reloc.src_handle) { in qxl_process_single_command() [all …]
|
/linux/arch/x86/boot/compressed/ |
H A D | misc.c | 202 int *reloc; in handle_relocations() local 255 for (reloc = output + output_len - sizeof(*reloc); *reloc; reloc--) { in handle_relocations() 256 long extended = *reloc; in handle_relocations() 266 while (*--reloc) { in handle_relocations() 267 long extended = *reloc; in handle_relocations() 276 for (reloc--; *reloc; reloc--) { in handle_relocations() 277 long extended = *reloc; in handle_relocations()
|
/linux/drivers/gpu/host1x/ |
H A D | job.c | 153 struct host1x_reloc *reloc = &job->relocs[i]; in pin_job() local 158 reloc->target.bo = host1x_bo_get(reloc->target.bo); in pin_job() 159 if (!reloc->target.bo) { in pin_job() 164 bo = reloc->target.bo; in pin_job() 166 switch (reloc->flags & mask) { in pin_job() 287 struct host1x_reloc *reloc = &job->relocs[i]; in do_relocs() local 289 reloc->target.offset) >> reloc->shift; in do_relocs() 293 if (cmdbuf != reloc->cmdbuf.bo) in do_relocs() 298 reloc->cmdbuf.offset / sizeof(u32) + in do_relocs() 312 target = cmdbuf_addr + reloc->cmdbuf.offset; in do_relocs() [all …]
|
/linux/arch/riscv/kernel/tests/module_test/ |
H A D | test_uleb128.S | 23 .reloc second, R_RISCV_SET_ULEB128, second 24 .reloc second, R_RISCV_SUB_ULEB128, first 29 .reloc fourth, R_RISCV_SET_ULEB128, fourth 30 .reloc fourth, R_RISCV_SUB_ULEB128, third
|
H A D | test_sub32.S | 18 .reloc sub32, R_RISCV_ADD32, second 19 .reloc sub32, R_RISCV_SUB32, first
|
H A D | test_sub16.S | 18 .reloc sub16, R_RISCV_ADD16, second 19 .reloc sub16, R_RISCV_SUB16, first
|
H A D | test_sub8.S | 18 .reloc sub8, R_RISCV_ADD8, second 19 .reloc sub8, R_RISCV_SUB8, first
|
/linux/tools/objtool/arch/loongarch/ |
H A D | special.c | 6 struct reloc *reloc) in arch_support_alt_relocation() argument 11 struct reloc *arch_find_switch_table(struct objtool_file *file, in arch_find_switch_table()
|
/linux/tools/objtool/arch/powerpc/ |
H A D | special.c | 10 struct reloc *reloc) in arch_support_alt_relocation() argument 15 struct reloc *arch_find_switch_table(struct objtool_file *file, in arch_find_switch_table()
|
/linux/fs/isofs/ |
H A D | rock.c | 315 struct inode *reloc; in parse_rock_ridge_inode_internal() local 520 reloc = isofs_iget_reloc(inode->i_sb, reloc_block, 0); in parse_rock_ridge_inode_internal() 521 if (IS_ERR(reloc)) { in parse_rock_ridge_inode_internal() 522 ret = PTR_ERR(reloc); in parse_rock_ridge_inode_internal() 525 inode->i_mode = reloc->i_mode; in parse_rock_ridge_inode_internal() 526 set_nlink(inode, reloc->i_nlink); in parse_rock_ridge_inode_internal() 527 inode->i_uid = reloc->i_uid; in parse_rock_ridge_inode_internal() 528 inode->i_gid = reloc->i_gid; in parse_rock_ridge_inode_internal() 529 inode->i_rdev = reloc->i_rdev; in parse_rock_ridge_inode_internal() 530 inode->i_size = reloc->i_size; in parse_rock_ridge_inode_internal() [all …]
|
/linux/tools/objtool/arch/x86/ |
H A D | special.c | 66 struct reloc *reloc) in arch_support_alt_relocation() argument 111 struct reloc *arch_find_switch_table(struct objtool_file *file, in arch_find_switch_table() 115 struct reloc *text_reloc, *rodata_reloc; in arch_find_switch_table()
|
/linux/arch/parisc/kernel/ |
H A D | kexec.c | 76 void (*reloc)(unsigned long head, in machine_kexec() local 89 reloc = (void *)&desc; in machine_kexec() 92 reloc = (void *)virt; in machine_kexec() 107 reloc(image->head & PAGE_MASK, image->start, phys); in machine_kexec()
|
/linux/scripts/ |
H A D | check_extable.sh | 42 eval $(echo $reloc | sed 's/\([^+]\+\)+\?\(0x[0-9a-f]\+\)\?/symbol="\1"; symbol_offset="\2"/') 109 for reloc in ${suspicious_relocs}; do 112 find_symbol_and_offset_from_reloc ${reloc}
|
/linux/arch/arm64/kvm/hyp/nvhe/ |
H A D | Makefile | 41 targets += $(hyp-obj) kvm_nvhe.tmp.o kvm_nvhe.rel.o hyp.lds hyp-reloc.S hyp-reloc.o 68 $(obj)/hyp-reloc.S: $(obj)/kvm_nvhe.tmp.o $(obj)/gen-hyprel FORCE 76 $(obj)/kvm_nvhe.rel.o: $(obj)/kvm_nvhe.tmp.o $(obj)/hyp-reloc.o FORCE
|
/linux/fs/ |
H A D | binfmt_flat.c | 350 ptr = (unsigned long __user *)(current->mm->start_code + r.reloc.offset); in old_reloc() 352 ptr = (unsigned long __user *)(current->mm->start_data + r.reloc.offset); in old_reloc() 358 r.reloc.offset, ptr, val, segment[r.reloc.type]); in old_reloc() 360 switch (r.reloc.type) { in old_reloc() 371 pr_err("Unknown relocation type=%x\n", r.reloc.type); in old_reloc() 413 __be32 __user *reloc; in load_flat_file() local 586 reloc = (__be32 __user *) in load_flat_file() 612 reloc = (__be32 __user *) in load_flat_file() 783 if (get_user(tmp, reloc + i)) in load_flat_file() 826 if (get_user(relval, reloc + i)) in load_flat_file()
|