mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
modpost: define TO_NATIVE() using bswap_* functions
The current TO_NATIVE() has some limitations: 1) You cannot cast the argument. 2) You cannot pass a variable marked as 'const'. 3) Passing an array is a bug, but it is not detected. Impelement TO_NATIVE() using bswap_*() functions. These are GNU extensions. If we face portability issues, we can port the code from include/uapi/linux/swab.h. With this change, get_rel_type_and_sym() can be simplified by casting the arguments directly. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
This commit is contained in:
@@ -1410,15 +1410,10 @@ static void get_rel_type_and_sym(struct elf_info *elf, uint64_t r_info,
|
||||
return;
|
||||
}
|
||||
|
||||
if (is_64bit) {
|
||||
Elf64_Xword r_info64 = r_info;
|
||||
|
||||
r_info = TO_NATIVE(r_info64);
|
||||
} else {
|
||||
Elf32_Word r_info32 = r_info;
|
||||
|
||||
r_info = TO_NATIVE(r_info32);
|
||||
}
|
||||
if (is_64bit)
|
||||
r_info = TO_NATIVE((Elf64_Xword)r_info);
|
||||
else
|
||||
r_info = TO_NATIVE((Elf32_Word)r_info);
|
||||
|
||||
*r_type = ELF_R_TYPE(r_info);
|
||||
*r_sym = ELF_R_SYM(r_info);
|
||||
|
||||
Reference in New Issue
Block a user