[ARM64][GCC10] Kernel can't load any module due to RWX check
Qu Wenruo
quwenruo.btrfs at gmx.com
Sat Aug 29 03:49:36 EDT 2020
On 2020/8/29 下午3:44, Qu Wenruo wrote:
> Hi,
>
> Recently built a v5.9-rc2 kernel, it boots fine, but unable to load any
> kernel module.
>
> After some debugging, it shows that it's due to RWX check failure:
>
> load_module: start
> module_enforce_rwx_sections: index=22 sh_flags=0x7 shf_wx=0x5
> layout_and_allocate: module enforce rwx sections
> load_module: failed to alloc layout and allocate
> load_module: end
>
> Futhermore, it's unable to disable the RWX check through "make
> menuconfig", since the ARCH_OPTIONAL_KERNEL_RWX is no for arm64.
>
> The offending section 22 looks like this: (the kernel reports 38
> sectors, while we only have 37, thus near-by sections are also shown here).
>
> 20 .data 00000aa0 0000000000000000 0000000000000000 00086d08
> 2**3
> CONTENTS, ALLOC, LOAD, RELOC, DATA
> 21 __bug_table 000000cc 0000000000000000 0000000000000000 000877a8
> 2**2
> CONTENTS, ALLOC, LOAD, RELOC, DATA
> 22 __dyndbg 0000b9b8 0000000000000000 0000000000000000 00087878
> 2**3
> CONTENTS, ALLOC, LOAD, RELOC, DATA
> 23 .data.unlikely 00000012 0000000000000000 0000000000000000
> 00093230 2**0
> CONTENTS, ALLOC, LOAD, DATA
>
> I'm using GCC 10.2.0, could this be the cause?
I should check the git log, the module_enforce_rwx_sections() is just
recently added by commit 5c3a7db0c7ec ("module: Harden STRICT_MODULE_RWX").
Hi Peter, any idea how could this commit causing a regression on arm64
but not on x86_64?
Thanks,
Qu
>
> Thanks,
> Qu
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20200829/271ba767/attachment.sig>
More information about the linux-arm-kernel
mailing list