On 2020-09-12 10:39, Guo Ren wrote: > It's come from mm/usercopy.c > /* Is this address range in the kernel text area? */ > static inline void check_kernel_text_object(const unsigned long ptr, > unsigned long n, bool to_user) > { > unsigned long textlow = (unsigned long)_stext; > unsigned long texthigh = (unsigned long)_etext; > unsigned long textlow_linear, texthigh_linear; > > if (overlaps(ptr, n, textlow, texthigh)) > usercopy_abort("kernel text", NULL, to_user, ptr - textlow, n); > > The __init_text/data areas will be freed after bootup, so I think it should be: > - unsigned long textlow = (unsigned long)_stext; > + unsigned long textlow = (unsigned long)_text; > > That means _stext should include init_text/data and _text is only for freeable. I have no idea if it is the right thing to do or not, but I can confirm this fixes the issue. How should we proceed to get that fixed in time for 5.9? For the older branches where it has been backported (so far 5.7 and 5.8), should we just get that commit reverted instead? Thanks, Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@xxxxxxxxxxx http://www.aurel32.net