[ARM64][GCC10] Kernel can't load any module due to RWX check

Qu Wenruo quwenruo.btrfs at gmx.com
Sat Aug 29 03:57:06 EDT 2020



On 2020/8/29 下午3:49, Qu Wenruo wrote:
> 
> 
> 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?

And obviously, reverting it solves the problem of mine.
(Now happy working 4K sector size btrfs support on 64K page size system)

Thanks,
Qu

> 
> 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/2fb244d8/attachment-0001.sig>


More information about the linux-arm-kernel mailing list