diff options
-rw-r--r-- | Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch | 16 | ||||
-rw-r--r-- | arm64-ACPI-parse-SPCR-table.patch | 596 | ||||
-rw-r--r-- | config-arm-generic | 4 | ||||
-rw-r--r-- | config-arm64 | 3 | ||||
-rw-r--r-- | config-armv7-generic | 1 | ||||
-rw-r--r-- | config-debug | 1 | ||||
-rw-r--r-- | config-generic | 13 | ||||
-rw-r--r-- | config-nodebug | 115 | ||||
-rw-r--r-- | config-x86-generic | 2 | ||||
-rw-r--r-- | config-x86_64-generic | 4 | ||||
-rw-r--r-- | gitrev | 2 | ||||
-rw-r--r-- | kernel.spec | 13 | ||||
-rw-r--r-- | sources | 1 |
13 files changed, 98 insertions, 673 deletions
diff --git a/Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch b/Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch index acf28cf88..7cd4eb574 100644 --- a/Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch +++ b/Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch @@ -1,7 +1,7 @@ -From d4ae417828427de74e9f857f9caa49580aecf1fe Mon Sep 17 00:00:00 2001 +From 3dfb34906e9e57e70bd497ee21e8d59325c841d2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett <matthew.garrett@nebula.com> Date: Fri, 9 Mar 2012 09:28:15 -0500 -Subject: [PATCH 06/20] Restrict /dev/mem and /dev/kmem when module loading is +Subject: [PATCH] Restrict /dev/mem and /dev/kmem when module loading is restricted Allowing users to write to address space makes it possible for the kernel @@ -14,10 +14,10 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> 1 file changed, 6 insertions(+) diff --git a/drivers/char/mem.c b/drivers/char/mem.c -index 53fe675f9bd7..b52c88860532 100644 +index 5bb1985..74ee6a4 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c -@@ -167,6 +167,9 @@ static ssize_t write_mem(struct file *file, const char __user *buf, +@@ -163,6 +163,9 @@ static ssize_t write_mem(struct file *file, const char __user *buf, if (p != *ppos) return -EFBIG; @@ -27,9 +27,9 @@ index 53fe675f9bd7..b52c88860532 100644 if (!valid_phys_addr_range(p, count)) return -EFAULT; -@@ -513,6 +516,9 @@ static ssize_t write_kmem(struct file *file, const char __user *buf, - char *kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ - int err = 0; +@@ -515,6 +518,9 @@ static ssize_t write_kmem(struct file *file, const char __user *buf, + if (!pfn_valid(PFN_DOWN(p))) + return -EIO; + if (secure_modules()) + return -EPERM; @@ -38,5 +38,5 @@ index 53fe675f9bd7..b52c88860532 100644 unsigned long to_write = min_t(unsigned long, count, (unsigned long)high_memory - p); -- -2.4.3 +2.7.4 diff --git a/arm64-ACPI-parse-SPCR-table.patch b/arm64-ACPI-parse-SPCR-table.patch deleted file mode 100644 index ba8a70679..000000000 --- a/arm64-ACPI-parse-SPCR-table.patch +++ /dev/null @@ -1,596 +0,0 @@ -From patchwork Fri Aug 12 11:07:14 2016 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v9,1/4] of/serial: move earlycon early_param handling to serial -From: Aleksey Makarov <aleksey.makarov@linaro.org> -X-Patchwork-Id: 9276727 -Message-Id: <20160812110717.12351-1-aleksey.makarov@linaro.org> -To: "Rafael J . Wysocki" <rjw@rjwysocki.net>, - Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Cc: linux-serial@vger.kernel.org, linux-acpi@vger.kernel.org, - linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - Aleksey Makarov <aleksey.makarov@linaro.org>, - Russell King <linux@arm.linux.org.uk>, Len Brown <lenb@kernel.org>, - Leif Lindholm <leif.lindholm@linaro.org>, - Graeme Gregory <graeme.gregory@linaro.org>, Al Stone <ahs3@redhat.com>, - Christopher Covington <cov@codeaurora.org>, - Yury Norov <ynorov@caviumnetworks.com>, - Peter Hurley <peter@hurleysoftware.com>, - Andy Shevchenko <andy.shevchenko@gmail.com>, - "Zheng, Lv" <lv.zheng@intel.com>, Mark Salter <msalter@redhat.com>, - Kefeng Wang <wangkefeng.wang@huawei.com>, - Rob Herring <robh+dt@kernel.org>, Frank Rowand <frowand.list@gmail.com>, - Jiri Slaby <jslaby@suse.com>, devicetree@vger.kernel.org -Date: Fri, 12 Aug 2016 14:07:14 +0300 - -From: Leif Lindholm <leif.lindholm@linaro.org> - -We have multiple "earlycon" early_param handlers - merge the DT one into -the main earlycon one. It's a cleanup that also will be useful -to defer setting up DT console until ACPI/DT decision is made. - -Rename the exported function to avoid clashing with the function from -arch/microblaze/kernel/prom.c - -Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> -Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org> -Acked-by: Rob Herring <robh@kernel.org> -Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Reviewed-by: Peter Hurley <peter@hurleysoftware.com> -Tested-by: Kefeng Wang <wangkefeng.wang@huawei.com> ---- - drivers/of/fdt.c | 11 +---------- - drivers/tty/serial/earlycon.c | 2 +- - include/linux/of_fdt.h | 3 +++ - 3 files changed, 5 insertions(+), 11 deletions(-) - -diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c -index 55f1b83..741cac53 100644 ---- a/drivers/of/fdt.c -+++ b/drivers/of/fdt.c -@@ -924,7 +924,7 @@ static inline void early_init_dt_check_for_initrd(unsigned long node) - - #ifdef CONFIG_SERIAL_EARLYCON - --static int __init early_init_dt_scan_chosen_serial(void) -+int __init early_init_dt_scan_chosen_stdout(void) - { - int offset; - const char *p, *q, *options = NULL; -@@ -968,15 +968,6 @@ static int __init early_init_dt_scan_chosen_serial(void) - } - return -ENODEV; - } -- --static int __init setup_of_earlycon(char *buf) --{ -- if (buf) -- return 0; -- -- return early_init_dt_scan_chosen_serial(); --} --early_param("earlycon", setup_of_earlycon); - #endif - - /** -diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c -index 067783f..7aae655 100644 ---- a/drivers/tty/serial/earlycon.c -+++ b/drivers/tty/serial/earlycon.c -@@ -209,7 +209,7 @@ static int __init param_setup_earlycon(char *buf) - * don't generate a warning from parse_early_params() in that case - */ - if (!buf || !buf[0]) -- return 0; -+ return early_init_dt_scan_chosen_stdout(); - - err = setup_earlycon(buf); - if (err == -ENOENT || err == -EALREADY) -diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h -index 26c3302..4341f32 100644 ---- a/include/linux/of_fdt.h -+++ b/include/linux/of_fdt.h -@@ -14,6 +14,7 @@ - - #include <linux/types.h> - #include <linux/init.h> -+#include <linux/errno.h> - - /* Definitions used by the flattened device tree */ - #define OF_DT_HEADER 0xd00dfeed /* marker */ -@@ -66,6 +67,7 @@ extern int early_init_dt_scan_chosen(unsigned long node, const char *uname, - int depth, void *data); - extern int early_init_dt_scan_memory(unsigned long node, const char *uname, - int depth, void *data); -+extern int early_init_dt_scan_chosen_stdout(void); - extern void early_init_fdt_scan_reserved_mem(void); - extern void early_init_fdt_reserve_self(void); - extern void early_init_dt_add_memory_arch(u64 base, u64 size); -@@ -94,6 +96,7 @@ extern void early_get_first_memblock_info(void *, phys_addr_t *); - extern u64 of_flat_dt_translate_address(unsigned long node); - extern void of_fdt_limit_memory(int limit); - #else /* CONFIG_OF_FLATTREE */ -+static inline int early_init_dt_scan_chosen_stdout(void) { return -ENODEV; } - static inline void early_init_fdt_scan_reserved_mem(void) {} - static inline void early_init_fdt_reserve_self(void) {} - static inline const char *of_flat_dt_get_machine_name(void) { return NULL; } -From patchwork Thu Aug 11 15:31:39 2016 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v9,2/4] ACPI: parse SPCR and enable matching console -From: Aleksey Makarov <aleksey.makarov@linaro.org> -X-Patchwork-Id: 9275443 -Message-Id: <20160811153152.755-3-aleksey.makarov@linaro.org> -To: "Rafael J . Wysocki" <rjw@rjwysocki.net>, - Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Cc: linux-serial@vger.kernel.org, linux-acpi@vger.kernel.org, - linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - Aleksey Makarov <aleksey.makarov@linaro.org>, - Russell King <linux@arm.linux.org.uk>, Len Brown <lenb@kernel.org>, - Leif Lindholm <leif.lindholm@linaro.org>, - Graeme Gregory <graeme.gregory@linaro.org>, Al Stone <ahs3@redhat.com>, - Christopher Covington <cov@codeaurora.org>, - Yury Norov <ynorov@caviumnetworks.com>, - Peter Hurley <peter@hurleysoftware.com>, - Andy Shevchenko <andy.shevchenko@gmail.com>, - "Zheng, Lv" <lv.zheng@intel.com>, Mark Salter <msalter@redhat.com>, - Kefeng Wang <wangkefeng.wang@huawei.com>, Jiri Slaby <jslaby@suse.com> -Date: Thu, 11 Aug 2016 18:31:39 +0300 - -'ARM Server Base Boot Requiremets' [1] mentions SPCR (Serial Port -Console Redirection Table) [2] as a mandatory ACPI table that -specifies the configuration of serial console. - -Defer initialization of DT earlycon until ACPI/DT decision is made. - -Parse the ACPI SPCR table, setup earlycon if required, -enable specified console. - -Thanks to Peter Hurley for explaining how this should work. - -[1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0044a/index.html -[2] https://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx - -Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org> -Reviewed-by: Peter Hurley <peter@hurleysoftware.com> -Tested-by: Kefeng Wang <wangkefeng.wang@huawei.com> -Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> ---- - drivers/acpi/Kconfig | 3 ++ - drivers/acpi/Makefile | 1 + - drivers/acpi/spcr.c | 111 ++++++++++++++++++++++++++++++++++++++++++ - drivers/tty/serial/earlycon.c | 19 +++++++- - include/linux/acpi.h | 6 +++ - include/linux/serial_core.h | 9 +++- - 6 files changed, 146 insertions(+), 3 deletions(-) - create mode 100644 drivers/acpi/spcr.c - -diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig -index 6cef2d1..4a269f9 100644 ---- a/drivers/acpi/Kconfig -+++ b/drivers/acpi/Kconfig -@@ -77,6 +77,9 @@ config ACPI_DEBUGGER_USER - - endif - -+config ACPI_SPCR_TABLE -+ bool -+ - config ACPI_SLEEP - bool - depends on SUSPEND || HIBERNATION -diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile -index e5ada78..d799593 100644 ---- a/drivers/acpi/Makefile -+++ b/drivers/acpi/Makefile -@@ -81,6 +81,7 @@ obj-$(CONFIG_ACPI_EC_DEBUGFS) += ec_sys.o - obj-$(CONFIG_ACPI_CUSTOM_METHOD)+= custom_method.o - obj-$(CONFIG_ACPI_BGRT) += bgrt.o - obj-$(CONFIG_ACPI_CPPC_LIB) += cppc_acpi.o -+obj-$(CONFIG_ACPI_SPCR_TABLE) += spcr.o - obj-$(CONFIG_ACPI_DEBUGGER_USER) += acpi_dbg.o - - # processor has its own "processor." module_param namespace -diff --git a/drivers/acpi/spcr.c b/drivers/acpi/spcr.c -new file mode 100644 -index 0000000..e8d7bc7 ---- /dev/null -+++ b/drivers/acpi/spcr.c -@@ -0,0 +1,111 @@ -+/* -+ * Copyright (c) 2012, Intel Corporation -+ * Copyright (c) 2015, Red Hat, Inc. -+ * Copyright (c) 2015, 2016 Linaro Ltd. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ */ -+ -+#define pr_fmt(fmt) "ACPI: SPCR: " fmt -+ -+#include <linux/acpi.h> -+#include <linux/console.h> -+#include <linux/kernel.h> -+#include <linux/serial_core.h> -+ -+/** -+ * parse_spcr() - parse ACPI SPCR table and add preferred console -+ * -+ * @earlycon: set up earlycon for the console specified by the table -+ * -+ * For the architectures with support for ACPI, CONFIG_ACPI_SPCR_TABLE may be -+ * defined to parse ACPI SPCR table. As a result of the parsing preferred -+ * console is registered and if @earlycon is true, earlycon is set up. -+ * -+ * When CONFIG_ACPI_SPCR_TABLE is defined, this function should be called -+ * from arch inintialization code as soon as the DT/ACPI decision is made. -+ * -+ */ -+int __init parse_spcr(bool earlycon) -+{ -+ static char opts[64]; -+ struct acpi_table_spcr *table; -+ acpi_size table_size; -+ acpi_status status; -+ char *uart; -+ char *iotype; -+ int baud_rate; -+ int err; -+ -+ if (acpi_disabled) -+ return -ENODEV; -+ -+ status = acpi_get_table_with_size(ACPI_SIG_SPCR, 0, -+ (struct acpi_table_header **)&table, -+ &table_size); -+ -+ if (ACPI_FAILURE(status)) -+ return -ENOENT; -+ -+ if (table->header.revision < 2) { -+ err = -ENOENT; -+ pr_err("wrong table version\n"); -+ goto done; -+ } -+ -+ iotype = table->serial_port.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY ? -+ "mmio" : "io"; -+ -+ switch (table->interface_type) { -+ case ACPI_DBG2_ARM_SBSA_32BIT: -+ iotype = "mmio32"; -+ /* fall through */ -+ case ACPI_DBG2_ARM_PL011: -+ case ACPI_DBG2_ARM_SBSA_GENERIC: -+ case ACPI_DBG2_BCM2835: -+ uart = "pl011"; -+ break; -+ case ACPI_DBG2_16550_COMPATIBLE: -+ case ACPI_DBG2_16550_SUBSET: -+ uart = "uart"; -+ break; -+ default: -+ err = -ENOENT; -+ goto done; -+ } -+ -+ switch (table->baud_rate) { -+ case 3: -+ baud_rate = 9600; -+ break; -+ case 4: -+ baud_rate = 19200; -+ break; -+ case 6: -+ baud_rate = 57600; -+ break; -+ case 7: -+ baud_rate = 115200; -+ break; -+ default: -+ err = -ENOENT; -+ goto done; -+ } -+ -+ snprintf(opts, sizeof(opts), "%s,%s,0x%llx,%d", uart, iotype, -+ table->serial_port.address, baud_rate); -+ -+ pr_info("console: %s\n", opts); -+ -+ if (earlycon) -+ setup_earlycon(opts); -+ -+ err = add_preferred_console(uart, 0, opts + strlen(uart) + 1); -+ -+done: -+ early_acpi_os_unmap_memory((void __iomem *)table, table_size); -+ return err; -+} -diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c -index 7aae655..ea00b9f 100644 ---- a/drivers/tty/serial/earlycon.c -+++ b/drivers/tty/serial/earlycon.c -@@ -21,6 +21,7 @@ - #include <linux/sizes.h> - #include <linux/of.h> - #include <linux/of_fdt.h> -+#include <linux/acpi.h> - - #ifdef CONFIG_FIX_EARLYCON_MEM - #include <asm/fixmap.h> -@@ -199,6 +200,14 @@ int __init setup_earlycon(char *buf) - return -ENOENT; - } - -+/* -+ * When CONFIG_ACPI_SPCR_TABLE is defined, "earlycon" without parameters in -+ * command line does not start DT earlycon immediately, instead it defers -+ * starting it until DT/ACPI decision is made. At that time if ACPI is enabled -+ * call parse_spcr(), else call early_init_dt_scan_chosen_stdout() -+ */ -+bool earlycon_init_is_deferred __initdata; -+ - /* early_param wrapper for setup_earlycon() */ - static int __init param_setup_earlycon(char *buf) - { -@@ -208,8 +217,14 @@ static int __init param_setup_earlycon(char *buf) - * Just 'earlycon' is a valid param for devicetree earlycons; - * don't generate a warning from parse_early_params() in that case - */ -- if (!buf || !buf[0]) -- return early_init_dt_scan_chosen_stdout(); -+ if (!buf || !buf[0]) { -+ if (IS_ENABLED(CONFIG_ACPI_SPCR_TABLE)) { -+ earlycon_init_is_deferred = true; -+ return 0; -+ } else { -+ return early_init_dt_scan_chosen_stdout(); -+ } -+ } - - err = setup_earlycon(buf); - if (err == -ENOENT || err == -EALREADY) -diff --git a/include/linux/acpi.h b/include/linux/acpi.h -index 4d8452c..32407e4 100644 ---- a/include/linux/acpi.h -+++ b/include/linux/acpi.h -@@ -1074,4 +1074,10 @@ void acpi_table_upgrade(void); - static inline void acpi_table_upgrade(void) { } - #endif - -+#ifdef CONFIG_ACPI_SPCR_TABLE -+int parse_spcr(bool earlycon); -+#else -+static inline int parse_spcr(bool earlycon) { return 0; } -+#endif -+ - #endif /*_LINUX_ACPI_H*/ -diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h -index 2f44e20..04b8cfb 100644 ---- a/include/linux/serial_core.h -+++ b/include/linux/serial_core.h -@@ -367,11 +367,18 @@ extern const struct earlycon_id __earlycon_table_end[]; - - #define EARLYCON_DECLARE(_name, fn) OF_EARLYCON_DECLARE(_name, "", fn) - --extern int setup_earlycon(char *buf); - extern int of_setup_earlycon(const struct earlycon_id *match, - unsigned long node, - const char *options); - -+#ifdef CONFIG_SERIAL_EARLYCON -+extern bool earlycon_init_is_deferred __initdata; -+extern int setup_earlycon(char *buf); -+#else -+static const bool earlycon_init_is_deferred; -+static inline int setup_earlycon(char *buf) { return 0; } -+#endif -+ - struct uart_port *uart_get_console(struct uart_port *ports, int nr, - struct console *c); - int uart_parse_earlycon(char *p, unsigned char *iotype, unsigned long *addr, -From patchwork Thu Aug 11 15:31:40 2016 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v9,3/4] ARM64: ACPI: enable ACPI_SPCR_TABLE -From: Aleksey Makarov <aleksey.makarov@linaro.org> -X-Patchwork-Id: 9275457 -Message-Id: <20160811153152.755-4-aleksey.makarov@linaro.org> -To: "Rafael J . Wysocki" <rjw@rjwysocki.net>, - Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Cc: linux-serial@vger.kernel.org, linux-acpi@vger.kernel.org, - linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - Aleksey Makarov <aleksey.makarov@linaro.org>, - Russell King <linux@arm.linux.org.uk>, Len Brown <lenb@kernel.org>, - Leif Lindholm <leif.lindholm@linaro.org>, - Graeme Gregory <graeme.gregory@linaro.org>, Al Stone <ahs3@redhat.com>, - Christopher Covington <cov@codeaurora.org>, - Yury Norov <ynorov@caviumnetworks.com>, - Peter Hurley <peter@hurleysoftware.com>, - Andy Shevchenko <andy.shevchenko@gmail.com>, - "Zheng, Lv" <lv.zheng@intel.com>, Mark Salter <msalter@redhat.com>, - Kefeng Wang <wangkefeng.wang@huawei.com>, - Catalin Marinas <catalin.marinas@arm.com>, - Will Deacon <will.deacon@arm.com> -Date: Thu, 11 Aug 2016 18:31:40 +0300 - -SBBR mentions SPCR as a mandatory ACPI table. So enable it for ARM64 - -Earlycon should be set up as early as possible. ACPI boot tables are -mapped in arch/arm64/kernel/acpi.c:acpi_boot_table_init() that -is called from setup_arch() and that's where we parse SPCR. -So it has to be opted-in per-arch. - -When ACPI_SPCR_TABLE is defined initialization of DT earlycon is -deferred until the DT/ACPI decision is done. Initialize DT earlycon -if ACPI is disabled. - -Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org> -Tested-by: Kefeng Wang <wangkefeng.wang@huawei.com> ---- - arch/arm64/Kconfig | 1 + - arch/arm64/kernel/acpi.c | 11 ++++++++++- - 2 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 69c8787..a54dfc0 100644 ---- a/arch/arm64/Kconfig -+++ b/arch/arm64/Kconfig -@@ -4,6 +4,7 @@ config ARM64 - select ACPI_GENERIC_GSI if ACPI - select ACPI_REDUCED_HARDWARE_ONLY if ACPI - select ACPI_MCFG if ACPI -+ select ACPI_SPCR_TABLE if ACPI - select ARCH_HAS_DEVMEM_IS_ALLOWED - select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI - select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE -diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c -index 3e4f1a4..252a6d9 100644 ---- a/arch/arm64/kernel/acpi.c -+++ b/arch/arm64/kernel/acpi.c -@@ -24,6 +24,7 @@ - #include <linux/memblock.h> - #include <linux/of_fdt.h> - #include <linux/smp.h> -+#include <linux/serial_core.h> - - #include <asm/cputype.h> - #include <asm/cpu_ops.h> -@@ -206,7 +207,7 @@ void __init acpi_boot_table_init(void) - if (param_acpi_off || - (!param_acpi_on && !param_acpi_force && - of_scan_flat_dt(dt_scan_depth1_nodes, NULL))) -- return; -+ goto done; - - /* - * ACPI is disabled at this point. Enable it in order to parse -@@ -226,6 +227,14 @@ void __init acpi_boot_table_init(void) - if (!param_acpi_force) - disable_acpi(); - } -+ -+done: -+ if (acpi_disabled) { -+ if (earlycon_init_is_deferred) -+ early_init_dt_scan_chosen_stdout(); -+ } else { -+ parse_spcr(earlycon_init_is_deferred); -+ } - } - - #ifdef CONFIG_ACPI_APEI -From patchwork Mon Aug 15 13:35:03 2016 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v9,4/4] serial: pl011: add console matching function -From: Aleksey Makarov <aleksey.makarov@linaro.org> -X-Patchwork-Id: 9280971 -Message-Id: <20160815133505.15294-1-aleksey.makarov@linaro.org> -To: "Rafael J . Wysocki" <rjw@rjwysocki.net>, - Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Cc: linux-serial@vger.kernel.org, linux-acpi@vger.kernel.org, - linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, - Aleksey Makarov <aleksey.makarov@linaro.org>, - Russell King <linux@arm.linux.org.uk>, Len Brown <lenb@kernel.org>, - Leif Lindholm <leif.lindholm@linaro.org>, - Graeme Gregory <graeme.gregory@linaro.org>, Al Stone <ahs3@redhat.com>, - Christopher Covington <cov@codeaurora.org>, - Yury Norov <ynorov@caviumnetworks.com>, - Peter Hurley <peter@hurleysoftware.com>, - Andy Shevchenko <andy.shevchenko@gmail.com>, - "Zheng, Lv" <lv.zheng@intel.com>, Mark Salter <msalter@redhat.com>, - Kefeng Wang <wangkefeng.wang@huawei.com>, - Russell King <linux@armlinux.org.uk>, Jiri Slaby <jslaby@suse.com> -Date: Mon, 15 Aug 2016 16:35:03 +0300 - -This patch adds function pl011_console_match() that implements -method match of struct console. It allows to match consoles against -data specified in a string, for example taken from command line or -compiled by ACPI SPCR table handler. - -Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org> -Reviewed-by: Peter Hurley <peter@hurleysoftware.com> -Acked-by: Russell King <rmk+kernel@armlinux.org.uk> ---- - drivers/tty/serial/amba-pl011.c | 55 +++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 55 insertions(+) - -diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index 8a9e213..2f9af8a 100644 ---- a/drivers/tty/serial/amba-pl011.c -+++ b/drivers/tty/serial/amba-pl011.c -@@ -2288,12 +2288,67 @@ static int __init pl011_console_setup(struct console *co, char *options) - return uart_set_options(&uap->port, co, baud, parity, bits, flow); - } - -+/** -+ * pl011_console_match - non-standard console matching -+ * @co: registering console -+ * @name: name from console command line -+ * @idx: index from console command line -+ * @options: ptr to option string from console command line -+ * -+ * Only attempts to match console command lines of the form: -+ * console=pl011,mmio|mmio32,<addr>[,<options>] -+ * console=pl011,0x<addr>[,<options>] -+ * This form is used to register an initial earlycon boot console and -+ * replace it with the amba_console at pl011 driver init. -+ * -+ * Performs console setup for a match (as required by interface) -+ * If no <options> are specified, then assume the h/w is already setup. -+ * -+ * Returns 0 if console matches; otherwise non-zero to use default matching -+ */ -+static int __init pl011_console_match(struct console *co, char *name, int idx, -+ char *options) -+{ -+ unsigned char iotype; -+ unsigned long addr; -+ int i; -+ -+ if (strcmp(name, "pl011") != 0) -+ return -ENODEV; -+ -+ if (uart_parse_earlycon(options, &iotype, &addr, &options)) -+ return -ENODEV; -+ -+ if (iotype != UPIO_MEM && iotype != UPIO_MEM32) -+ return -ENODEV; -+ -+ /* try to match the port specified on the command line */ -+ for (i = 0; i < ARRAY_SIZE(amba_ports); i++) { -+ struct uart_port *port; -+ -+ if (!amba_ports[i]) -+ continue; -+ -+ port = &amba_ports[i]->port; -+ -+ if (port->mapbase != addr) -+ continue; -+ -+ co->index = i; -+ port->cons = co; -+ return pl011_console_setup(co, options); -+ } -+ -+ return -ENODEV; -+} -+ - static struct uart_driver amba_reg; - static struct console amba_console = { - .name = "ttyAMA", - .write = pl011_console_write, - .device = uart_console_device, - .setup = pl011_console_setup, -+ .match = pl011_console_match, - .flags = CON_PRINTBUFFER, - .index = -1, - .data = &amba_reg, diff --git a/config-arm-generic b/config-arm-generic index 7a88c2d02..b2acb68a3 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -236,6 +236,10 @@ CONFIG_ROCKCHIP_EFUSE=m CONFIG_PHY_ROCKCHIP_EMMC=m CONFIG_PHY_ROCKCHIP_DP=m CONFIG_ROCKCHIP_MBOX=y +# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set +# CONFIG_PHY_ROCKCHIP_INNO_USB2 is not set +# CONFIG_PHY_ROCKCHIP_PCIE is not set +# CONFIG_PHY_ROCKCHIP_TYPEC is not set # Tegra CONFIG_TEGRA_MC=y diff --git a/config-arm64 b/config-arm64 index ae98cc5ca..259b8e240 100644 --- a/config-arm64 +++ b/config-arm64 @@ -36,6 +36,7 @@ CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23144=y CONFIG_CAVIUM_ERRATUM_23154=y CONFIG_CAVIUM_ERRATUM_27456=y +CONFIG_FSL_ERRATUM_A008585=y # AMBA / VExpress # CONFIG_RTC_DRV_PL030 is not set @@ -294,7 +295,7 @@ CONFIG_ND_BTT=m CONFIG_ND_BLK=m # CONFIG_PMIC_OPREGION is not set -# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_ALIGN_RODATA is not set CONFIG_DEBUG_SECTION_MISMATCH=y diff --git a/config-armv7-generic b/config-armv7-generic index f1e544ed9..ee6d9c215 100644 --- a/config-armv7-generic +++ b/config-armv7-generic @@ -135,6 +135,7 @@ CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y CONFIG_DEVFREQ_GOV_PERFORMANCE=y CONFIG_DEVFREQ_GOV_POWERSAVE=y CONFIG_DEVFREQ_GOV_USERSPACE=y +# CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 CONFIG_LSM_MMAP_MIN_ADDR=32768 diff --git a/config-debug b/config-debug index a31d9076c..12abb86ab 100644 --- a/config-debug +++ b/config-debug @@ -50,6 +50,7 @@ CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 CONFIG_X86_PTDUMP=y CONFIG_ARM64_PTDUMP=y CONFIG_EFI_PGT_DUMP=y +CONFIG_EFI_TEST=y CONFIG_CAN_DEBUG_DEVICES=y diff --git a/config-generic b/config-generic index 744489577..c524f40d2 100644 --- a/config-generic +++ b/config-generic @@ -1854,13 +1854,13 @@ CONFIG_B43=m CONFIG_B43_SDIO=y CONFIG_B43_BCMA=y CONFIG_B43_BCMA_PIO=y -# CONFIG_B43_DEBUG is not set +CONFIG_B43_DEBUG=y CONFIG_B43_PHY_LP=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_HT=y CONFIG_B43_PHY_G=y CONFIG_B43LEGACY=m -# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y @@ -3227,6 +3227,7 @@ CONFIG_WATCHDOG_CORE=y CONFIG_WATCHDOG_SYSFS=y # CONFIG_WATCHDOG_NOWAYOUT is not set CONFIG_SOFT_WATCHDOG=m +CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set @@ -4423,6 +4424,7 @@ CONFIG_USB_ISIGHTFW=m CONFIG_USB_YUREX=m CONFIG_USB_EZUSB_FX2=m CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_HSIC_USB4604=m # CONFIG_USB_LINK_LAYER_TEST is not set CONFIG_USB_CHAOSKEY=m CONFIG_UCSI=m @@ -4457,6 +4459,7 @@ CONFIG_USB_XUSBATM=m # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set CONFIG_USB_LED_TRIG=y +CONFIG_USB_LEDS_TRIGGER_USBPORT=m CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -4952,6 +4955,7 @@ CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DEBUG_LIST=y CONFIG_DEBUG_SHIRQ=y CONFIG_DEBUG_DEVRES=y +CONFIG_DEBUG_TEST_DRIVER_REMOVE=y CONFIG_DEBUG_RODATA_TEST=y CONFIG_DEBUG_NX_TEST=m CONFIG_DEBUG_SET_MODULE_RONX=y @@ -5270,7 +5274,7 @@ CONFIG_PM_DEBUG=y # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y -# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TEST_SUSPEND=y # CONFIG_PM_OPP is not set # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -5763,6 +5767,8 @@ CONFIG_USBIP_CORE=m CONFIG_USBIP_VHCI_HCD=m CONFIG_USBIP_HOST=m CONFIG_USBIP_VUDC=m +CONFIG_USBIP_VHCI_HC_PORTS=8 +CONFIG_USBIP_VHCI_NR_HCS=1 # CONFIG_USBIP_DEBUG is not set # CONFIG_INTEL_MEI is not set # CONFIG_VT6655 is not set @@ -5838,6 +5844,7 @@ CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y # CONFIG_EXTCON is not set # CONFIG_EXTCON_ADC_JACK is not set +# CONFIG_EXTCON_QCOM_SPMI_MISC is not set # CONFIG_MEMORY is not set CONFIG_PPS=m diff --git a/config-nodebug b/config-nodebug index 4bd461d8f..d5ce9dd0f 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,102 +2,103 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y -# CONFIG_DEBUG_ATOMIC_SLEEP is not set - -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_LOCK_TORTURE_TEST is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_PROVE_RCU is not set +CONFIG_DEBUG_ATOMIC_SLEEP=y + +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_RT_MUTEXES=y +CONFIG_DEBUG_LOCK_ALLOC=y +CONFIG_LOCK_TORTURE_TEST=m +CONFIG_PROVE_LOCKING=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_PROVE_RCU=y # CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_CPUMASK_OFFSTACK=y -# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FAILSLAB is not set -# CONFIG_FAIL_PAGE_ALLOC is not set -# CONFIG_FAIL_MAKE_REQUEST is not set -# CONFIG_FAULT_INJECTION_DEBUG_FS is not set -# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set -# CONFIG_FAIL_IO_TIMEOUT is not set -# CONFIG_FAIL_MMC_REQUEST is not set +CONFIG_FAULT_INJECTION=y +CONFIG_FAILSLAB=y +CONFIG_FAIL_PAGE_ALLOC=y +CONFIG_FAIL_MAKE_REQUEST=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y +CONFIG_FAIL_IO_TIMEOUT=y +CONFIG_FAIL_MMC_REQUEST=y # CONFIG_F2FS_FAULT_INJECTION is not set -# CONFIG_LOCK_STAT is not set +CONFIG_LOCK_STAT=y -# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_DEBUG_STACK_USAGE=y -# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEBUG=y # CONFIG_ACPI_DEBUGGER is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_PI_LIST is not set +CONFIG_DEBUG_SG=y +CONFIG_DEBUG_PI_LIST=y # CONFIG_PAGE_EXTENSION is not set # CONFIG_PAGE_OWNER is not set # CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_OBJECTS is not set +CONFIG_DEBUG_OBJECTS=y # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -# CONFIG_DEBUG_OBJECTS_FREE is not set -# CONFIG_DEBUG_OBJECTS_TIMERS is not set -# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set +CONFIG_DEBUG_OBJECTS_FREE=y +CONFIG_DEBUG_OBJECTS_TIMERS=y +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 CONFIG_X86_PTDUMP=y -# CONFIG_ARM64_PTDUMP is not set -# CONFIG_EFI_PGT_DUMP is not set +CONFIG_ARM64_PTDUMP=y +CONFIG_EFI_PGT_DUMP=y +# CONFIG_EFI_TEST is not set -# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEBUG_DEVICES=y -# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_NOTIFIERS=y -# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_API_DEBUG=y -# CONFIG_MMIOTRACE is not set +CONFIG_MMIOTRACE=y -# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_DEBUG_CREDENTIALS=y # off in both production debug and nodebug builds, # on in rawhide nodebug builds -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y -# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_DEBUG=y # CONFIG_XFS_WARN is not set -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_DEBUG_PERF_USE_VMALLOC=y -# CONFIG_JBD2_DEBUG is not set +CONFIG_JBD2_DEBUG=y -# CONFIG_NFSD_FAULT_INJECTION is not set +CONFIG_NFSD_FAULT_INJECTION=y -# CONFIG_DEBUG_BLK_CGROUP is not set +CONFIG_DEBUG_BLK_CGROUP=y -# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRBD_FAULT_INJECTION=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_CARL9170_DEBUGFS is not set -# CONFIG_IWLWIFI_DEVICE_TRACING is not set +CONFIG_ATH_DEBUG=y +CONFIG_CARL9170_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y # CONFIG_RTLWIFI_DEBUG is not set -# CONFIG_DEBUG_OBJECTS_WORK is not set +CONFIG_DEBUG_OBJECTS_WORK=y -# CONFIG_DMADEVICES_DEBUG is not set +CONFIG_DMADEVICES_DEBUG=y # CONFIG_DMADEVICES_VDEBUG is not set CONFIG_PM_ADVANCED_DEBUG=y -# CONFIG_CEPH_LIB_PRETTYDEBUG is not set -# CONFIG_QUOTA_DEBUG is not set +CONFIG_CEPH_LIB_PRETTYDEBUG=y +CONFIG_QUOTA_DEBUG=y CONFIG_KGDB_KDB=y @@ -105,19 +106,19 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0 CONFIG_KDB_KEYBOARD=y CONFIG_KDB_CONTINUE_CATASTROPHIC=0 -# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y # CONFIG_PERCPU_TEST is not set -# CONFIG_TEST_LIST_SORT is not set +CONFIG_TEST_LIST_SORT=y # CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_WQ_WATCHDOG is not set +CONFIG_WQ_WATCHDOG=y -# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -# CONFIG_DEBUG_KMEMLEAK is not set +CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 # CONFIG_DEBUG_KMEMLEAK_TEST is not set CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y @@ -128,4 +129,4 @@ CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y # CONFIG_SPI_DEBUG is not set -# CONFIG_DEBUG_VM_PGFLAGS is not set +CONFIG_DEBUG_VM_PGFLAGS=y diff --git a/config-x86-generic b/config-x86-generic index a44190bd7..f011f027d 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -380,7 +380,7 @@ CONFIG_SP5100_TCO=m # CONFIG_MEMTEST is not set # CONFIG_DEBUG_TLBFLUSH is not set -# CONFIG_MAXSMP is not set +CONFIG_MAXSMP=y CONFIG_HP_ILO=m diff --git a/config-x86_64-generic b/config-x86_64-generic index 704dc30bd..38c2a1829 100644 --- a/config-x86_64-generic +++ b/config-x86_64-generic @@ -4,6 +4,8 @@ CONFIG_64BIT=y # CONFIG_MK8 is not set # CONFIG_MPSC is not set CONFIG_GENERIC_CPU=y +# Turn this on to see what exciting things we find +CONFIG_VMAP_STACK=y # CONFIG_X86_VSMP is not set CONFIG_X86_UV=y @@ -19,6 +21,8 @@ CONFIG_X86_NUMACHIP=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_MLX_PLATFORM=m + # https://lists.fedoraproject.org/pipermail/kernel/2013-November/004601.html CONFIG_NR_CPUS=1024 CONFIG_PHYSICAL_START=0x1000000 @@ -1 +1 @@ -c8d2bc9bc39ebea8437fd974fdbc21847bb897a3 +21f54ddae449f4bdd9f1498124901d67202243d9 diff --git a/kernel.spec b/kernel.spec index b1b42cc03..fa60f66b3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -6,7 +6,7 @@ Summary: The Linux kernel # For a stable, released kernel, released_kernel should be 1. For rawhide # and/or a kernel built from an rc or git snapshot, released_kernel should # be 0. -%global released_kernel 1 +%global released_kernel 0 # Sign modules on x86. Make sure the config files match this setting if more # architectures are added. @@ -69,7 +69,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 0 # The git snapshot level -%define gitrev 0 +%define gitrev 1 # Set rpm version accordingly %define rpmversion 4.%{upstream_sublevel}.0 %endif @@ -125,7 +125,7 @@ Summary: The Linux kernel # Set debugbuildsenabled to 1 for production (build separate debug kernels) # and 0 for rawhide (all kernels are debug kernels). # See also 'make debug' and 'make release'. -%define debugbuildsenabled 1 +%define debugbuildsenabled 0 # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} @@ -497,9 +497,6 @@ Source5005: kbuild-AFTER_LINK.patch # Standalone patches -# http://www.spinics.net/lists/arm-kernel/msg523359.html -Patch420: arm64-ACPI-parse-SPCR-table.patch - # a tempory patch for QCOM hardware enablement. Will be gone by end of 2016/F-26 GA Patch421: qcom-QDF2432-tmp-errata.patch @@ -2160,6 +2157,10 @@ fi # # %changelog +* Tue Oct 04 2016 Laura Abbott <labbott@redhat.com> - 4.9.0-0.rc0.git1.1 +- Linux v4.8-1558-g21f54dd +- Reenable debugging options. + * Mon Oct 03 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.8.0-1 - Disable debugging options. - Linux v4.8 @@ -1,2 +1,3 @@ c1af0afbd3df35c1ccdc7a5118cd2d07 linux-4.8.tar.xz 0dad03f586e835d538d3e0d2cbdb9a28 perf-man-4.8.tar.gz +16c84040a62d0127bc02b8cad49910fd patch-4.8-git1.xz |