diff options
author | David P <megver83@parabola.nu> | 2018-08-31 12:26:51 -0300 |
---|---|---|
committer | David P <megver83@parabola.nu> | 2018-08-31 12:26:51 -0300 |
commit | 6ab12f3567c1ccd788dc1f592e0b9c7ee0093d1f (patch) | |
tree | 0fa26fedaf0f0756d609433ca45484d74591b94f /kernels | |
parent | 32abd3d27dd08131d302a4027b8a0be732476fc1 (diff) | |
download | abslibre-6ab12f3567c1ccd788dc1f592e0b9c7ee0093d1f.tar.gz abslibre-6ab12f3567c1ccd788dc1f592e0b9c7ee0093d1f.tar.bz2 abslibre-6ab12f3567c1ccd788dc1f592e0b9c7ee0093d1f.zip |
upgpkg: kernels/linux-libre-xtreme 4.18.5_gnu-1
Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'kernels')
22 files changed, 436 insertions, 713 deletions
diff --git a/kernels/linux-libre-xtreme/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch b/kernels/linux-libre-xtreme/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch index 7aaecf303..f67e039da 100644 --- a/kernels/linux-libre-xtreme/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch +++ b/kernels/linux-libre-xtreme/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch @@ -1,4 +1,4 @@ -From ba0f7bad7435de617093d47ac4f0895a71dcee00 Mon Sep 17 00:00:00 2001 +From 6cd78f818001a5e2caac7cadc3ffff95d752a021 Mon Sep 17 00:00:00 2001 From: Willy Tarreau <w@xxxxxx> Date: Sun, 2 Dec 2012 19:59:28 +0100 Subject: [PATCH 01/14] ARM: atags: add support for Marvell's u-boot diff --git a/kernels/linux-libre-xtreme/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch b/kernels/linux-libre-xtreme/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch new file mode 100644 index 000000000..c40f1002e --- /dev/null +++ b/kernels/linux-libre-xtreme/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch @@ -0,0 +1,102 @@ +From 5dde1cf2f63a2e20ff411eac47fb5a53230642fe Mon Sep 17 00:00:00 2001 +From: Serge Hallyn <serge.hallyn@canonical.com> +Date: Fri, 31 May 2013 19:12:12 +0100 +Subject: [PATCH 1/2] add sysctl to disallow unprivileged CLONE_NEWUSER by + default + +Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com> +[bwh: Remove unneeded binary sysctl bits] +Signed-off-by: Daniel Micay <danielmicay@gmail.com> +--- + kernel/fork.c | 15 +++++++++++++++ + kernel/sysctl.c | 12 ++++++++++++ + kernel/user_namespace.c | 3 +++ + 3 files changed, 30 insertions(+) + +diff --git a/kernel/fork.c b/kernel/fork.c +index 1b27babc4c78..a88dd3ccd31c 100644 +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -103,6 +103,11 @@ + + #define CREATE_TRACE_POINTS + #include <trace/events/task.h> ++#ifdef CONFIG_USER_NS ++extern int unprivileged_userns_clone; ++#else ++#define unprivileged_userns_clone 0 ++#endif + + /* + * Minimum number of threads to boot the kernel +@@ -1624,6 +1629,10 @@ static __latent_entropy struct task_struct *copy_process( + if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) + return ERR_PTR(-EINVAL); + ++ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) ++ if (!capable(CAP_SYS_ADMIN)) ++ return ERR_PTR(-EPERM); ++ + /* + * Thread groups must share signals as well, and detached threads + * can only be started up within the thread group. +@@ -2420,6 +2429,12 @@ int ksys_unshare(unsigned long unshare_flags) + if (unshare_flags & CLONE_NEWNS) + unshare_flags |= CLONE_FS; + ++ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) { ++ err = -EPERM; ++ if (!capable(CAP_SYS_ADMIN)) ++ goto bad_unshare_out; ++ } ++ + err = check_unshare_flags(unshare_flags); + if (err) + goto bad_unshare_out; +diff --git a/kernel/sysctl.c b/kernel/sysctl.c +index 2d9837c0aff4..eb5236c069fc 100644 +--- a/kernel/sysctl.c ++++ b/kernel/sysctl.c +@@ -105,6 +105,9 @@ extern int core_uses_pid; + extern char core_pattern[]; + extern unsigned int core_pipe_limit; + #endif ++#ifdef CONFIG_USER_NS ++extern int unprivileged_userns_clone; ++#endif + extern int pid_max; + extern int pid_max_min, pid_max_max; + extern int percpu_pagelist_fraction; +@@ -519,6 +522,15 @@ static struct ctl_table kern_table[] = { + .proc_handler = proc_dointvec, + }, + #endif ++#ifdef CONFIG_USER_NS ++ { ++ .procname = "unprivileged_userns_clone", ++ .data = &unprivileged_userns_clone, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++#endif + #ifdef CONFIG_PROC_SYSCTL + { + .procname = "tainted", +diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c +index c3d7583fcd21..6ee37e516869 100644 +--- a/kernel/user_namespace.c ++++ b/kernel/user_namespace.c +@@ -26,6 +26,9 @@ + #include <linux/bsearch.h> + #include <linux/sort.h> + ++/* sysctl */ ++int unprivileged_userns_clone; ++ + static struct kmem_cache *user_ns_cachep __read_mostly; + static DEFINE_MUTEX(userns_state_mutex); + +-- +2.18.0 + diff --git a/kernels/linux-libre-xtreme/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch b/kernels/linux-libre-xtreme/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch index 67aaf723e..e834eae8e 100644 --- a/kernels/linux-libre-xtreme/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch +++ b/kernels/linux-libre-xtreme/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch @@ -1,4 +1,4 @@ -From 89b2c1805d92a98ccc424ecad060cb08ba8e6211 Mon Sep 17 00:00:00 2001 +From a383c6aaa67e862797d380a5163e633637358568 Mon Sep 17 00:00:00 2001 From: Willy Tarreau <w@xxxxxx> Date: Sun, 2 Dec 2012 19:56:58 +0100 Subject: [PATCH 02/14] ARM: atags/fdt: retrieve MAC addresses from Marvell diff --git a/kernels/linux-libre-xtreme/0002-drm-i915-Increase-LSPCON-timeout.patch b/kernels/linux-libre-xtreme/0002-drm-i915-Increase-LSPCON-timeout.patch new file mode 100644 index 000000000..06c514258 --- /dev/null +++ b/kernels/linux-libre-xtreme/0002-drm-i915-Increase-LSPCON-timeout.patch @@ -0,0 +1,50 @@ +From 670aed8119f293b41b82195cf96fa78c86cc3d49 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fredrik=20Sch=C3=B6n?= <fredrikschon@gmail.com> +Date: Fri, 17 Aug 2018 22:07:28 +0200 +Subject: [PATCH 2/2] drm/i915: Increase LSPCON timeout +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +100 ms is not enough time for the LSPCON adapter on Intel NUC devices to +settle. This causes dropped display modes at boot or screen reconfiguration. +Empirical testing can reproduce the error up to a timeout of 190 ms. Basic +boot and stress testing at 200 ms has not (yet) failed. + +Increase timeout to 400 ms to get some margin of error. + +Changes from v1: +The initial suggestion of 1000 ms was lowered due to concerns about delaying +valid timeout cases. +Update patch metadata. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107503 +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1570392 +Fixes: 357c0ae9198a ("drm/i915/lspcon: Wait for expected LSPCON mode to settle") +Cc: Shashank Sharma <shashank.sharma@intel.com> +Cc: Imre Deak <imre.deak@intel.com> +Cc: Jani Nikula <jani.nikula@intel.com> +Cc: <stable@vger.kernel.org> # v4.11+ +Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> +Signed-off-by: Fredrik Schön <fredrik.schon@gmail.com> +Reviewed-by: Shashank Sharma <shashank.sharma@intel.com> +--- + drivers/gpu/drm/i915/intel_lspcon.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c +index 8ae8f42f430a..6b6758419fb3 100644 +--- a/drivers/gpu/drm/i915/intel_lspcon.c ++++ b/drivers/gpu/drm/i915/intel_lspcon.c +@@ -74,7 +74,7 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon, + DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n", + lspcon_mode_name(mode)); + +- wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100); ++ wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 400); + if (current_mode != mode) + DRM_ERROR("LSPCON mode hasn't settled\n"); + +-- +2.18.0 + diff --git a/kernels/linux-libre-xtreme/0003-SMILE-Plug-device-tree-file.patch b/kernels/linux-libre-xtreme/0003-SMILE-Plug-device-tree-file.patch index e1416218a..03af05aa9 100644 --- a/kernels/linux-libre-xtreme/0003-SMILE-Plug-device-tree-file.patch +++ b/kernels/linux-libre-xtreme/0003-SMILE-Plug-device-tree-file.patch @@ -1,4 +1,4 @@ -From d441e0ca2b03d5cc7e5034efc6b15b56698b353f Mon Sep 17 00:00:00 2001 +From 121aa156d4d107cf2b174c8eac89c7c473c43829 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Fri, 5 Sep 2014 15:41:19 -0600 Subject: [PATCH 03/14] SMILE Plug device tree file @@ -14,10 +14,10 @@ Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> create mode 100644 arch/arm/boot/dts/armada-370-smileplug.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 7e2424957809..431a7ca68751 100644 +index 37a3de760d40..823a9ef2675d 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -1100,6 +1100,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ +@@ -1115,6 +1115,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ armada-370-db.dtb \ armada-370-dlink-dns327l.dtb \ armada-370-mirabox.dtb \ diff --git a/kernels/linux-libre-xtreme/0004-fix-mvsdio-eMMC-timing.patch b/kernels/linux-libre-xtreme/0004-fix-mvsdio-eMMC-timing.patch index 965b849b8..4669a97ab 100644 --- a/kernels/linux-libre-xtreme/0004-fix-mvsdio-eMMC-timing.patch +++ b/kernels/linux-libre-xtreme/0004-fix-mvsdio-eMMC-timing.patch @@ -1,4 +1,4 @@ -From 23883cf4470afeb33dc9c171978df76f5470f4f0 Mon Sep 17 00:00:00 2001 +From bca0f6d98bb3003178d962f83ba795d524460346 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Fri, 5 Sep 2014 15:43:56 -0600 Subject: [PATCH 04/14] fix mvsdio eMMC timing @@ -12,7 +12,7 @@ Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c -index 210247b3d11a..1a1802dc9ef4 100644 +index e22bbff89c8d..6b30c850ce07 100644 --- a/drivers/mmc/host/mvsdio.c +++ b/drivers/mmc/host/mvsdio.c @@ -93,7 +93,7 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data) @@ -24,7 +24,7 @@ index 210247b3d11a..1a1802dc9ef4 100644 tmout_index = MVSD_HOST_CTRL_TMOUT_MAX; dev_dbg(host->dev, "data %s at 0x%08x: blocks=%d blksz=%d tmout=%u (%d)\n", -@@ -614,6 +614,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) +@@ -616,6 +616,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) u32 m = DIV_ROUND_UP(host->base_clock, ios->clock) - 1; if (m > MVSD_BASE_DIV_MAX) m = MVSD_BASE_DIV_MAX; diff --git a/kernels/linux-libre-xtreme/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/kernels/linux-libre-xtreme/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch index e90048ad6..fbbde259a 100644 --- a/kernels/linux-libre-xtreme/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch +++ b/kernels/linux-libre-xtreme/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch @@ -1,4 +1,4 @@ -From b8082b65dc78228d48e693c7bdf9dbe75a2043ff Mon Sep 17 00:00:00 2001 +From 021b0a93050b75f56690bbe41fc470c77f7573c0 Mon Sep 17 00:00:00 2001 From: popcornmix <popcornmix@gmail.com> Date: Tue, 18 Feb 2014 01:43:50 -0300 Subject: [PATCH 05/14] net/smsc95xx: Allow mac address to be set as a @@ -9,7 +9,7 @@ Subject: [PATCH 05/14] net/smsc95xx: Allow mac address to be set as a 1 file changed, 56 insertions(+) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index 309b88acd3d0..7bc9feb891a1 100644 +index 06b4d290784d..3be3b5a4a176 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -60,6 +60,7 @@ diff --git a/kernels/linux-libre-xtreme/0006-set-default-cubietruck-led-triggers.patch b/kernels/linux-libre-xtreme/0006-set-default-cubietruck-led-triggers.patch index a5a9bcc44..ba60dea49 100644 --- a/kernels/linux-libre-xtreme/0006-set-default-cubietruck-led-triggers.patch +++ b/kernels/linux-libre-xtreme/0006-set-default-cubietruck-led-triggers.patch @@ -1,4 +1,4 @@ -From 0cf9ae3f97075a40cd14e09c91de0468459c45d3 Mon Sep 17 00:00:00 2001 +From 529b0cbe182106ce8b52cf465f3c54c3e0f12e1c Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Sat, 14 Feb 2015 12:32:27 +0100 Subject: [PATCH 06/14] set default cubietruck led triggers diff --git a/kernels/linux-libre-xtreme/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch b/kernels/linux-libre-xtreme/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch index e29c41c6c..ed7f4e596 100644 --- a/kernels/linux-libre-xtreme/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch +++ b/kernels/linux-libre-xtreme/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch @@ -1,4 +1,4 @@ -From 8d59092709da9dc0f852411cb1bad579decd457c Mon Sep 17 00:00:00 2001 +From adec3bf3f301ddb15994be72c92f43cc5569dd03 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Thu, 11 Aug 2016 00:42:37 -0600 Subject: [PATCH 07/14] exynos4412-odroid: set higher minimum buck2 regulator @@ -13,10 +13,10 @@ Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi -index d7ad07fd48f9..53c31c01713b 100644 +index a09e46c9dbc0..d8117a820812 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi -@@ -418,7 +418,7 @@ +@@ -423,7 +423,7 @@ buck2_reg: BUCK2 { regulator-name = "vdd_arm"; diff --git a/kernels/linux-libre-xtreme/0008-ARM-dove-enable-ethernet-on-D3Plug.patch b/kernels/linux-libre-xtreme/0008-ARM-dove-enable-ethernet-on-D3Plug.patch index 8e85907d0..5395e2b7d 100644 --- a/kernels/linux-libre-xtreme/0008-ARM-dove-enable-ethernet-on-D3Plug.patch +++ b/kernels/linux-libre-xtreme/0008-ARM-dove-enable-ethernet-on-D3Plug.patch @@ -1,4 +1,4 @@ -From c26422909f777d60214288dfdb538fa8cf510c5f Mon Sep 17 00:00:00 2001 +From 58b7a9138a44bef39a860611354c3dac0f558b1f Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Sun, 7 May 2017 13:32:25 -0600 Subject: [PATCH 08/14] ARM: dove: enable ethernet on D3Plug diff --git a/kernels/linux-libre-xtreme/0009-power-add-power-sequence-library.patch b/kernels/linux-libre-xtreme/0009-power-add-power-sequence-library.patch index e2dbaf12b..c0da023ca 100644 --- a/kernels/linux-libre-xtreme/0009-power-add-power-sequence-library.patch +++ b/kernels/linux-libre-xtreme/0009-power-add-power-sequence-library.patch @@ -1,4 +1,4 @@ -From ce6183d0a8a9aea1a1d9acc9a85a05d73e741023 Mon Sep 17 00:00:00 2001 +From 4ddcbb9ed40c97371724245d0b8d01d471bb6570 Mon Sep 17 00:00:00 2001 From: Peter Chen <peter.chen@nxp.com> Date: Wed, 21 Jun 2017 14:42:03 +0800 Subject: [PATCH 09/14] power: add power sequence library @@ -109,10 +109,10 @@ index 000000000000..554608e5f3b6 +.. kernel-doc:: drivers/power/pwrseq/core.c + :export: diff --git a/MAINTAINERS b/MAINTAINERS -index 9c125f705f78..31042fc6c400 100644 +index 96e98e206b0d..99339375209c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -11247,6 +11247,15 @@ F: drivers/firmware/psci*.c +@@ -11398,6 +11398,15 @@ F: drivers/firmware/psci*.c F: include/linux/psci.h F: include/uapi/linux/psci.h diff --git a/kernels/linux-libre-xtreme/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch b/kernels/linux-libre-xtreme/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch index 5737cac20..ddebef4f0 100644 --- a/kernels/linux-libre-xtreme/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch +++ b/kernels/linux-libre-xtreme/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch @@ -1,4 +1,4 @@ -From 5b874f0a1f92812bc797c01fa558f0ab4ed338ae Mon Sep 17 00:00:00 2001 +From 1358757f34c7feff4aab541814c73f6cf3e83b69 Mon Sep 17 00:00:00 2001 From: Peter Chen <peter.chen@nxp.com> Date: Wed, 21 Jun 2017 14:42:05 +0800 Subject: [PATCH 10/14] usb: core: add power sequence handling for USB devices @@ -39,7 +39,7 @@ index 987fc5ba6321..bd09fc8ff763 100644 ---help--- Universal Serial Bus (USB) is a specification for a serial bus diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index e3bf65e213cd..f6a739bbe754 100644 +index fcae521df29b..0c708d3ef179 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -28,6 +28,7 @@ @@ -126,7 +126,7 @@ index e3bf65e213cd..f6a739bbe754 100644 } static int -@@ -3633,14 +3669,19 @@ static int hub_suspend(struct usb_interface *intf, pm_message_t msg) +@@ -3653,14 +3689,19 @@ static int hub_suspend(struct usb_interface *intf, pm_message_t msg) /* stop hub_wq and related activity */ hub_quiesce(hub, HUB_SUSPEND); @@ -148,7 +148,7 @@ index e3bf65e213cd..f6a739bbe754 100644 return 0; } diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h -index 4dc769ee9c74..b5d5c4818f90 100644 +index 4accfb63f7dc..abe71c5e84cb 100644 --- a/drivers/usb/core/hub.h +++ b/drivers/usb/core/hub.h @@ -70,6 +70,7 @@ struct usb_hub { diff --git a/kernels/linux-libre-xtreme/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch b/kernels/linux-libre-xtreme/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch index 7c5261680..f5f920626 100644 --- a/kernels/linux-libre-xtreme/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch +++ b/kernels/linux-libre-xtreme/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch @@ -1,4 +1,4 @@ -From dd0ec5ddeff7c8435888e7250eb47954740e7e5d Mon Sep 17 00:00:00 2001 +From 0b61e501bdfb883df4211fdc47d246df6af06e5a Mon Sep 17 00:00:00 2001 From: Joshua Clayton <stillcompiling@gmail.com> Date: Wed, 21 Jun 2017 14:42:06 +0800 Subject: [PATCH 11/14] ARM: dts: imx6qdl: Enable usb node children with <reg> @@ -14,10 +14,10 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com> 1 file changed, 6 insertions(+) diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi -index c003e62bf290..7ffd2f1f769e 100644 +index 911141e24681..c74e9c7a83bf 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi -@@ -983,6 +983,8 @@ +@@ -965,6 +965,8 @@ usbh1: usb@2184200 { compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; @@ -26,7 +26,7 @@ index c003e62bf290..7ffd2f1f769e 100644 reg = <0x02184200 0x200>; interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_USBOH3>; -@@ -997,6 +999,8 @@ +@@ -979,6 +981,8 @@ usbh2: usb@2184400 { compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; @@ -35,7 +35,7 @@ index c003e62bf290..7ffd2f1f769e 100644 reg = <0x02184400 0x200>; interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_USBOH3>; -@@ -1010,6 +1014,8 @@ +@@ -992,6 +996,8 @@ usbh3: usb@2184600 { compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; diff --git a/kernels/linux-libre-xtreme/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch b/kernels/linux-libre-xtreme/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch index 606b49708..6f8d546d4 100644 --- a/kernels/linux-libre-xtreme/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch +++ b/kernels/linux-libre-xtreme/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch @@ -1,4 +1,4 @@ -From 01dea63eabb838525a193c32526791f6880c2b79 Mon Sep 17 00:00:00 2001 +From 3e35057ab8b11c232a7c0edeea3299d53c6d600d Mon Sep 17 00:00:00 2001 From: Peter Chen <peter.chen@nxp.com> Date: Wed, 21 Jun 2017 14:42:07 +0800 Subject: [PATCH 12/14] ARM: dts: imx6qdl-udoo.dtsi: fix onboard USB HUB @@ -17,11 +17,11 @@ Tested-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name> 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/arch/arm/boot/dts/imx6qdl-udoo.dtsi b/arch/arm/boot/dts/imx6qdl-udoo.dtsi -index 906387915dc5..d3cc0b666e0d 100644 +index 4f27861bbb32..dead14b0d4bf 100644 --- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi +++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi -@@ -9,6 +9,8 @@ - * +@@ -5,6 +5,8 @@ + * Author: Fabio Estevam <fabio.estevam@freescale.com> */ +#include <dt-bindings/gpio/gpio.h> @@ -29,7 +29,7 @@ index 906387915dc5..d3cc0b666e0d 100644 / { aliases { backlight = &backlight; -@@ -65,17 +67,6 @@ +@@ -61,17 +63,6 @@ #address-cells = <1>; #size-cells = <0>; @@ -47,7 +47,7 @@ index 906387915dc5..d3cc0b666e0d 100644 reg_panel: regulator@1 { compatible = "regulator-fixed"; reg = <1>; -@@ -201,7 +192,7 @@ +@@ -197,7 +188,7 @@ pinctrl_usbh: usbhgrp { fsl,pins = < @@ -56,7 +56,7 @@ index 906387915dc5..d3cc0b666e0d 100644 MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x130b0 >; }; -@@ -272,9 +263,16 @@ +@@ -268,9 +259,16 @@ &usbh1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbh>; diff --git a/kernels/linux-libre-xtreme/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch b/kernels/linux-libre-xtreme/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch index 0eaf2c470..31023b56b 100644 --- a/kernels/linux-libre-xtreme/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch +++ b/kernels/linux-libre-xtreme/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch @@ -1,4 +1,4 @@ -From 29a513109fa45d1039d7f52aacb3fc4a188e60d4 Mon Sep 17 00:00:00 2001 +From 9d40728e452daf4d77f8924e499814138dc5363c Mon Sep 17 00:00:00 2001 From: Joshua Clayton <stillcompiling@gmail.com> Date: Wed, 21 Jun 2017 14:42:08 +0800 Subject: [PATCH 13/14] ARM: dts: imx6q-evi: Fix onboard hub reset line diff --git a/kernels/linux-libre-xtreme/0014-ARM-mvebu-declare-asm-symbols-as-character-arrays-in.patch b/kernels/linux-libre-xtreme/0014-ARM-mvebu-declare-asm-symbols-as-character-arrays-in.patch index 8dbde1ca0..d18e2dd8e 100644 --- a/kernels/linux-libre-xtreme/0014-ARM-mvebu-declare-asm-symbols-as-character-arrays-in.patch +++ b/kernels/linux-libre-xtreme/0014-ARM-mvebu-declare-asm-symbols-as-character-arrays-in.patch @@ -1,4 +1,4 @@ -From ac139b06e1b309c605c65cea2d547cbba4ae5370 Mon Sep 17 00:00:00 2001 +From a877c2568fc96a7a7ba89dd4cf0df20341df2a37 Mon Sep 17 00:00:00 2001 From: Ethan Tuttle <ethan@ethantuttle.com> Date: Tue, 19 Jun 2018 21:31:08 -0700 Subject: [PATCH 14/14] ARM: mvebu: declare asm symbols as character arrays in diff --git a/kernels/linux-libre-xtreme/ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch b/kernels/linux-libre-xtreme/ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch deleted file mode 100644 index c2565ceb7..000000000 --- a/kernels/linux-libre-xtreme/ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch +++ /dev/null @@ -1,129 +0,0 @@ -From a0a37862a4e1844793d39aca9ccb8fecbdcb8659 Mon Sep 17 00:00:00 2001 -From: Mika Westerberg <mika.westerberg@linux.intel.com> -Date: Tue, 22 May 2018 14:16:50 +0300 -Subject: [PATCH 3/3] ACPI / watchdog: Prefer iTCO_wdt always when WDAT table - uses RTC SRAM - -After we added quirk for Lenovo Z50-70 it turns out there are at least -two more systems where WDAT table includes instructions accessing RTC -SRAM. Instead of quirking each system separately, look for such -instructions in the table and automatically prefer iTCO_wdt if found. - -Link: https://bugzilla.kernel.org/show_bug.cgi?id=199033 -Reported-by: Arnold Guy <aurnoldg@gmail.com> -Reported-by: Alois Nespor <nespor@fssp.cz> -Reported-by: Yury Pakin <zxwarior@gmail.com> -Reported-by: Ihor Chyhin <ihorchyhin@ukr.net> -Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> -Acked-by: Guenter Roeck <linux@roeck-us.net> ---- - drivers/acpi/acpi_watchdog.c | 72 ++++++++++++++++++++++-------------- - 1 file changed, 45 insertions(+), 27 deletions(-) - -diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c -index 4bde16fb97d8..95600309ce42 100644 ---- a/drivers/acpi/acpi_watchdog.c -+++ b/drivers/acpi/acpi_watchdog.c -@@ -12,54 +12,72 @@ - #define pr_fmt(fmt) "ACPI: watchdog: " fmt - - #include <linux/acpi.h> --#include <linux/dmi.h> - #include <linux/ioport.h> - #include <linux/platform_device.h> - - #include "internal.h" - --static const struct dmi_system_id acpi_watchdog_skip[] = { -- { -- /* -- * On Lenovo Z50-70 there are two issues with the WDAT -- * table. First some of the instructions use RTC SRAM -- * to store persistent information. This does not work well -- * with Linux RTC driver. Second, more important thing is -- * that the instructions do not actually reset the system. -- * -- * On this particular system iTCO_wdt seems to work just -- * fine so we prefer that over WDAT for now. -- * -- * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033. -- */ -- .ident = "Lenovo Z50-70", -- .matches = { -- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), -- DMI_MATCH(DMI_PRODUCT_NAME, "20354"), -- DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Z50-70"), -- }, -- }, -- {} --}; -+#ifdef CONFIG_RTC_MC146818_LIB -+#include <linux/mc146818rtc.h> -+ -+/* -+ * There are several systems where the WDAT table is accessing RTC SRAM to -+ * store persistent information. This does not work well with the Linux RTC -+ * driver so on those systems we skip WDAT driver and prefer iTCO_wdt -+ * instead. -+ * -+ * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033. -+ */ -+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat) -+{ -+ const struct acpi_wdat_entry *entries; -+ int i; -+ -+ entries = (struct acpi_wdat_entry *)(wdat + 1); -+ for (i = 0; i < wdat->entries; i++) { -+ const struct acpi_generic_address *gas; -+ -+ gas = &entries[i].register_region; -+ if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) { -+ switch (gas->address) { -+ case RTC_PORT(0): -+ case RTC_PORT(1): -+ case RTC_PORT(2): -+ case RTC_PORT(3): -+ return true; -+ } -+ } -+ } -+ -+ return false; -+} -+#else -+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat) -+{ -+ return false; -+} -+#endif - - static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void) - { - const struct acpi_table_wdat *wdat = NULL; - acpi_status status; - - if (acpi_disabled) - return NULL; - -- if (dmi_check_system(acpi_watchdog_skip)) -- return NULL; -- - status = acpi_get_table(ACPI_SIG_WDAT, 0, - (struct acpi_table_header **)&wdat); - if (ACPI_FAILURE(status)) { - /* It is fine if there is no WDAT */ - return NULL; - } - -+ if (acpi_watchdog_uses_rtc(wdat)) { -+ pr_info("Skipping WDAT on this system because it uses RTC SRAM\n"); -+ return NULL; -+ } -+ - return wdat; - } - --- -2.17.1 - diff --git a/kernels/linux-libre-xtreme/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch b/kernels/linux-libre-xtreme/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch deleted file mode 100644 index c6929908a..000000000 --- a/kernels/linux-libre-xtreme/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch +++ /dev/null @@ -1,53 +0,0 @@ -From f51d7e02375963169fb1c1148ac3f96d54e97ec4 Mon Sep 17 00:00:00 2001 -From: Erik Schmauss <erik.schmauss@intel.com> -Date: Sat, 28 Jul 2018 14:49:55 +0200 -Subject: [PATCH] ACPICA: AML Parser: ignore control method status in - module-level code - -Previous change in the AML parser code blindly set all non-successful -dispatcher statuses to AE_OK. This approach is incorrect because -successful control method invocations from module-level return -AE_CTRL_TRANSFER. Overwriting AE_OK to this status causes the AML -parser to think that there was no return value from the control -method invocation. - -fixes: 73c2a01c52b6 (ACPICA: AML Parser: ignore dispatcher error status during table load) - -Reported-by: Linus Torvalds <torvalds@linux-foundation.org> -Signed-off-by: Erik Schmauss <erik.schmauss@intel.com> ---- - drivers/acpi/acpica/psloop.c | 19 ++++++++++++------- - 1 file changed, 12 insertions(+), 7 deletions(-) - -diff --git a/drivers/acpi/acpica/psloop.c b/drivers/acpi/acpica/psloop.c -index ee840be150b5e..44f35ab3347d1 100644 ---- a/drivers/acpi/acpica/psloop.c -+++ b/drivers/acpi/acpica/psloop.c -@@ -709,15 +709,20 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) - } else - if ((walk_state-> - parse_flags & ACPI_PARSE_MODULE_LEVEL) -+ && status != AE_CTRL_TRANSFER - && ACPI_FAILURE(status)) { - /* -- * ACPI_PARSE_MODULE_LEVEL means that we are loading a table by -- * executing it as a control method. However, if we encounter -- * an error while loading the table, we need to keep trying to -- * load the table rather than aborting the table load. Set the -- * status to AE_OK to proceed with the table load. If we get a -- * failure at this point, it means that the dispatcher got an -- * error while processing Op (most likely an AML operand error. -+ * ACPI_PARSE_MODULE_LEVEL flag means that we are currently -+ * loading a table by executing it as a control method. -+ * However, if we encounter an error while loading the table, -+ * we need to keep trying to load the table rather than -+ * aborting the table load (setting the status to AE_OK -+ * continues the table load). If we get a failure at this -+ * point, it means that the dispatcher got an error while -+ * processing Op (most likely an AML operand error) or a -+ * control method was called from module level and the -+ * dispatcher returned AE_CTRL_TRANSFER. In the latter case, -+ * leave the status alone, there's nothing wrong with it. - */ - status = AE_OK; - } diff --git a/kernels/linux-libre-xtreme/PKGBUILD b/kernels/linux-libre-xtreme/PKGBUILD index d18e17c47..9f8103cc2 100644 --- a/kernels/linux-libre-xtreme/PKGBUILD +++ b/kernels/linux-libre-xtreme/PKGBUILD @@ -4,35 +4,34 @@ # Contributor: Nicolás Reynolds <fauno@kiwwwi.com.ar> # Contributor: Sorin-Mihai Vârgolici <smv@yobicore.org> # Contributor: Michał Masłowski <mtjm@mtjm.eu> +# Contributor: Luke Shumaker <lukeshu@sbcglobal.net> # Contributor: Luke R. <g4jc@openmailbox.org> # Based on linux package pkgbase=linux-libre-xtreme -_pkgbasever=4.17-gnu -_pkgver=4.17.11-gnu -_archpatchver=arch1 +_srcbasever=4.18-gnu +_srcver=4.18.5-gnu _hardenedver=a _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=() # '%' gets replaced with _kernelname _replacesoldmodules=() # '%' gets replaced with _kernelname -_srcname=linux-${_pkgbasever%-*} -_archpkgver=${_pkgver%-*} -pkgver=${_pkgver//-/_} +_srcname=linux-${_srcbasever%-*} +_archpkgver=${_srcver%-*} +pkgver=${_srcver//-/_} pkgrel=1 -rcnrel=armv7-x11 -arch=('i686' 'x86_64' 'armv7h') +rcnrel=armv7-x5 +arch=(i686 x86_64 armv7h) url="https://wiki.parabola.nu/Xtreme" -license=('GPL2') -makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf') +license=(GPL2) +makedepends=(xmlto kmod inetutils bc libelf python-sphinx graphviz) options=('!strip') source=( - "https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz"{,.sign} - "https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz"{,.sign} - "https://repo.parabola.nu/other/arch/patches/${_pkgver%-*}/patch-${_pkgver%-*}-${_archpatchver}.patch"{,.sig} - "https://github.com/anthraxx/linux-hardened/releases/download/${_pkgver%-*}.${_hardenedver}/linux-hardened-${_pkgver%-*}.${_hardenedver}.patch"{,.sig} + "https://linux-libre.fsfla.org/pub/linux-libre/releases/$_srcbasever/linux-libre-$_srcbasever.tar.xz"{,.sign} + "https://linux-libre.fsfla.org/pub/linux-libre/releases/$_srcver/patch-$_srcbasever-$_srcver.xz"{,.sign} + "https://github.com/anthraxx/linux-hardened/releases/download/${_srcver%-*}.${_hardenedver}/linux-hardened-${_srcver%-*}.${_hardenedver}.patch"{,.sig} "https://repo.parabola.nu/other/linux-libre/logos/logo_linux_clut224.ppm"{,.sig} "https://repo.parabola.nu/other/linux-libre/logos/logo_linux_mono.pbm"{,.sig} "https://repo.parabola.nu/other/linux-libre/logos/logo_linux_vga16.ppm"{,.sig} @@ -43,7 +42,7 @@ source=( # standard config files for mkinitcpio ramdisk 'linux.preset' # armv7h patches - "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch"{,.sig} + "https://repo.parabola.nu/other/rcn-libre/patches/${_srcver%-*}/rcn-libre-${_srcver%-*}-$rcnrel.patch"{,.sig} '0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch' '0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch' '0003-SMILE-Plug-device-tree-file.patch' @@ -61,10 +60,9 @@ source=( # other patches '0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch' '0002-fix-Atmel-maXTouch-touchscreen-support.patch' - 'ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch' - 'Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch' - 'mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch' - 'ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch' + '0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch' + '0002-drm-i915-Increase-LSPCON-timeout.patch' + 'increase-timeout-in-lspcon_wait_mode.patch' ) validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva @@ -72,13 +70,11 @@ validpgpkeys=( '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. 'E240B57E2C4630BA768E2F26FC1B547C8D8172C8' # Levente Polyak ) -sha512sums=('a09014005d64839e958cabb20dbd50e051907b1afea2f517f41f0a9312fa1bc8447690e64ec0e6488a778be8a7384891c003f39029ff5799f9884482628aadf2' +sha512sums=('0c221c6e84eb5bc270ef79454bf407079daed84534afb1d449d40fa46e42868a471d3063016a4eb3f68d42879e18ee314ab30716116805fee35b5084b23df2a9' 'SKIP' - 'a977ac21aa66b7d01ccc207f74d6213cdeed7ab0dd40c5569f97a97f42244c9db002f79d84ad6b4583d1a3b5f357f55bb12da214078c919ac2b70800b0b6ae69' + '4185dde406aafd020a0c7ab5cadff02a6f92812b5e7616c39b85051af23adc6bb0927f75bcc5213f9df8d34d0e7deb7c930844565318dd771b6695763deef174' 'SKIP' - 'f7a54457093981f74282d862aeba704c3ec49ae550448230294ac9cfcb6cf0ac0b62f6948855b9b505e2af5e748b782facde14c107c6d2b448f818cdc27c6188' - 'SKIP' - '25fcaf8ee67f3864a740b976dd2a5999ff7c9ea1803c58f4338f22cd9171c3bb6830bcddf5b562860b30c1eab7c2f7e18eebe3a427afe1fdef58cdc7d0f2f5a3' + 'f1dddfb63c5fe1235f0b5c19947919a1d804ef52f57939921e571bed07f2281ecf68dd4a17ce7dc88ada78b1ad4d36171f9092765141f5909adaaefd3bf5fed8' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -86,64 +82,58 @@ sha512sums=('a09014005d64839e958cabb20dbd50e051907b1afea2f517f41f0a9312fa1bc8447 'SKIP' '7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78' 'SKIP' - '497e74b7ea4fa6abf3274f8330a019cadb07ab881530f14bcc4f4a9ae9c91c4846171308bf838728672f320fc65b7da9d02977e5fd5d0bf3038380b15c211440' - 'db27d494be852b020f71da44c88bfd93b514871b761f4220c1dd683f48ca9dd485f20bd2c37b993e27e9de185303bdbfbaa95d0881a4cacdb34b3541c57fc07b' - 'fdf991dc49f88e5dc6be356f0c78875797015c556e75096ec46716f6527a2512a1a97f5ddca541ccee673a40c19f4445823ef8b3bcb95396c1591856d6a5bc24' + 'b0533d333e6e4cc3bc83daf6bd7fc21b530597fff392a642616d788f8ebf74e23e0943633948a30f519c205e0a83ec2cd80be5c1c1489f8a375f7d65ba6b21cb' + 'a35c95f7fe245c44e175efb2fc8d3a8596c859a189e636f324795ba733b2f8faabe909a9e030cbb39134284ad8465faa66d5addce43898c54bf08f138560074b' + 'b084f3aad1330edd9e41f2b4e4d193112d5c7ce9c795db4ad76e9a832fb9db147a46aec8a91b759365f4c1c363d740cebc0932d0596e93d8b0fef431eb7d43d2' '7ad5be75ee422dda3b80edd2eb614d8a9181e2c8228cd68b3881e2fb95953bf2dea6cbe7900ce1013c9de89b2802574b7b24869fc5d7a95d3cc3112c4d27063a' '4a8b324aee4cccf3a512ad04ce1a272d14e5b05c8de90feb82075f55ea3845948d817e1b0c6f298f5816834ddd3e5ce0a0e2619866289f3c1ab8fd2f35f04f44' '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' - '600a373e26f7755f5a4c7cbc84d713cd8670cacf8891ec00e728818622a312cef3d2073a656dcda50e05ae8b2fdfe103b4ae5b6a2fe8387c3fc2674402c426dc' + '41d00af3409e8ae91aa0423ef73a5d4c5ed4ba4e2244ef37d8b8a3c8d4e379c26e45fef21274d8e2c795ef545a3212b735fc1b5b5a8b6338c8a72ca29c5167c0' 'SKIP' - 'c6e758931e599199db07276a51b204a4030e0da80f08df60783278cf3d4d3ee6c0c280cc1788ca024cdf2043a39dd527e2205dd678368097b68240a7e80b931c' - '3e0852e188549e60fa35b70e82740d5124936688d5f5ff0314c4e555ad9cc4c7688c56b5949baa8fd67ede22a579019919b09091b59eafac60409fdf18105af5' - 'f80538cfb1af660a3dc2a8bf31ada1132d24d81064b347419d221417ad8e0e949431ef277b22fee771b6f9d43abf47d3e6a92ce4f5928a6cc4f25f0b628ba02a' - 'e09ef9f021515474d41a3cb3d11b88a133db012b322a604cc6597b675d9b98c96dbd5cc447426f053bcb00598d640f9ba0651d1496762cf39ee3f698b03b0416' - 'f0573b49e4184ddcac6e273c46a63439dfcea7ca0b7a232bf35fb22979bf593fdb18f6dbe243505a22dd94b465c22f2a92cab13d159d76aa330f9a4cf3f17971' - '56f20c4f0683e9a2d0936fe0669449485043431d8b77fcbdec30bad88349db8ed7d1286af5f3ad4732561533e716b0df6faa094d7a5b9a84acfea756d3139ac0' - 'a5f73c34912393bdf49cde6dd4e99d16f6a95a267e9384a5bc33633d89a0669a3dac49fdf3efb43aa0e477d520fcb577d826f3a2907f11d1d7584ca9e2d90faa' - '155b2b44d320a2605473c95ffb6664ba34ba806f8e53f951f2471adb45f0f6e18f04e409b31620c4fa096090916a4f1af69a3d7e467395a2845d4c0657927891' - '9b6f5fbc5738e1d83caad3328d2cc9bfc7e60a1a09a9eaaffb739952e13f630c029bb3472f7b4385fa52bd6953fd7e7492a44258d5b4baf30f81c99c71965b9a' - 'd32f7808c35cb58d7218c4cfe42d0967ee0975346827580b3fd34c1a45a975560b276cec909954d27a6feff23f4364b8a802501a03f46ac8e6b61f16910cb784' - 'b6b39a2fdc5963611806d387866edab43eb52c591b05d92e0ed887657d43383ddfc2e088b7063bd6586ff872203fdbf0348fecc2c1f673134a8cc5112a1d4179' - '79da6491df96d8bc13edc2bd071b8859a7f915a72244992869e3be44c3118fd3421d9fff4fe6c858895ad8c19dcc02d8d3b458dc6f3efbae3120693708af31b4' - '1d0626f6e95ffe71dbbf281167d312a8acfc300930b39e80ef7771a2b65091e974e2ec703d463d8fc16d36472f5f5deb28b77d854c0e96685d31e42040d18f6d' - 'a4d72cdcddc3f43f27e0d415e1d8ce45bc552ee07d29b566cd8128715daf8267f549968434ca6a949b39aed8bbd6b8790f65f7f4641d8008d1b856d8f1a8ee94' + '8a12b4477f716214266b83785335515bc0d1b1ee5c728803945e0db613caca2df02939a681716cbb51039f9a003c7e7048d882271691fd8c20f273a4a8b78f01' + '47838b54f76595fd0dda8699bccf55aeefbe9031da965b50fadf2a8f8bb34c2e12b8c4b29cca5f6e6b3ce2704464dc1966565185641ab1b64ce2575591a79de7' + '067ed33621353496c19b88746b9b1ab875e8a1bde3954f4aa4e8c353389e0d15551e4edaa173e98f8dfe48877b7edec40abc68f423511dcaf5db81d998560acf' + 'cec08c029509c6c07f1addb6ac1338b61ded296eac5dd3d66449429090ae0743a09cf93d8da46082784e463ee44d42fea669d362cec8ef36aa0527a0a20f1271' + '4cd1491b69a130f7e0a2bf93c542f962e50ed2b727a96b71bfe5c2444db1abf5dba559135feecc3c02e122f717a71982d73f7432fefa9da309ce2406add591e5' + '796e6808297a9e037c9a8912d796347f83d2c17e0162920a792216e3d6ef0e860a93c1a2c41797f1fa59cbbcaa2ace7a088ebc36dcb699ee17b95a47e39f2dda' + '41a5f8d2fd1d82fac38afb8b15631d35d9a15f779cf60963943af2807b8caf40461e212bd0081b46dd39e08d3a4ad94910700ab4bee8460fe99d725a22f7b1e2' + 'e18ab92d1c4fcc9782ad9fdb456d3be397e17f9ec5e897242ba891c9cbb738bc616981447a7593bb907c5dd231035b000282e0e6f522cd6921a200d3b089aec8' + '85551c55a66885d765808ceb2c7f31cd911ec7c42212a7801883cee35881171de4d26d053d6c62cbec4474c437061e05ac5857b5038e64b7c14e7df3bb5985b1' + 'a690b4ae030fe9657b2629bbe8d38b74415db06f293d0413c74b5ef88f85693f61926ff9b83fbd099ae25a11bf03b9f7cdf947ae2c52434282b3a583b280d78c' + '28d26ca6ffc095cac0574fadb7621ea0674d542deee3bb03d251ee3a6597107002cd24d88850ca9e0a987438c86b4c61b0d146d09f29bf57ca21f04e733b6865' + 'e1b00e33bcdbc663041df21a2fa84743eebaf904204ea9b7458e4dde7bc61b17faa22c09038283e26291458427ebd9a53bf463b1bc8bc28d147d1a186426b232' + 'c3a3ceed29b8513f478cad877507c7d2171453d24346c4d62ebf34c3f35ed13ebce2ca6f7200e97693ea900f504528685fe5b59c641ccfe36bc9bc257106f157' + '073c48fea2989334451b9020e8151c0385b07affcb2bc5f778fd5f9d2d8182e40dcd04edde4d53648c1ed8cea4721afc04267a72e429be3612d2f77f5d0fd459' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - '994d328326ca1e65fc4b1ea26d858e040367112881af4d2f33b953fd138fa44009f898211f84e29e1158ca61bd7080e871933dba4d7e8f084640a02110cfc920' - 'cc8852b089aa24f588ad1af726503ecd1012ad7e1cbc47ea77f03a5f7aecd25306d40f2e16b8a1afeafe7e2e97b6b6840c9f462ed7be358090117e2e024df1bd' - '662e8cc92c2034de247530a981ed24d3d85109e5d0742a9c53c6def9528c151c3177c95992b8d9d1173b64817960ac7c6cb029817fa39cce48d8199823b8271a' - '0baf3c296acac5bd48e5221f360c59f440844066e7a39ee34eab318938ec2e93ad81d274862784a80e1c0fefc60cbb073bd6a4dbcb6884d9f602ade5c854cefc') + '8ed3859b495f88287222bd87927fad795b409541c113784bea933099d10bb62bbf24dd7f847dd47f8742d83d7143d9a0d04642528c2c1d41ef7e0ffde3d4a0b3' + 'f97ec2ad3d919c1a59211dab61be6701e3ebd5647afc725c32365bc083272d770c0ad8be5bf8b43b32905d2d107da822bd1013668a5cf75ec51770e151e4f5f8' + '0555e6099878dabd835284c173a0d3f98d72b37168cc7a5938db5d3639592d8a7b59ab2914f9922dfcd6d678a6bf713a07402dab1c7008182174b7e0ad0a45b6') _kernelname=${pkgbase#linux-libre} _replacesarchkernel=("${_replacesarchkernel[@]/\%/${_kernelname}}") _replacesoldkernels=("${_replacesoldkernels[@]/\%/${_kernelname}}") _replacesoldmodules=("${_replacesoldmodules[@]/\%/${_kernelname}}") -case "${CARCH}" in +case "$CARCH" in i686|x86_64) KARCH=x86;; armv7h) KARCH=arm;; esac prepare() { - cd ${_srcname} + cd $_srcname # add upstream patch - if [ "${_pkgbasever}" != "${_pkgver}" ]; then - patch -p1 -i ../patch-${_pkgbasever}-${_pkgver} + if [ "$_srcbasever" != "$_srcver" ]; then + patch -p1 -i ../patch-$_srcbasever-$_srcver fi - # add Arch Linux kernel patch - if [ -e ../patch-${_pkgver%-*}-${_archpatchver}.patch ] && [ "${CARCH}" != "x86_64" ]; then - patch -p1 -i ../patch-${_pkgver%-*}-${_archpatchver}.patch - fi - - if [ "${CARCH}" = "armv7h" ]; then + if [ "$CARCH" = "armv7h" ]; then # RCN patch (CM3 firmware deblobbed and AUFS/WireGuard removed) # Note: For stability reasons, AUFS has been removed in the RCN patch. # We are supporting AUFS in linux-libre-pck through PCK patch. # See https://wiki.parabola.nu/PCK for further details. - patch -p1 -i ../rcn-libre-${_pkgver%-*}-${rcnrel}.patch + patch -p1 -i ../rcn-libre-${_srcver%-*}-$rcnrel.patch # ALARM patches patch -p1 -i ../0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch @@ -166,19 +156,16 @@ prepare() { install -m644 -t drivers/video/logo \ ../logo_linux_{clut224.ppm,vga16.ppm,mono.pbm} - if [ "${CARCH}" = "x86_64" ]; then + if [ "$CARCH" = "x86_64" ]; then # add linux-hardened patch - patch -p1 -i ../linux-hardened-${_pkgver%-*}.${_hardenedver}.patch - - # https://bugs.archlinux.org/task/56780 - patch -p1 -i ../ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch - - # https://bugs.archlinux.org/task/56711 - patch -p1 -i ../Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch - - # Fix iwd provoking a BUG - patch -p1 -i ../mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch - patch -p1 -i ../ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch + patch -p1 -i ../linux-hardened-${_srcver%-*}.${_hardenedver}.patch + + # Arch's linux-hardened patches + patch -p1 -i ../increase-timeout-in-lspcon_wait_mode.patch + else + # Arch's linux patches + patch -p1 -i ../0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch + patch -p1 -i ../0002-drm-i915-Increase-LSPCON-timeout.patch fi # maintain the TTY over USB disconnects @@ -190,104 +177,101 @@ prepare() { # http://www.fsfla.org/pipermail/linux-libre/2015-November/003202.html patch -p1 -i ../0002-fix-Atmel-maXTouch-touchscreen-support.patch - # append pkgrel to extraversion and empty localversion - sed -e "/^EXTRAVERSION = -gnu/s/-gnu.*/-gnu-${pkgrel}/" \ - -e "/^EXTRAVERSION =/aLOCALVERSION =" \ - -i Makefile + msg2 "Setting version..." + scripts/setlocalversion --save-scmversion + echo "-$pkgrel" > localversion.10-pkgrel + echo "$_kernelname" > localversion.20-pkgname - cp ../config.${CARCH} .config + msg2 "Setting config..." + cp ../config.$CARCH .config make olddefconfig + + make -s kernelrelease > ../version + msg2 "Prepared %s version %s" "$pkgbase" "$(<../version)" } build() { - cd ${_srcname} - - if [ "${CARCH}" = "armv7h" ]; then - make ${MAKEFLAGS} LOCALVERSION= zImage modules dtbs - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - make ${MAKEFLAGS} LOCALVERSION= bzImage modules + cd $_srcname + if [ "$CARCH" = "armv7h" ]; then + make $MAKEFLAGS zImage modules dtbs htmldocs + elif [ "$CARCH" = "x86_64" ] || [ "$CARCH" = "i686" ]; then + make bzImage modules htmldocs fi } _package() { pkgdesc="The ${pkgbase^} kernel and modules with a handful of security features [AppArmor, SMACK, TOMOYO, SELinux, YAMA, Linux-hardened]" - [ ! "${CARCH}" = x86_64 ] && pkgdesc=${pkgdesc/, Linux-hardened} - [ "${pkgbase}" = "linux-libre" ] && groups=('base' 'base-openrc') - depends=('coreutils' 'linux-libre-firmware' 'kmod' 'mkinitcpio>=0.7') + [ ! "$CARCH" = x86_64 ] && pkgdesc=${pkgdesc/, Linux-hardened} + [[ $pkgbase = linux-libre ]] && groups=(base base-openrc) + depends=(coreutils linux-libre-firmware kmod mkinitcpio) optdepends=('crda: to set the correct wireless channels of your country' 'apparmor: to configure and enable mandatory access control for programs' 'tomoyo-utils: to manage tomoyo userspace tools') optdepends_x86_64=('usbctl: deny_new_usb control') - provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}" "LINUX-ABI_VERSION=${_pkgver%%-*}") + provides=("${_replacesarchkernel[@]/%/=${_archpkgver}}" "LINUX-ABI_VERSION=${_srcver%%-*}") conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") - backup=("etc/mkinitcpio.d/${pkgbase}.preset") + backup=("etc/mkinitcpio.d/$pkgbase.preset") install=linux.install - cd ${_srcname} + local kernver="$(<version)" - # get kernel version - _kernver="$(make kernelrelease)" - _basekernel=${_kernver%%-*} - _basekernel=${_basekernel%.*} + cd $_srcname - mkdir -p "${pkgdir}"/{boot,usr/lib/modules} - make INSTALL_MOD_PATH="${pkgdir}/usr" DEPMOD=/doesnt/exist modules_install - if [ "${CARCH}" = "armv7h" ]; then - make LOCALVERSION= INSTALL_DTBS_PATH="${pkgdir}/boot/dtbs/${pkgbase}" dtbs_install - cp arch/$KARCH/boot/zImage "${pkgdir}/boot/vmlinuz-${pkgbase}" - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}" + msg2 "Installing boot image..." + if [ "$CARCH" = "armv7h" ]; then + make INSTALL_DTBS_PATH="$pkgdir/boot/dtbs/$pkgbase" dtbs_install + cp arch/$KARCH/boot/zImage "$pkgdir/boot/vmlinuz-$pkgbase" + elif [ "$CARCH" = "x86_64" ] || [ "$CARCH" = "i686" ]; then + install -Dm644 "$(make -s image_name)" "$pkgdir/boot/vmlinuz-$pkgbase" fi - # make room for external modules - local _extramodules="extramodules-${_basekernel}${_kernelname}" - ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules" + msg2 "Installing modules..." + local modulesdir="$pkgdir/usr/lib/modules/$kernver" + mkdir -p "$modulesdir" + make INSTALL_MOD_PATH="$pkgdir/usr" modules_install - # add real version for building modules and running depmod from hook - echo "${_kernver}" | - install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version" + # a place for external modules, + # with version file for building modules and running depmod from hook + local extramodules="extramodules$_kernelname" + local extradir="$pkgdir/usr/lib/modules/$extramodules" + install -Dt "$extradir" -m644 ../version + ln -sr "$extradir" "$modulesdir/extramodules" # remove build and source links - rm "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build} - - # now we call depmod... - depmod -b "${pkgdir}/usr" -F System.map "${_kernver}" - - if [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - # add vmlinux - install -Dt "${pkgdir}/usr/lib/modules/${_kernver}/build" -m644 vmlinux - fi + rm "$modulesdir"/{source,build} + msg2 "Installing hooks..." # sed expression for following substitutions - if [ "${CARCH}" = "armv7h" ]; then - local _subst=" - s|/boot/vmlinuz-%PKGBASE%|${_kernver}|g - s|%PKGBASE%|${pkgbase}|g - s|%KERNVER%|${_kernver}|g - s|%EXTRAMODULES%|${_extramodules}|g + if [ "$CARCH" = "armv7h" ]; then + local subst=" + s|/boot/vmlinuz-%PKGBASE%|$kernver|g + s|%PKGBASE%|$pkgbase|g + s|%KERNVER%|$kernver|g + s|%EXTRAMODULES%|$extramodules|g " - elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then - local _subst=" - s|%PKGBASE%|${pkgbase}|g - s|%KERNVER%|${_kernver}|g - s|%EXTRAMODULES%|${_extramodules}|g + else + local subst=" + s|%PKGBASE%|$pkgbase|g + s|%KERNVER%|$kernver|g + s|%EXTRAMODULES%|$extramodules|g " fi # hack to allow specifying an initially nonexisting install file - sed "${_subst}" "${startdir}/${install}" > "${startdir}/${install}.pkg" - true && install=${install}.pkg - - # install mkinitcpio preset file - sed "${_subst}" ../linux.preset | - install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" - - # install pacman hooks - sed "${_subst}" ../60-linux.hook | - install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook" - sed "${_subst}" ../90-linux.hook | - install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook" + sed "$subst" "$startdir/$install" > "$startdir/$install.pkg" + true && install=$install.pkg + + # fill in mkinitcpio preset and pacman hooks + sed "$subst" ../linux.preset | install -Dm644 /dev/stdin \ + "$pkgdir/etc/mkinitcpio.d/$pkgbase.preset" + sed "$subst" ../60-linux.hook | install -Dm644 /dev/stdin \ + "$pkgdir/usr/share/libalpm/hooks/60-$pkgbase.hook" + sed "$subst" ../90-linux.hook | install -Dm644 /dev/stdin \ + "$pkgdir/usr/share/libalpm/hooks/90-$pkgbase.hook" + + msg2 "Fixing permissions..." + chmod -Rc u=rwX,go=rX "$pkgdir" } _package-headers() { @@ -295,91 +279,104 @@ _package-headers() { provides=("${_replacesarchkernel[@]/%/-headers=${_archpkgver}}") conflicts=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") replaces=("${_replacesarchkernel[@]/%/-headers}" "${_replacesoldkernels[@]/%/-headers}") - - cd ${_srcname} - local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build" - - install -Dt "${_builddir}" -m644 Makefile .config Module.symvers - install -Dt "${_builddir}/kernel" -m644 kernel/Makefile - - mkdir "${_builddir}/.tmp_versions" - cp -t "${_builddir}" -a include scripts + local builddir="$pkgdir/usr/lib/modules/$(<version)/build" - install -Dt "${_builddir}/arch/${KARCH}" -m644 arch/${KARCH}/Makefile - install -Dt "${_builddir}/arch/${KARCH}/kernel" -m644 arch/${KARCH}/kernel/asm-offsets.s + cd $_srcname - if [[ ${CARCH} = i686 ]]; then - install -t "${_builddir}/arch/${KARCH}" -m644 arch/${KARCH}/Makefile_32.cpu + msg2 "Installing build files..." + install -Dt "$builddir" -m644 Makefile .config Module.symvers System.map vmlinux + install -Dt "$builddir/kernel" -m644 kernel/Makefile + install -Dt "$builddir/arch/$KARCH" -m644 arch/$KARCH/Makefile + if [[ $CARCH = i686 ]]; then + install -Dt "$builddir/arch/$KARCH" -m644 arch/$KARCH/Makefile_32.cpu fi + cp -t "$builddir" -a scripts - cp -t "${_builddir}/arch/${KARCH}" -a arch/${KARCH}/include - - install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h - install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h + # add objtool for external module building and enabled VALIDATION_STACK option + if [[ -e tools/objtool/objtool ]]; then + install -Dt "$builddir/tools/objtool" tools/objtool/objtool + fi - # http://bugs.archlinux.org/task/13146 - install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h + # add xfs and shmem for aufs building + mkdir -p "$builddir"/{fs/xfs,mm} - # http://bugs.archlinux.org/task/20402 - install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h - install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h - install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h + # ??? + mkdir "$builddir/.tmp_versions" - # add xfs and shmem for aufs building - mkdir -p "${_builddir}"/{fs/xfs,mm} + msg2 "Installing headers..." + cp -t "$builddir" -a include + cp -t "$builddir/arch/$KARCH" -a arch/$KARCH/include + install -Dt "$builddir/arch/$KARCH/kernel" -m644 arch/$KARCH/kernel/asm-offsets.s - # copy in Kconfig files - find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \; + install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h + install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h - # add objtool for external module building and enabled VALIDATION_STACK option - if [[ -e tools/objtool/objtool ]]; then - install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool - fi + # http://bugs.archlinux.org/task/13146 + install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h - # remove unneeded architectures - local _arch - for _arch in "${_builddir}"/arch/*/; do - [[ ${_arch} == */${KARCH}/ ]] && continue - rm -r "${_arch}" + # http://bugs.archlinux.org/task/20402 + install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h + install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h + install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h + + msg2 "Installing KConfig files..." + find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \; + + msg2 "Removing unneeded architectures..." + local arch + for arch in "$builddir"/arch/*/; do + [[ $arch = */$KARCH/ ]] && continue + echo "Removing $(basename "$arch")" + rm -r "$arch" done - # remove files already in linux-docs package - rm -r "${_builddir}/Documentation" - - # parabola changes + msg2 "Removing documentation..." + rm -r "$builddir/Documentation" + + # Parabola changes # - # since we don't want to diverge too much from arch's pkgbuild, we'll + # since we don't want to diverge too much from Arch's PKGBUILD, we'll # start marking our changes as such - if [ "${CARCH}" = "armv7h" ]; then + if [ "$CARCH" = "armv7h" ]; then for i in dove exynos omap2; do - mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-${i}" - cp -a arch/${KARCH}/mach-${i}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/mach-${i}/" + mkdir -p "$pkgdir/usr/lib/modules/$kernver/build/arch/$KARCH/mach-$i" + cp -a arch/$KARCH/mach-$i/include "$pkgdir/usr/lib/modules/$kernver/build/arch/$KARCH/mach-$i/" done for i in omap orion samsung versatile; do - mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-${i}" - cp -a arch/${KARCH}/plat-${i}/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/plat-${i}/" + mkdir -p "$pkgdir/usr/lib/modules/$kernver/build/arch/$KARCH/plat-$i" + cp -a arch/$KARCH/plat-$i/include "$pkgdir/usr/lib/modules/$kernver/build/arch/$KARCH/plat-$i/" done fi - # end of parabola changes - - # remove now broken symlinks - find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete - - # Fix permissions - chmod -R u=rwX,go=rX "${_builddir}" - - # strip scripts directory - local _binary _strip - while read -rd '' _binary; do - case "$(file -bi "${_binary}")" in - *application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so) - *application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a) - *application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries - *) continue ;; + # end of Parabola changes + + msg2 "Removing broken symlinks..." + find -L "$builddir" -type l -printf 'Removing %P\n' -delete + + msg2 "Removing loose objects..." + find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete + + msg2 "Stripping build tools..." + local file + while read -rd '' file; do + case "$(file -bi "$file")" in + application/x-sharedlib\;*) # Libraries (.so) + strip -v $STRIP_SHARED "$file" ;; + application/x-archive\;*) # Libraries (.a) + strip -v $STRIP_STATIC "$file" ;; + application/x-executable\;*) # Binaries + strip -v $STRIP_BINARIES "$file" ;; + application/x-pie-executable\;*) # Relocatable binaries + strip -v $STRIP_SHARED "$file" ;; esac - /usr/bin/strip ${_strip} "${_binary}" - done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null) + done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0) + + msg2 "Adding symlink..." + mkdir -p "$pkgdir/usr/src" + ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase-$pkgver" + + msg2 "Fixing permissions..." + chmod -Rc u=rwX,go=rX "$pkgdir" } _package-docs() { @@ -387,22 +384,40 @@ _package-docs() { provides=("${_replacesarchkernel[@]/%/-docs=${_archpkgver}}") conflicts=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") replaces=("${_replacesarchkernel[@]/%/-docs}" "${_replacesoldkernels[@]/%/-docs}") + + local builddir="$pkgdir/usr/lib/modules/$(<version)/build" + + cd $_srcname + + msg2 "Installing documentation..." + mkdir -p "$builddir" + cp -t "$builddir" -a Documentation + + msg2 "Removing doctrees..." + rm -r "$builddir/Documentation/output/.doctrees" - cd ${_srcname} - local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build" + msg2 "Moving HTML docs..." + local src dst + while read -rd '' src; do + dst="$builddir/Documentation/${src#$builddir/Documentation/output/}" + mkdir -p "${dst%/*}" + mv "$src" "$dst" + rmdir -p --ignore-fail-on-non-empty "${src%/*}" + done < <(find "$builddir/Documentation/output" -type f -print0) - mkdir -p "${_builddir}" - cp -t "${_builddir}" -a Documentation + msg2 "Adding symlink..." + mkdir -p "$pkgdir/usr/share/doc" + ln -sr "$builddir/Documentation" "$pkgdir/usr/share/doc/$pkgbase" - # Fix permissions - chmod -R u=rwX,go=rX "${_builddir}" + msg2 "Fixing permissions..." + chmod -Rc u=rwX,go=rX "$pkgdir" } -pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs") -for _p in ${pkgname[@]}; do - eval "package_${_p}() { - $(declare -f "_package${_p#${pkgbase}}") - _package${_p#${pkgbase}} +pkgname=("$pkgbase" "$pkgbase-headers" "$pkgbase-docs") +for _p in "${pkgname[@]}"; do + eval "package_$_p() { + $(declare -f "_package${_p#$pkgbase}") + _package${_p#$pkgbase} }" done diff --git a/kernels/linux-libre-xtreme/Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch b/kernels/linux-libre-xtreme/Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch deleted file mode 100644 index 78f97b2dd..000000000 --- a/kernels/linux-libre-xtreme/Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch +++ /dev/null @@ -1,242 +0,0 @@ -From b7438d9dd645801027ab11470850033da0521338 Mon Sep 17 00:00:00 2001 -Message-Id: <b7438d9dd645801027ab11470850033da0521338.1527290717.git.jan.steffens@gmail.com> -In-Reply-To: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com> -References: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com> -From: Jani Nikula <jani.nikula@intel.com> -Date: Wed, 16 May 2018 11:01:10 +0300 -Subject: [PATCH 3/3] Revert "drm/i915/edp: Allow alternate fixed mode for eDP - if available." - -This reverts commit dc911f5bd8aacfcf8aabd5c26c88e04c837a938e. - -Per the report, no matter what display mode you select with xrandr, the -i915 driver will always select the alternate fixed mode. For the -reporter this means that the display will always run at 40Hz which is -quite annoying. This may be due to the mode comparison. - -But there are some other potential issues. The choice of alt_fixed_mode -seems dubious. It's the first non-preferred mode, but there are no -guarantees that the only difference would be refresh rate. Similarly, -there may be more than one preferred mode in the probed modes list, and -the commit changes the preferred mode selection to choose the last one -on the list instead of the first. - -(Note that the probed modes list is the raw, unfiltered, unsorted list -of modes from drm_add_edid_modes(), not the pretty result after a -drm_helper_probe_single_connector_modes() call.) - -Finally, we already have eerily similar code in place to find the -downclock mode for DRRS that seems like could be reused here. - -Back to the drawing board. - -Note: This is a hand-crafted revert due to conflicts. If it fails to -backport, please just try reverting the original commit directly. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105469 -Reported-by: Rune Petersen <rune@megahurts.dk> -Reported-by: Mark Spencer <n7u4722r35@ynzlx.anonbox.net> -Fixes: dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP if available.") -Cc: Clint Taylor <clinton.a.taylor@intel.com> -Cc: David Weinehall <david.weinehall@linux.intel.com> -Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> -Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> -Cc: Jani Nikula <jani.nikula@intel.com> -Cc: Chris Wilson <chris@chris-wilson.co.uk> -Cc: Jim Bride <jim.bride@linux.intel.com> -Cc: Jani Nikula <jani.nikula@linux.intel.com> -Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> -Cc: intel-gfx@lists.freedesktop.org -Cc: <stable@vger.kernel.org> # v4.14+ -Signed-off-by: Jani Nikula <jani.nikula@intel.com> -Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> -Link: https://patchwork.freedesktop.org/patch/msgid/20180516080110.22770-1-jani.nikula@intel.com ---- - drivers/gpu/drm/i915/intel_dp.c | 38 ++++-------------------------- - drivers/gpu/drm/i915/intel_drv.h | 2 -- - drivers/gpu/drm/i915/intel_dsi.c | 2 +- - drivers/gpu/drm/i915/intel_dvo.c | 2 +- - drivers/gpu/drm/i915/intel_lvds.c | 3 +-- - drivers/gpu/drm/i915/intel_panel.c | 6 ----- - 6 files changed, 8 insertions(+), 45 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 79521da5d11d..de0d0f83551e 100644 ---- a/drivers/gpu/drm/i915/intel_dp.c -+++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1584,23 +1584,6 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp, - return bpp; - } - --static bool intel_edp_compare_alt_mode(struct drm_display_mode *m1, -- struct drm_display_mode *m2) --{ -- bool bres = false; -- -- if (m1 && m2) -- bres = (m1->hdisplay == m2->hdisplay && -- m1->hsync_start == m2->hsync_start && -- m1->hsync_end == m2->hsync_end && -- m1->htotal == m2->htotal && -- m1->vdisplay == m2->vdisplay && -- m1->vsync_start == m2->vsync_start && -- m1->vsync_end == m2->vsync_end && -- m1->vtotal == m2->vtotal); -- return bres; --} -- - bool - intel_dp_compute_config(struct intel_encoder *encoder, - struct intel_crtc_state *pipe_config, -@@ -1647,16 +1630,8 @@ intel_dp_compute_config(struct intel_encoder *encoder, - pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON; - - if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) { -- struct drm_display_mode *panel_mode = -- intel_connector->panel.alt_fixed_mode; -- struct drm_display_mode *req_mode = &pipe_config->base.mode; -- -- if (!intel_edp_compare_alt_mode(req_mode, panel_mode)) -- panel_mode = intel_connector->panel.fixed_mode; -- -- drm_mode_debug_printmodeline(panel_mode); -- -- intel_fixed_panel_mode(panel_mode, adjusted_mode); -+ intel_fixed_panel_mode(intel_connector->panel.fixed_mode, -+ adjusted_mode); - - if (INTEL_GEN(dev_priv) >= 9) { - int ret; -@@ -5821,7 +5796,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, - struct drm_i915_private *dev_priv = to_i915(dev); - struct drm_connector *connector = &intel_connector->base; - struct drm_display_mode *fixed_mode = NULL; -- struct drm_display_mode *alt_fixed_mode = NULL; - struct drm_display_mode *downclock_mode = NULL; - bool has_dpcd; - struct drm_display_mode *scan; -@@ -5876,14 +5850,13 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, - } - intel_connector->edid = edid; - -- /* prefer fixed mode from EDID if available, save an alt mode also */ -+ /* prefer fixed mode from EDID if available */ - list_for_each_entry(scan, &connector->probed_modes, head) { - if ((scan->type & DRM_MODE_TYPE_PREFERRED)) { - fixed_mode = drm_mode_duplicate(dev, scan); - downclock_mode = intel_dp_drrs_init( - intel_connector, fixed_mode); -- } else if (!alt_fixed_mode) { -- alt_fixed_mode = drm_mode_duplicate(dev, scan); -+ break; - } - } - -@@ -5920,8 +5893,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, - pipe_name(pipe)); - } - -- intel_panel_init(&intel_connector->panel, fixed_mode, alt_fixed_mode, -- downclock_mode); -+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode); - intel_connector->panel.backlight.power = intel_edp_backlight_power; - intel_panel_setup_backlight(connector, pipe); - -diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h -index 30f791f89d64..9b75b82a2956 100644 ---- a/drivers/gpu/drm/i915/intel_drv.h -+++ b/drivers/gpu/drm/i915/intel_drv.h -@@ -264,7 +264,6 @@ struct intel_encoder { - - struct intel_panel { - struct drm_display_mode *fixed_mode; -- struct drm_display_mode *alt_fixed_mode; - struct drm_display_mode *downclock_mode; - - /* backlight */ -@@ -1720,7 +1719,6 @@ void intel_overlay_reset(struct drm_i915_private *dev_priv); - /* intel_panel.c */ - int intel_panel_init(struct intel_panel *panel, - struct drm_display_mode *fixed_mode, -- struct drm_display_mode *alt_fixed_mode, - struct drm_display_mode *downclock_mode); - void intel_panel_fini(struct intel_panel *panel); - void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode, -diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c -index f67d321376e4..551bf1c14093 100644 ---- a/drivers/gpu/drm/i915/intel_dsi.c -+++ b/drivers/gpu/drm/i915/intel_dsi.c -@@ -1851,7 +1851,7 @@ void intel_dsi_init(struct drm_i915_private *dev_priv) - connector->display_info.width_mm = fixed_mode->width_mm; - connector->display_info.height_mm = fixed_mode->height_mm; - -- intel_panel_init(&intel_connector->panel, fixed_mode, NULL, NULL); -+ intel_panel_init(&intel_connector->panel, fixed_mode, NULL); - intel_panel_setup_backlight(connector, INVALID_PIPE); - - intel_dsi_add_properties(intel_connector); -diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c -index 754baa00bea9..05bd65e37cb5 100644 ---- a/drivers/gpu/drm/i915/intel_dvo.c -+++ b/drivers/gpu/drm/i915/intel_dvo.c -@@ -537,7 +537,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv) - */ - intel_panel_init(&intel_connector->panel, - intel_dvo_get_current_mode(intel_encoder), -- NULL, NULL); -+ NULL); - intel_dvo->panel_wants_dither = true; - } - -diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c -index 7ed6f7b69556..ab5a63f007eb 100644 ---- a/drivers/gpu/drm/i915/intel_lvds.c -+++ b/drivers/gpu/drm/i915/intel_lvds.c -@@ -1128,8 +1128,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv) - out: - mutex_unlock(&dev->mode_config.mutex); - -- intel_panel_init(&intel_connector->panel, fixed_mode, NULL, -- downclock_mode); -+ intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode); - intel_panel_setup_backlight(connector, INVALID_PIPE); - - lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder); -diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c -index fa6831f8c004..c0ac6d6bf8ef 100644 ---- a/drivers/gpu/drm/i915/intel_panel.c -+++ b/drivers/gpu/drm/i915/intel_panel.c -@@ -1924,30 +1924,24 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel) - - int intel_panel_init(struct intel_panel *panel, - struct drm_display_mode *fixed_mode, -- struct drm_display_mode *alt_fixed_mode, - struct drm_display_mode *downclock_mode) - { - intel_panel_init_backlight_funcs(panel); - - panel->fixed_mode = fixed_mode; -- panel->alt_fixed_mode = alt_fixed_mode; - panel->downclock_mode = downclock_mode; - - return 0; - } - - void intel_panel_fini(struct intel_panel *panel) - { - struct intel_connector *intel_connector = - container_of(panel, struct intel_connector, panel); - - if (panel->fixed_mode) - drm_mode_destroy(intel_connector->base.dev, panel->fixed_mode); - -- if (panel->alt_fixed_mode) -- drm_mode_destroy(intel_connector->base.dev, -- panel->alt_fixed_mode); -- - if (panel->downclock_mode) - drm_mode_destroy(intel_connector->base.dev, - panel->downclock_mode); --- -2.17.0 - diff --git a/kernels/linux-libre-xtreme/increase-timeout-in-lspcon_wait_mode.patch b/kernels/linux-libre-xtreme/increase-timeout-in-lspcon_wait_mode.patch new file mode 100644 index 000000000..b94872afe --- /dev/null +++ b/kernels/linux-libre-xtreme/increase-timeout-in-lspcon_wait_mode.patch @@ -0,0 +1,23 @@ +From f9199cfdc7f09601adbb40827077991a1f6bd73a Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Mon, 13 Aug 2018 00:40:29 +0200 +Subject: [PATCH] Increase timeout in lspcon_wait_mode + +From https://bugs.freedesktop.org/attachment.cgi?id=141051&action=edit +--- + drivers/gpu/drm/i915/intel_lspcon.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c +index 8ae8f42f430a1..be1b08f589a46 100644 +--- a/drivers/gpu/drm/i915/intel_lspcon.c ++++ b/drivers/gpu/drm/i915/intel_lspcon.c +@@ -74,7 +74,7 @@ static enum drm_lspcon_mode lspcon_wait_mode(struct intel_lspcon *lspcon, + DRM_DEBUG_KMS("Waiting for LSPCON mode %s to settle\n", + lspcon_mode_name(mode)); + +- wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 100); ++ wait_for((current_mode = lspcon_get_current_mode(lspcon)) == mode, 1000); + if (current_mode != mode) + DRM_ERROR("LSPCON mode hasn't settled\n"); + diff --git a/kernels/linux-libre-xtreme/mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch b/kernels/linux-libre-xtreme/mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch deleted file mode 100644 index 6bc71e6a4..000000000 --- a/kernels/linux-libre-xtreme/mac80211-disable-BHs-preemption-in-ieee80211_tx_cont.patch +++ /dev/null @@ -1,43 +0,0 @@ -From e7441c9274a6a5453e06f4c2b8b5f72eca0a3f17 Mon Sep 17 00:00:00 2001 -From: Denis Kenzior <denkenz@gmail.com> -Date: Tue, 19 Jun 2018 10:39:50 -0500 -Subject: [PATCH] mac80211: disable BHs/preemption in - ieee80211_tx_control_port() - -On pre-emption enabled kernels the following print was being seen due to -missing local_bh_disable/local_bh_enable calls. mac80211 assumes that -pre-emption is disabled in the data path. - - BUG: using smp_processor_id() in preemptible [00000000] code: iwd/517 - caller is __ieee80211_subif_start_xmit+0x144/0x210 [mac80211] - [...] - Call Trace: - dump_stack+0x5c/0x80 - check_preemption_disabled.cold.0+0x46/0x51 - __ieee80211_subif_start_xmit+0x144/0x210 [mac80211] - -Fixes: 911806491425 ("mac80211: Add support for tx_control_port") -Signed-off-by: Denis Kenzior <denkenz@gmail.com> -[commit message rewrite, fixes tag] -Signed-off-by: Johannes Berg <johannes.berg@intel.com> ---- - net/mac80211/tx.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c -index 44b5dfe8727d..fa1f1e63a264 100644 ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -4845,7 +4845,9 @@ int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev, - skb_reset_network_header(skb); - skb_reset_mac_header(skb); - -+ local_bh_disable(); - __ieee80211_subif_start_xmit(skb, skb->dev, flags); -+ local_bh_enable(); - - return 0; - } --- -2.18.0 - |