From 331847bbff5130819785020ff3818fd5c153efcf Mon Sep 17 00:00:00 2001 From: Petr Tesarik Date: Jul 11 2019 09:14:50 +0000 Subject: Delete patches.fixes/s390-setup-fix-early-warning-messages (bsc#1140948). --- diff --git a/patches.fixes/s390-setup-fix-early-warning-messages b/patches.fixes/s390-setup-fix-early-warning-messages deleted file mode 100644 index c75b1b3..0000000 --- a/patches.fixes/s390-setup-fix-early-warning-messages +++ /dev/null @@ -1,104 +0,0 @@ -From: Martin Schwidefsky -Date: Thu, 14 Feb 2019 15:40:56 +0100 -Subject: s390/setup: fix early warning messages -Git-commit: 8727638426b0aea59d7f904ad8ddf483f9234f88 -Patch-mainline: v5.1-rc1 -References: bsc#1051510 - -The setup_lowcore() function creates a new prefix page for the boot CPU. -The PSW mask for the system_call, external interrupt, i/o interrupt and -the program check handler have the DAT bit set in this new prefix page. - -At the time setup_lowcore is called the system still runs without virtual -address translation, the paging_init() function creates the kernel page -table and loads the CR13 with the kernel ASCE. - -Any code between setup_lowcore() and the end of paging_init() that has -a BUG or WARN statement will create a program check that can not be -handled correctly as there is no kernel page table yet. - -To allow early WARN statements initially setup the lowcore with DAT off -and set the DAT bit only after paging_init() has completed. - -Cc: stable@vger.kernel.org -Signed-off-by: Martin Schwidefsky -Acked-by: Petr Tesarik ---- - arch/s390/kernel/setup.c | 32 +++++++++++++++++++++++--------- - 1 file changed, 23 insertions(+), 9 deletions(-) - ---- a/arch/s390/kernel/setup.c -+++ b/arch/s390/kernel/setup.c -@@ -300,7 +300,7 @@ early_param("vmalloc", parse_vmalloc); - - void *restart_stack __section(.data); - --static void __init setup_lowcore(void) -+static void __init setup_lowcore_dat_off(void) - { - struct lowcore *lc; - -@@ -311,19 +311,16 @@ static void __init setup_lowcore(void) - lc = memblock_virt_alloc_low(sizeof(*lc), sizeof(*lc)); - lc->restart_psw.mask = PSW_KERNEL_BITS; - lc->restart_psw.addr = (unsigned long) restart_int_handler; -- lc->external_new_psw.mask = PSW_KERNEL_BITS | -- PSW_MASK_DAT | PSW_MASK_MCHECK; -+ lc->external_new_psw.mask = PSW_KERNEL_BITS | PSW_MASK_MCHECK; - lc->external_new_psw.addr = (unsigned long) ext_int_handler; - lc->svc_new_psw.mask = PSW_KERNEL_BITS | -- PSW_MASK_DAT | PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK; -+ PSW_MASK_IO | PSW_MASK_EXT | PSW_MASK_MCHECK; - lc->svc_new_psw.addr = (unsigned long) system_call; -- lc->program_new_psw.mask = PSW_KERNEL_BITS | -- PSW_MASK_DAT | PSW_MASK_MCHECK; -+ lc->program_new_psw.mask = PSW_KERNEL_BITS | PSW_MASK_MCHECK; - lc->program_new_psw.addr = (unsigned long) pgm_check_handler; - lc->mcck_new_psw.mask = PSW_KERNEL_BITS; - lc->mcck_new_psw.addr = (unsigned long) mcck_int_handler; -- lc->io_new_psw.mask = PSW_KERNEL_BITS | -- PSW_MASK_DAT | PSW_MASK_MCHECK; -+ lc->io_new_psw.mask = PSW_KERNEL_BITS | PSW_MASK_MCHECK; - lc->io_new_psw.addr = (unsigned long) io_int_handler; - lc->clock_comparator = -1ULL; - lc->kernel_stack = ((unsigned long) &init_thread_union) -@@ -391,6 +388,17 @@ static void __init setup_lowcore(void) - lowcore_ptr[0] = lc; - } - -+static void __init setup_lowcore_dat_on(void) -+{ -+ struct lowcore *lc; -+ -+ lc = lowcore_ptr[0]; -+ lc->external_new_psw.mask |= PSW_MASK_DAT; -+ lc->svc_new_psw.mask |= PSW_MASK_DAT; -+ lc->program_new_psw.mask |= PSW_MASK_DAT; -+ lc->io_new_psw.mask |= PSW_MASK_DAT; -+} -+ - static struct resource code_resource = { - .name = "Kernel code", - .flags = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM, -@@ -945,7 +953,7 @@ void __init setup_arch(char **cmdline_p) - #endif - - setup_resources(); -- setup_lowcore(); -+ setup_lowcore_dat_off(); - smp_fill_possible_mask(); - cpu_detect_mhz_feature(); - cpu_init(); -@@ -958,6 +966,12 @@ void __init setup_arch(char **cmdline_p) - */ - paging_init(); - -+ /* -+ * After paging_init created the kernel page table, the new PSWs -+ * in lowcore can now run with DAT enabled. -+ */ -+ setup_lowcore_dat_on(); -+ - /* Setup default console */ - conmode_default(); - set_preferred_console(); diff --git a/series.conf b/series.conf index 8c479e0..7f69b04 100644 --- a/series.conf +++ b/series.conf @@ -45506,7 +45506,6 @@ patches.arch/s390-pci-improve-bar-check patches.arch/s390-pci-map-iov-resources patches.arch/s390-jump_label-Use-jdd-constraint-on-gcc9.patch - patches.fixes/s390-setup-fix-early-warning-messages patches.arch/s390-ism-ignore-some-errors-during-deregistration patches.fixes/0001-s390-vfio_ap-link-the-vfio_ap-devices-to-the-vfio_ap.patch patches.drivers/clocksource-drivers-sun5i-Fail-gracefully-when-clock.patch