From 6d3fcc94f1638c54a7ad6dd51a3ba28795e9dcdf Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 8 Mar 2018 06:19:41 +0100 Subject: [PATCH] linux: update to 4.14.24 --- mk/linux-ver.mk | 4 +- target/linux/Config.in.kernelversion | 2 +- .../linux/patches/{4.14.8 => 4.14.24}/h8300.patch | 0 .../patches/4.14.24/initramfs-nosizelimit.patch | 21 ++++ .../{4.14.8 => 4.14.24}/or1k-more-ram.patch | 0 target/linux/patches/4.14.24/startup.patch | 21 ++++ target/linux/patches/4.14.8/mips64r6-multi3.patch | 107 --------------------- 7 files changed, 45 insertions(+), 110 deletions(-) rename target/linux/patches/{4.14.8 => 4.14.24}/h8300.patch (100%) create mode 100644 target/linux/patches/4.14.24/initramfs-nosizelimit.patch rename target/linux/patches/{4.14.8 => 4.14.24}/or1k-more-ram.patch (100%) create mode 100644 target/linux/patches/4.14.24/startup.patch delete mode 100644 target/linux/patches/4.14.8/mips64r6-multi3.patch diff --git a/mk/linux-ver.mk b/mk/linux-ver.mk index 2ff3cd733..6d913c850 100644 --- a/mk/linux-ver.mk +++ b/mk/linux-ver.mk @@ -22,10 +22,10 @@ KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE) KERNEL_HASH:= a23d7e1a9c1f72528531d9933e59e4cc4556752a2ea029fdc66a1b0fd24c8a3a endif ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_14),y) -KERNEL_FILE_VER:= 4.14.8 +KERNEL_FILE_VER:= 4.14.24 KERNEL_RELEASE:= 1 KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE) -KERNEL_HASH:= 6ebcc57ba31d714af872347184d1de32f4ab0b7096ef4e062d1ca6b3234d9333 +KERNEL_HASH:= ba512d1bd7f5910bae0f5d66554810f097f82e5df6fccb8c7cc4a11410839801 endif ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_9),y) KERNEL_FILE_VER:= 4.9.86 diff --git a/target/linux/Config.in.kernelversion b/target/linux/Config.in.kernelversion index 5ef5cf1ee..530a863cd 100644 --- a/target/linux/Config.in.kernelversion +++ b/target/linux/Config.in.kernelversion @@ -44,7 +44,7 @@ config ADK_TARGET_LINUX_KERNEL_VERSION_4_15 depends on !ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE config ADK_TARGET_LINUX_KERNEL_VERSION_4_14 - bool "4.14.8" + bool "4.14.24" depends on !ADK_TARGET_ARCH_AVR32 depends on !ADK_TARGET_ARCH_CRIS depends on !ADK_TARGET_ARCH_CSKY diff --git a/target/linux/patches/4.14.8/h8300.patch b/target/linux/patches/4.14.24/h8300.patch similarity index 100% rename from target/linux/patches/4.14.8/h8300.patch rename to target/linux/patches/4.14.24/h8300.patch diff --git a/target/linux/patches/4.14.24/initramfs-nosizelimit.patch b/target/linux/patches/4.14.24/initramfs-nosizelimit.patch new file mode 100644 index 000000000..0e524c1d9 --- /dev/null +++ b/target/linux/patches/4.14.24/initramfs-nosizelimit.patch @@ -0,0 +1,21 @@ +diff -Nur linux-4.14.24.orig/init/do_mounts.c linux-4.14.24/init/do_mounts.c +--- linux-4.14.24.orig/init/do_mounts.c 2018-03-03 10:24:39.000000000 +0100 ++++ linux-4.14.24/init/do_mounts.c 2018-03-08 02:32:01.136927457 +0100 +@@ -604,6 +604,7 @@ + } + + static bool is_tmpfs; ++static char tmpfs_rootflags[] = "nr_blocks=0,nr_inodes=0"; + static struct dentry *rootfs_mount(struct file_system_type *fs_type, + int flags, const char *dev_name, void *data) + { +@@ -616,6 +617,9 @@ + if (IS_ENABLED(CONFIG_TMPFS) && is_tmpfs) + fill = shmem_fill_super; + ++ if (is_tmpfs) ++ data = tmpfs_rootflags; ++ + return mount_nodev(fs_type, flags, data, fill); + } + diff --git a/target/linux/patches/4.14.8/or1k-more-ram.patch b/target/linux/patches/4.14.24/or1k-more-ram.patch similarity index 100% rename from target/linux/patches/4.14.8/or1k-more-ram.patch rename to target/linux/patches/4.14.24/or1k-more-ram.patch diff --git a/target/linux/patches/4.14.24/startup.patch b/target/linux/patches/4.14.24/startup.patch new file mode 100644 index 000000000..2aefbd208 --- /dev/null +++ b/target/linux/patches/4.14.24/startup.patch @@ -0,0 +1,21 @@ +diff -Nur linux-4.14.24.orig/init/main.c linux-4.14.24/init/main.c +--- linux-4.14.24.orig/init/main.c 2018-03-03 10:24:39.000000000 +0100 ++++ linux-4.14.24/init/main.c 2018-03-08 06:15:19.961419100 +0100 +@@ -1069,6 +1069,8 @@ + if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) + pr_err("Warning: unable to open an initial console.\n"); + ++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n"); ++ + (void) sys_dup(0); + (void) sys_dup(0); + /* +@@ -1077,7 +1079,7 @@ + */ + + if (!ramdisk_execute_command) +- ramdisk_execute_command = "/init"; ++ ramdisk_execute_command = "/sbin/init"; + + if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) { + ramdisk_execute_command = NULL; diff --git a/target/linux/patches/4.14.8/mips64r6-multi3.patch b/target/linux/patches/4.14.8/mips64r6-multi3.patch deleted file mode 100644 index b635f4bb2..000000000 --- a/target/linux/patches/4.14.8/mips64r6-multi3.patch +++ /dev/null @@ -1,107 +0,0 @@ -MIPS: Implement __multi3 for GCC7 MIPS64r6 builds - -Reported-by: Thomas Petazzoni -Signed-off-by: James Hogan - -diff -Nur linux-4.14.8.orig/arch/mips/lib/libgcc.h linux-4.14.8/arch/mips/lib/libgcc.h ---- linux-4.14.8.orig/arch/mips/lib/libgcc.h 2017-12-20 10:10:38.000000000 +0100 -+++ linux-4.14.8/arch/mips/lib/libgcc.h 2017-12-25 16:58:38.258470502 +0100 -@@ -10,10 +10,18 @@ - struct DWstruct { - int high, low; - }; -+ -+struct TWstruct { -+ long long high, low; -+}; - #elif defined(__LITTLE_ENDIAN) - struct DWstruct { - int low, high; - }; -+ -+struct TWstruct { -+ long long low, high; -+}; - #else - #error I feel sick. - #endif -@@ -23,4 +31,13 @@ - long long ll; - } DWunion; - -+#if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6) -+typedef int ti_type __attribute__((mode(TI))); -+ -+typedef union { -+ struct TWstruct s; -+ ti_type ti; -+} TWunion; -+#endif -+ - #endif /* __ASM_LIBGCC_H */ -diff -Nur linux-4.14.8.orig/arch/mips/lib/Makefile linux-4.14.8/arch/mips/lib/Makefile ---- linux-4.14.8.orig/arch/mips/lib/Makefile 2017-12-20 10:10:38.000000000 +0100 -+++ linux-4.14.8/arch/mips/lib/Makefile 2017-12-25 16:58:38.258470502 +0100 -@@ -16,4 +16,5 @@ - obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o - - # libgcc-style stuff needed in the kernel --obj-y += ashldi3.o ashrdi3.o bswapsi.o bswapdi.o cmpdi2.o lshrdi3.o ucmpdi2.o -+obj-y += ashldi3.o ashrdi3.o bswapsi.o bswapdi.o cmpdi2.o lshrdi3.o multi3.o \ -+ ucmpdi2.o -diff -Nur linux-4.14.8.orig/arch/mips/lib/multi3.c linux-4.14.8/arch/mips/lib/multi3.c ---- linux-4.14.8.orig/arch/mips/lib/multi3.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-4.14.8/arch/mips/lib/multi3.c 2017-12-25 16:58:38.258470502 +0100 -@@ -0,0 +1,52 @@ -+// SPDX-License-Identifier: GPL-2.0 -+#include -+ -+#include "libgcc.h" -+ -+/* -+ * GCC 7 suboptimally generates __multi3 calls for mips64r6, so for that -+ * specific case only we'll implement it here. -+ * -+ * See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82981 -+ */ -+#if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPSR6) && (__GNUC__ == 7) -+ -+/* multiply 64-bit values, low 64-bits returned */ -+static inline long long notrace dmulu(long long a, long long b) -+{ -+ long long res; -+ asm ("dmulu %0,%1,%2" : "=r" (res) : "r" (a), "r" (b)); -+ return res; -+} -+ -+/* multiply 64-bit unsigned values, high 64-bits of 128-bit result returned */ -+static inline long long notrace dmuhu(long long a, long long b) -+{ -+ long long res; -+ asm ("dmuhu %0,%1,%2" : "=r" (res) : "r" (a), "r" (b)); -+ return res; -+} -+ -+/* multiply 128-bit values, low 128-bits returned */ -+ti_type notrace __multi3(ti_type a, ti_type b) -+{ -+ TWunion res, aa, bb; -+ -+ aa.ti = a; -+ bb.ti = b; -+ -+ /* -+ * a * b = (a.lo * b.lo) -+ * + 2^64 * (a.hi * b.lo + a.lo * b.hi) -+ * [+ 2^128 * (a.hi * b.hi)] -+ */ -+ res.s.low = dmulu(aa.s.low, bb.s.low); -+ res.s.high = dmuhu(aa.s.low, bb.s.low); -+ res.s.high += dmulu(aa.s.high, bb.s.low); -+ res.s.high += dmulu(aa.s.low, bb.s.high); -+ -+ return res.ti; -+} -+EXPORT_SYMBOL(__multi3); -+ -+#endif /* 64BIT && CPU_MIPSR6 && GCC7 */ -- 2.11.4.GIT