module: change to print useful messages from elf_validity_check()
authorShuah Khan <skhan@linuxfoundation.org>
Fri, 15 Oct 2021 20:57:40 +0000 (14:57 -0600)
committerLuis Chamberlain <mcgrof@kernel.org>
Fri, 5 Nov 2021 22:13:10 +0000 (15:13 -0700)
commit7fd982f394c42f25a73fe9dfbf1e6b11fa26b40a
treef5030836a8fcf2773c23051c072502002c12e901
parentd83d42d071b6c58e71e54b8778ca5b279be98f7d
module: change to print useful messages from elf_validity_check()

elf_validity_check() checks ELF headers for errors and ELF Spec.
compliance and if any of them fail it returns -ENOEXEC from all of
these error paths. Almost all of them don't print any messages.

When elf_validity_check() returns an error, load_module() prints an
error message without error code. It is hard to determine why the
module ELF structure is invalid, even if load_module() prints the
error code which is -ENOEXEC in all of these cases.

Change to print useful error messages from elf_validity_check() to
clearly say what went wrong and why the ELF validity checks failed.

Remove the load_module() error message which is no longer needed.
This patch includes changes to fix build warns on 32-bit platforms:

warning: format '%llu' expects argument of type 'long long unsigned int',
but argument 3 has type 'Elf32_Off' {aka 'unsigned int'}
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
kernel/module.c