linux (RPi): update to linux-4.14.54

This commit is contained in:
MilhouseVH 2018-07-09 16:08:50 +01:00
parent 51a227f148
commit 0e04494e35
2 changed files with 2 additions and 59 deletions

View File

@ -56,8 +56,8 @@ case "$LINUX" in
PKG_SOURCE_DIR="kernel-$PKG_VERSION"
;;
raspberrypi)
PKG_VERSION="11dc869d874d04293849d830637130269fd0ada9" # 4.14.52
PKG_SHA256="cb179058b033f49e8c936b1dc8dbb586671ac083616fb0bff20da9f491bea77f"
PKG_VERSION="0c105ada34b842c79fc629bf3c05f384e3e39662" # 4.14.54
PKG_SHA256="e80140522b66ca2ed749d96b6de32db41f9768e19bf74199785a413404834e31"
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
;;
*)

View File

@ -1,57 +0,0 @@
On Wed, 23 Aug 2017 17:42:14 +0200
Matthias Reichl <hias@horus.com> wrote:
> I haven't verified it myself but Phil Elwells first analysis here
> sounds plausible
>
> https://github.com/raspberrypi/linux/issues/2166#issuecomment-323355145
I noticed this comment:
"What makes this interesting (and is the reason this doesn't fail
normally) is that these functions are all called within kernel_init, so
the __ro_after_init attribute shouldn't have caused the variable to be
read-only yet."
When ftrace starts, it needs to set the kernel text to write, and when
it finishes it sets it back to readonly. But the kernel is not set to
readonly at boot up.
Can you test this patch? (Warning, I didn't even compile test it)
-- Steve
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index ad80548..fd75f38 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -745,19 +745,29 @@ static int __mark_rodata_ro(void *unused)
return 0;
}
+static int kernel_set_to_readonly;
+
void mark_rodata_ro(void)
{
+ kernel_set_to_readonly = 1;
+
stop_machine(__mark_rodata_ro, NULL, NULL);
}
void set_kernel_text_rw(void)
{
+ if (!kernel_set_to_readonly)
+ return;
+
set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), false,
current->active_mm);
}
void set_kernel_text_ro(void)
{
+ if (!kernel_set_to_readonly)
+ return;
+
set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), true,
current->active_mm);
}