mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
modpost: pass struct module pointer to check_section_mismatch()
The next commit will use it. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
This commit is contained in:
parent
92e2921eea
commit
94d6cb6812
1 changed files with 11 additions and 11 deletions
|
@ -1211,7 +1211,7 @@ static void default_mismatch_handler(const char *modname, struct elf_info *elf,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_section_mismatch(const char *modname, struct elf_info *elf,
|
static void check_section_mismatch(struct module *mod, struct elf_info *elf,
|
||||||
Elf_Sym *sym,
|
Elf_Sym *sym,
|
||||||
unsigned int fsecndx, const char *fromsec,
|
unsigned int fsecndx, const char *fromsec,
|
||||||
Elf_Addr faddr, Elf_Addr taddr)
|
Elf_Addr faddr, Elf_Addr taddr)
|
||||||
|
@ -1222,7 +1222,7 @@ static void check_section_mismatch(const char *modname, struct elf_info *elf,
|
||||||
if (!mismatch)
|
if (!mismatch)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
default_mismatch_handler(modname, elf, mismatch, sym,
|
default_mismatch_handler(mod->name, elf, mismatch, sym,
|
||||||
fsecndx, fromsec, faddr,
|
fsecndx, fromsec, faddr,
|
||||||
tosec, taddr);
|
tosec, taddr);
|
||||||
}
|
}
|
||||||
|
@ -1406,7 +1406,7 @@ static int addend_mips_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
||||||
#define R_LARCH_SUB32 55
|
#define R_LARCH_SUB32 55
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void section_rela(const char *modname, struct elf_info *elf,
|
static void section_rela(struct module *mod, struct elf_info *elf,
|
||||||
Elf_Shdr *sechdr)
|
Elf_Shdr *sechdr)
|
||||||
{
|
{
|
||||||
Elf_Rela *rela;
|
Elf_Rela *rela;
|
||||||
|
@ -1452,12 +1452,12 @@ static void section_rela(const char *modname, struct elf_info *elf,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
check_section_mismatch(modname, elf, elf->symtab_start + r_sym,
|
check_section_mismatch(mod, elf, elf->symtab_start + r_sym,
|
||||||
fsecndx, fromsec, r.r_offset, r.r_addend);
|
fsecndx, fromsec, r.r_offset, r.r_addend);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void section_rel(const char *modname, struct elf_info *elf,
|
static void section_rel(struct module *mod, struct elf_info *elf,
|
||||||
Elf_Shdr *sechdr)
|
Elf_Shdr *sechdr)
|
||||||
{
|
{
|
||||||
Elf_Rel *rel;
|
Elf_Rel *rel;
|
||||||
|
@ -1507,7 +1507,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
|
||||||
fatal("Please add code to calculate addend for this architecture\n");
|
fatal("Please add code to calculate addend for this architecture\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
check_section_mismatch(modname, elf, elf->symtab_start + r_sym,
|
check_section_mismatch(mod, elf, elf->symtab_start + r_sym,
|
||||||
fsecndx, fromsec, r.r_offset, r.r_addend);
|
fsecndx, fromsec, r.r_offset, r.r_addend);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1524,19 +1524,19 @@ static void section_rel(const char *modname, struct elf_info *elf,
|
||||||
* to find all references to a section that reference a section that will
|
* to find all references to a section that reference a section that will
|
||||||
* be discarded and warns about it.
|
* be discarded and warns about it.
|
||||||
**/
|
**/
|
||||||
static void check_sec_ref(const char *modname, struct elf_info *elf)
|
static void check_sec_ref(struct module *mod, struct elf_info *elf)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Elf_Shdr *sechdrs = elf->sechdrs;
|
Elf_Shdr *sechdrs = elf->sechdrs;
|
||||||
|
|
||||||
/* Walk through all sections */
|
/* Walk through all sections */
|
||||||
for (i = 0; i < elf->num_sections; i++) {
|
for (i = 0; i < elf->num_sections; i++) {
|
||||||
check_section(modname, elf, &elf->sechdrs[i]);
|
check_section(mod->name, elf, &elf->sechdrs[i]);
|
||||||
/* We want to process only relocation sections and not .init */
|
/* We want to process only relocation sections and not .init */
|
||||||
if (sechdrs[i].sh_type == SHT_RELA)
|
if (sechdrs[i].sh_type == SHT_RELA)
|
||||||
section_rela(modname, elf, &elf->sechdrs[i]);
|
section_rela(mod, elf, &elf->sechdrs[i]);
|
||||||
else if (sechdrs[i].sh_type == SHT_REL)
|
else if (sechdrs[i].sh_type == SHT_REL)
|
||||||
section_rel(modname, elf, &elf->sechdrs[i]);
|
section_rel(mod, elf, &elf->sechdrs[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1707,7 +1707,7 @@ static void read_symbols(const char *modname)
|
||||||
sym_get_data(&info, sym));
|
sym_get_data(&info, sym));
|
||||||
}
|
}
|
||||||
|
|
||||||
check_sec_ref(modname, &info);
|
check_sec_ref(mod, &info);
|
||||||
|
|
||||||
if (!mod->is_vmlinux) {
|
if (!mod->is_vmlinux) {
|
||||||
version = get_modinfo(&info, "version");
|
version = get_modinfo(&info, "version");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue