• Fredrik Noring's avatar
    kbuild: modversions: Fix relative CRC byte order interpretation · aa7f29f8
    Fredrik Noring authored
    commit 54a7151b1496cddbb7a83546b7998103e98edc88 upstream.
    
    Fix commit 56067812 ("kbuild: modversions: add infrastructure for
    emitting relative CRCs") where CRCs are interpreted in host byte order
    rather than proper kernel byte order. The bug is conditional on
    CONFIG_MODULE_REL_CRCS.
    
    For example, when loading a BE module into a BE kernel compiled with a LE
    system, the error "disagrees about version of symbol module_layout" is
    produced. A message such as "Found checksum D7FA6856 vs module 5668FAD7"
    will be given with debug enabled, which indicates an obvious endian
    problem within __kcrctab within the kernel image.
    
    The general solution is to use the macro TO_NATIVE, as is done in
    similar cases throughout modpost.c. With this correction it has been
    verified that a BE kernel compiled with a LE system accepts BE modules.
    
    This change has also been verified with a LE kernel compiled with a LE
    system, in which case TO_NATIVE returns its value unmodified since the
    byte orders match. This is by far the common case.
    
    Fixes: 56067812 ("kbuild: modversions: add infrastructure for emitting relative CRCs")
    Signed-off-by: 's avatarFredrik Noring <noring@nocrew.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: 's avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    aa7f29f8
Name
Last commit
Last update
..
basic Loading commit data...
coccinelle Loading commit data...
dtc Loading commit data...
gcc-plugins Loading commit data...
gdb Loading commit data...
genksyms Loading commit data...
kconfig Loading commit data...
ksymoops Loading commit data...
mod Loading commit data...
package Loading commit data...
selinux Loading commit data...
tracing Loading commit data...
.gitignore Loading commit data...
Kbuild.include Loading commit data...
Kconfig.include Loading commit data...
Lindent Loading commit data...
Makefile Loading commit data...
Makefile.asm-generic Loading commit data...
Makefile.build Loading commit data...
Makefile.clean Loading commit data...
Makefile.dtbinst Loading commit data...
Makefile.extrawarn Loading commit data...
Makefile.gcc-plugins Loading commit data...
Makefile.headersinst Loading commit data...
Makefile.host Loading commit data...
Makefile.kasan Loading commit data...
Makefile.kcov Loading commit data...
Makefile.lib Loading commit data...
Makefile.modbuiltin Loading commit data...
Makefile.modinst Loading commit data...
Makefile.modpost Loading commit data...
Makefile.modsign Loading commit data...
Makefile.ubsan Loading commit data...
adjust_autoksyms.sh Loading commit data...
asn1_compiler.c Loading commit data...
bin2c.c Loading commit data...
bloat-o-meter Loading commit data...
bootgraph.pl Loading commit data...
bpf_helpers_doc.py Loading commit data...
cc-can-link.sh Loading commit data...
check_00index.sh Loading commit data...
check_extable.sh Loading commit data...
checkincludes.pl Loading commit data...
checkkconfigsymbols.py Loading commit data...
checkpatch.pl Loading commit data...
checkstack.pl Loading commit data...
checksyscalls.sh Loading commit data...
checkversion.pl Loading commit data...
clang-version.sh Loading commit data...
cleanfile Loading commit data...
cleanpatch Loading commit data...
coccicheck Loading commit data...
config Loading commit data...
conmakehash.c Loading commit data...
const_structs.checkpatch Loading commit data...
decode_stacktrace.sh Loading commit data...
decodecode Loading commit data...
depmod.sh Loading commit data...
diffconfig Loading commit data...
documentation-file-ref-check Loading commit data...
export_report.pl Loading commit data...
extract-cert.c Loading commit data...
extract-ikconfig Loading commit data...
extract-module-sig.pl Loading commit data...
extract-sys-certs.pl Loading commit data...
extract-vmlinux Loading commit data...
extract_xc3028.pl Loading commit data...
faddr2line Loading commit data...
file-size.sh Loading commit data...
find-unused-docs.sh Loading commit data...
gcc-goto.sh Loading commit data...
gcc-ld Loading commit data...
gcc-plugin.sh Loading commit data...
gcc-version.sh Loading commit data...
gcc-x86_32-has-stack-protector.sh Loading commit data...
gcc-x86_64-has-stack-protector.sh Loading commit data...
get_dvb_firmware Loading commit data...
get_maintainer.pl Loading commit data...
gfp-translate Loading commit data...
headerdep.pl Loading commit data...
headers.sh Loading commit data...
headers_check.pl Loading commit data...
headers_install.sh Loading commit data...
insert-sys-cert.c Loading commit data...
kallsyms.c Loading commit data...
kernel-doc Loading commit data...
ld-version.sh Loading commit data...
leaking_addresses.pl Loading commit data...
link-vmlinux.sh Loading commit data...
makelst Loading commit data...
markup_oops.pl Loading commit data...
mkcompile_h Loading commit data...
mkmakefile Loading commit data...
mksysmap Loading commit data...
mkuboot.sh Loading commit data...
module-common.lds Loading commit data...
namespace.pl Loading commit data...
objdiff Loading commit data...
parse-maintainers.pl Loading commit data...
patch-kernel Loading commit data...
pnmtologo.c Loading commit data...
profile2linkerlist.pl Loading commit data...
prune-kernel Loading commit data...
recordmcount.c Loading commit data...
recordmcount.h Loading commit data...
recordmcount.pl Loading commit data...
setlocalversion Loading commit data...
show_delta Loading commit data...
sign-file.c Loading commit data...
sortextable.c Loading commit data...
sortextable.h Loading commit data...
spdxcheck.py Loading commit data...
spelling.txt Loading commit data...
sphinx-pre-install Loading commit data...
split-man.pl Loading commit data...
stackdelta Loading commit data...
stackusage Loading commit data...
subarch.include Loading commit data...
tags.sh Loading commit data...
unifdef.c Loading commit data...
ver_linux Loading commit data...
xen-hypercalls.sh Loading commit data...
xz_wrap.sh Loading commit data...