From c493f8d453705e7a77e7a94b2b245a5076131535 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: May 02 2018 19:35:24 +0000 Subject: Linux v4.16.7 --- diff --git a/0001-Temporarily-work-around-gcc-aliasing-warning-error.patch b/0001-Temporarily-work-around-gcc-aliasing-warning-error.patch deleted file mode 100644 index 24302d2..0000000 --- a/0001-Temporarily-work-around-gcc-aliasing-warning-error.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 991b5e95d4fe7778c8f5e7d7f478d01134d51ca7 Mon Sep 17 00:00:00 2001 -From: Laura Abbott -Date: Wed, 14 Mar 2018 14:20:02 -0700 -Subject: [PATCH] Temporarily work around gcc aliasing warning/error - -Signed-off-by: Laura Abbott ---- - tools/lib/str_error_r.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/tools/lib/str_error_r.c b/tools/lib/str_error_r.c -index d6d65537b0d9..c0ede4f6adae 100644 ---- a/tools/lib/str_error_r.c -+++ b/tools/lib/str_error_r.c -@@ -21,7 +21,8 @@ - char *str_error_r(int errnum, char *buf, size_t buflen) - { - int err = strerror_r(errnum, buf, buflen); -+ void *temp = buf; - if (err) -- snprintf(buf, buflen, "INTERNAL ERROR: strerror_r(%d, %p, %zd)=%d", errnum, buf, buflen, err); -+ snprintf(buf, buflen, "INTERNAL ERROR: strerror_r(%d, %p, %zd)=%d", errnum, temp, buflen, err); - return buf; - } --- -2.16.2 - diff --git a/Revert-the-random-series-for-4.16.4.patch b/Revert-the-random-series-for-4.16.4.patch index 2970025..f410fd3 100644 --- a/Revert-the-random-series-for-4.16.4.patch +++ b/Revert-the-random-series-for-4.16.4.patch @@ -1,120 +1,7 @@ -From 4b97692c181f44717a5cf940fe1e6451c974f4b4 Mon Sep 17 00:00:00 2001 +From 5744a0927df22f46e4b7f134b3dfb405fdfcf6ce Mon Sep 17 00:00:00 2001 From: Jeremy Cline -Date: Tue, 1 May 2018 18:52:14 -0400 -Subject: [PATCH 1/4] Revert "random: add new ioctl RNDRESEEDCRNG" - -This reverts commit e21e58679d3e9db0258106ffd3c8db76e66c5e6e. - -Signed-off-by: Jeremy Cline ---- - drivers/char/random.c | 13 +------------ - include/uapi/linux/random.h | 3 --- - 2 files changed, 1 insertion(+), 15 deletions(-) - -diff --git a/drivers/char/random.c b/drivers/char/random.c -index 38729baed6ee..b3571a1c5fb7 100644 ---- a/drivers/char/random.c -+++ b/drivers/char/random.c -@@ -429,7 +429,6 @@ struct crng_state primary_crng = { - static int crng_init = 0; - #define crng_ready() (likely(crng_init > 1)) - static int crng_init_cnt = 0; --static unsigned long crng_global_init_time = 0; - #define CRNG_INIT_CNT_THRESH (2*CHACHA20_KEY_SIZE) - static void _extract_crng(struct crng_state *crng, - __u32 out[CHACHA20_BLOCK_WORDS]); -@@ -906,8 +905,7 @@ static void _extract_crng(struct crng_state *crng, - unsigned long v, flags; - - if (crng_ready() && -- (time_after(crng_global_init_time, crng->init_time) || -- time_after(jiffies, crng->init_time + CRNG_RESEED_INTERVAL))) -+ time_after(jiffies, crng->init_time + CRNG_RESEED_INTERVAL)) - crng_reseed(crng, crng == &primary_crng ? &input_pool : NULL); - spin_lock_irqsave(&crng->lock, flags); - if (arch_get_random_long(&v)) -@@ -1740,7 +1738,6 @@ static int rand_initialize(void) - init_std_data(&input_pool); - init_std_data(&blocking_pool); - crng_initialize(&primary_crng); -- crng_global_init_time = jiffies; - - #ifdef CONFIG_NUMA - pool = kcalloc(nr_node_ids, sizeof(*pool), GFP_KERNEL|__GFP_NOFAIL); -@@ -1927,14 +1924,6 @@ static long random_ioctl(struct file *f, unsigned int cmd, unsigned long arg) - input_pool.entropy_count = 0; - blocking_pool.entropy_count = 0; - return 0; -- case RNDRESEEDCRNG: -- if (!capable(CAP_SYS_ADMIN)) -- return -EPERM; -- if (crng_init < 2) -- return -ENODATA; -- crng_reseed(&primary_crng, NULL); -- crng_global_init_time = jiffies - 1; -- return 0; - default: - return -EINVAL; - } -diff --git a/include/uapi/linux/random.h b/include/uapi/linux/random.h -index 26ee91300e3e..c34f4490d025 100644 ---- a/include/uapi/linux/random.h -+++ b/include/uapi/linux/random.h -@@ -35,9 +35,6 @@ - /* Clear the entropy pool and associated counters. (Superuser only.) */ - #define RNDCLEARPOOL _IO( 'R', 0x06 ) - --/* Reseed CRNG. (Superuser only.) */ --#define RNDRESEEDCRNG _IO( 'R', 0x07 ) -- - struct rand_pool_info { - int entropy_count; - int buf_size; --- -2.17.0 - -From 5084e3e3af02cdc4e247e66561215b6b06ccffc8 Mon Sep 17 00:00:00 2001 -From: Jeremy Cline -Date: Tue, 1 May 2018 18:52:17 -0400 -Subject: [PATCH 2/4] Revert "random: crng_reseed() should lock the crng - instance that it is modifying" - -This reverts commit 6efa23d5851f1702a3cddbdde63607ea6588b665. - -Signed-off-by: Jeremy Cline ---- - drivers/char/random.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/char/random.c b/drivers/char/random.c -index b3571a1c5fb7..fda8214543cc 100644 ---- a/drivers/char/random.c -+++ b/drivers/char/random.c -@@ -879,7 +879,7 @@ static void crng_reseed(struct crng_state *crng, struct entropy_store *r) - _crng_backtrack_protect(&primary_crng, buf.block, - CHACHA20_KEY_SIZE); - } -- spin_lock_irqsave(&crng->lock, flags); -+ spin_lock_irqsave(&primary_crng.lock, flags); - for (i = 0; i < 8; i++) { - unsigned long rv; - if (!arch_get_random_seed_long(&rv) && -@@ -889,7 +889,7 @@ static void crng_reseed(struct crng_state *crng, struct entropy_store *r) - } - memzero_explicit(&buf, sizeof(buf)); - crng->init_time = jiffies; -- spin_unlock_irqrestore(&crng->lock, flags); -+ spin_unlock_irqrestore(&primary_crng.lock, flags); - if (crng == &primary_crng && crng_init < 2) { - invalidate_batched_entropy(); - crng_init = 2; --- -2.17.0 - -From f3035506194216b5220be6fd8a2c5666412978a0 Mon Sep 17 00:00:00 2001 -From: Jeremy Cline -Date: Tue, 1 May 2018 18:52:19 -0400 -Subject: [PATCH 3/4] Revert "random: use a different mixing algorithm for +Date: Wed, 2 May 2018 15:16:29 -0400 +Subject: [PATCH 1/2] Revert "random: use a different mixing algorithm for add_device_randomness()" This reverts commit 89b59f050347d376c2ace8b1ceb908a218cfdc2e. @@ -125,12 +12,12 @@ Signed-off-by: Jeremy Cline 1 file changed, 4 insertions(+), 51 deletions(-) diff --git a/drivers/char/random.c b/drivers/char/random.c -index fda8214543cc..d0b2f89e9c6e 100644 +index 8f4e11842c60..aa5b04af86c6 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -786,10 +786,6 @@ static void crng_initialize(struct crng_state *crng) - crng->init_time = jiffies - CRNG_RESEED_INTERVAL - 1; - } +@@ -831,10 +831,6 @@ static void numa_crng_init(void) + static void numa_crng_init(void) {} + #endif -/* - * crng_fast_load() can be called by code in the interrupt service @@ -139,7 +26,7 @@ index fda8214543cc..d0b2f89e9c6e 100644 static int crng_fast_load(const char *cp, size_t len) { unsigned long flags; -@@ -816,51 +812,6 @@ static int crng_fast_load(const char *cp, size_t len) +@@ -861,51 +857,6 @@ static int crng_fast_load(const char *cp, size_t len) return 1; } @@ -191,7 +78,7 @@ index fda8214543cc..d0b2f89e9c6e 100644 static void crng_reseed(struct crng_state *crng, struct entropy_store *r) { unsigned long flags; -@@ -1030,8 +981,10 @@ void add_device_randomness(const void *buf, unsigned int size) +@@ -1089,8 +1040,10 @@ void add_device_randomness(const void *buf, unsigned int size) unsigned long time = random_get_entropy() ^ jiffies; unsigned long flags; @@ -207,10 +94,10 @@ index fda8214543cc..d0b2f89e9c6e 100644 -- 2.17.0 -From fc6be05c0f6503dab8e2c5c69cafda38d9d9417a Mon Sep 17 00:00:00 2001 +From e1b1b5b62740b0e6ea8258a4eb81b2a336538fed Mon Sep 17 00:00:00 2001 From: Jeremy Cline -Date: Tue, 1 May 2018 18:52:20 -0400 -Subject: [PATCH 4/4] Revert "random: fix crng_ready() test" +Date: Wed, 2 May 2018 15:18:03 -0400 +Subject: [PATCH 2/2] Revert "random: fix crng_ready() test" This reverts commit cd8d7a5778a4abf76ee8fe8f1bfcf78976029f8d. @@ -220,19 +107,19 @@ Signed-off-by: Jeremy Cline 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/char/random.c b/drivers/char/random.c -index d0b2f89e9c6e..11c23ca57430 100644 +index aa5b04af86c6..ef05cc685b74 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -427,7 +427,7 @@ struct crng_state primary_crng = { +@@ -428,7 +428,7 @@ struct crng_state primary_crng = { * its value (from 0->1->2). */ static int crng_init = 0; -#define crng_ready() (likely(crng_init > 1)) +#define crng_ready() (likely(crng_init > 0)) static int crng_init_cnt = 0; + static unsigned long crng_global_init_time = 0; #define CRNG_INIT_CNT_THRESH (2*CHACHA20_KEY_SIZE) - static void _extract_crng(struct crng_state *crng, -@@ -793,7 +793,7 @@ static int crng_fast_load(const char *cp, size_t len) +@@ -838,7 +838,7 @@ static int crng_fast_load(const char *cp, size_t len) if (!spin_trylock_irqsave(&primary_crng.lock, flags)) return 0; @@ -241,16 +128,16 @@ index d0b2f89e9c6e..11c23ca57430 100644 spin_unlock_irqrestore(&primary_crng.lock, flags); return 0; } -@@ -855,7 +855,7 @@ static void _extract_crng(struct crng_state *crng, +@@ -913,7 +913,7 @@ static void _extract_crng(struct crng_state *crng, { unsigned long v, flags; - if (crng_ready() && + if (crng_init > 1 && - time_after(jiffies, crng->init_time + CRNG_RESEED_INTERVAL)) + (time_after(crng_global_init_time, crng->init_time) || + time_after(jiffies, crng->init_time + CRNG_RESEED_INTERVAL))) crng_reseed(crng, crng == &primary_crng ? &input_pool : NULL); - spin_lock_irqsave(&crng->lock, flags); -@@ -1141,7 +1141,7 @@ void add_interrupt_randomness(int irq, int irq_flags) +@@ -1200,7 +1200,7 @@ void add_interrupt_randomness(int irq, int irq_flags) fast_mix(fast_pool); add_interrupt_bench(cycles); @@ -259,7 +146,7 @@ index d0b2f89e9c6e..11c23ca57430 100644 if ((fast_pool->count >= 64) && crng_fast_load((char *) fast_pool->pool, sizeof(fast_pool->pool))) { -@@ -2214,7 +2214,7 @@ void add_hwgenerator_randomness(const char *buffer, size_t count, +@@ -2269,7 +2269,7 @@ void add_hwgenerator_randomness(const char *buffer, size_t count, { struct entropy_store *poolp = &input_pool; diff --git a/kernel.spec b/kernel.spec index 6237930..17bfbec 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 302 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 6 +%define stable_update 7 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -506,9 +506,6 @@ Source5000: patch-4.%{base_sublevel}-git%{gitrev}.xz # ongoing complaint, full discussion delayed until ksummit/plumbers Patch002: 0001-iio-Use-event-header-from-kernel-tree.patch -# gcc -Werror=aliasing workaround -Patch003: 0001-Temporarily-work-around-gcc-aliasing-warning-error.patch - %if !%{nopatches} # Git trees. @@ -655,9 +652,6 @@ Patch503: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch # rhbz 1549316 Patch504: ipmi-fixes.patch -# rhbz 1565131 -Patch507: xhci-Fix-Kernel-oops-in-xhci-dbgtty.patch - # rhbz 1514836 Patch508: Bluetooth-btusb-autosuspend-XPS-13-9360-fixes.patch @@ -1913,6 +1907,9 @@ fi # # %changelog +* Wed May 02 2018 Jeremy Cline - 4.16.7-300 +- Linux v4.16.7 + * Tue May 01 2018 Jeremy Cline - 4.16.6-302 - Revert the entire random series from 4.16.4 (rhbz 1572944) diff --git a/mvebu-a37xx-fixes.patch b/mvebu-a37xx-fixes.patch index c4390cc..0c04e8b 100644 --- a/mvebu-a37xx-fixes.patch +++ b/mvebu-a37xx-fixes.patch @@ -1,65 +1,3 @@ -From patchwork Sun Apr 22 12:33:46 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: serial: mvebu-uart: Fix local flags handling on termios update -From: Marc Zyngier -X-Patchwork-Id: 10354521 -Message-Id: <20180422123346.15538-1-marc.zyngier@arm.com> -To: linux-arm-kernel@lists.infradead.org, - linux-kernel@vger.kernel.org -Cc: Gregory CLEMENT , - Allen Yan , - Greg Kroah-Hartman , - Miquel Raynal -Date: Sun, 22 Apr 2018 13:33:46 +0100 - -Commit 68a0db1d7da2 reworked the baud rate selection, but also added -a (not so) subtle change in the way the local flags (c_lflag in the -termios structure) are handled, forcing the new flags to always be the -same as the old ones. - -The reason for that particular change is both obscure and undocumented. -It also completely breaks userspace. Something as trivial as getty is -unusable: - - - Debian GNU/Linux 9 sy-borg ttyMV0 - - sy-borg login: root - root - [timeout] - - Debian GNU/Linux 9 sy-borg ttyMV0 - - -which is quite obvious in retrospect: getty cannot get in control of -the echo mode, is stuck in canonical mode, and times out without ever -seeing anything valid. It also begs the question of how this change was -ever tested. - -The fix is pretty obvious: stop messing with c_lflag, and the world -will be a happier place. - -Cc: stable@vger.kernel.org # 4.15+ -Fixes: 68a0db1d7da2 ("serial: mvebu-uart: add function to change baudrate") -Signed-off-by: Marc Zyngier ---- - drivers/tty/serial/mvebu-uart.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/drivers/tty/serial/mvebu-uart.c b/drivers/tty/serial/mvebu-uart.c -index 750e5645dc85..f503fab1e268 100644 ---- a/drivers/tty/serial/mvebu-uart.c -+++ b/drivers/tty/serial/mvebu-uart.c -@@ -495,7 +495,6 @@ static void mvebu_uart_set_termios(struct uart_port *port, - termios->c_iflag |= old->c_iflag & ~(INPCK | IGNPAR); - termios->c_cflag &= CREAD | CBAUD; - termios->c_cflag |= old->c_cflag & ~(CREAD | CBAUD); -- termios->c_lflag = old->c_lflag; - } - - spin_unlock_irqrestore(&port->lock, flags); From patchwork Sun Mar 25 19:57:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 diff --git a/sources b/sources index b852a33..d5fa949 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (linux-4.16.tar.xz) = ab47849314b177d0eec9dbf261f33972b0d89fb92fb0650130ffa7abc2f36c0fab2d06317dc1683c51a472a9a631573a9b1e7258d6281a2ee189897827f14662 -SHA512 (patch-4.16.6.xz) = 151f3fedfb025f090e0f3d747890366933236b11d1f2bf8794c7d0309f9bb577c01fbfcd6ac073b3c49657543961592c643e896c6a57fe8df6ecde89270d0b36 +SHA512 (patch-4.16.7.xz) = 576c2b520d444e11a9ca45ed3ed03822007ab6ff778a1759aa0f65c96946fe3e169e71d48d11e6d3b8627a99cdc20abfb0c84d7b6c9b0d2afa4d5fee9ed3aa41 diff --git a/xhci-Fix-Kernel-oops-in-xhci-dbgtty.patch b/xhci-Fix-Kernel-oops-in-xhci-dbgtty.patch deleted file mode 100644 index 96fb5e1..0000000 --- a/xhci-Fix-Kernel-oops-in-xhci-dbgtty.patch +++ /dev/null @@ -1,95 +0,0 @@ -From patchwork Fri Apr 13 12:55:34 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: xhci: Fix Kernel oops in xhci dbgtty -From: Mathias Nyman -X-Patchwork-Id: 10340045 -Message-Id: <1523624134-29224-1-git-send-email-mathias.nyman@linux.intel.com> -To: -Cc: , Zhengjun Xing , - "# 4 . 16" , - Mathias Nyman -Date: Fri, 13 Apr 2018 15:55:34 +0300 - -From: Zhengjun Xing - -tty_unregister_driver may be called more than 1 time in some -hotplug cases,it will cause the kernel oops. This patch checked -dbc_tty_driver to make sure it is unregistered only 1 time. - -[ 175.741404] BUG: unable to handle kernel NULL pointer dereference at 0000000000000034 -[ 175.742309] IP: tty_unregister_driver+0x9/0x70 -[ 175.743148] PGD 0 P4D 0 -[ 175.743981] Oops: 0000 [#1] SMP PTI -[ 175.753904] RIP: 0010:tty_unregister_driver+0x9/0x70 -[ 175.754817] RSP: 0018:ffffa8ff831d3bb0 EFLAGS: 00010246 -[ 175.755753] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 -[ 175.756685] RDX: ffff92089c616000 RSI: ffffe64fe1b26080 RDI: 0000000000000000 -[ 175.757608] RBP: ffff92086c988230 R08: 000000006c982701 R09: 00000001801e0016 -[ 175.758533] R10: ffffa8ff831d3b48 R11: ffff92086c982100 R12: ffff92086c98827c -[ 175.759462] R13: ffff92086c988398 R14: 0000000000000060 R15: ffff92089c5e9b40 -[ 175.760401] FS: 0000000000000000(0000) GS:ffff9208a0100000(0000) knlGS:0000000000000000 -[ 175.761334] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -[ 175.762270] CR2: 0000000000000034 CR3: 000000011800a003 CR4: 00000000003606e0 -[ 175.763225] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 -[ 175.764164] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 -[ 175.765091] Call Trace: -[ 175.766014] xhci_dbc_tty_unregister_driver+0x11/0x30 -[ 175.766960] xhci_dbc_exit+0x2a/0x40 -[ 175.767889] xhci_stop+0x57/0x1c0 -[ 175.768824] usb_remove_hcd+0x100/0x250 -[ 175.769708] usb_hcd_pci_remove+0x68/0x130 -[ 175.770574] pci_device_remove+0x3b/0xc0 -[ 175.771435] device_release_driver_internal+0x157/0x230 -[ 175.772343] pci_stop_bus_device+0x74/0xa0 -[ 175.773205] pci_stop_bus_device+0x2b/0xa0 -[ 175.774061] pci_stop_bus_device+0x2b/0xa0 -[ 175.774907] pci_stop_bus_device+0x2b/0xa0 -[ 175.775741] pci_stop_bus_device+0x2b/0xa0 -[ 175.776618] pci_stop_bus_device+0x2b/0xa0 -[ 175.777452] pci_stop_bus_device+0x2b/0xa0 -[ 175.778273] pci_stop_bus_device+0x2b/0xa0 -[ 175.779092] pci_stop_bus_device+0x2b/0xa0 -[ 175.779908] pci_stop_bus_device+0x2b/0xa0 -[ 175.780750] pci_stop_bus_device+0x2b/0xa0 -[ 175.781543] pci_stop_and_remove_bus_device+0xe/0x20 -[ 175.782338] pciehp_unconfigure_device+0xb8/0x160 -[ 175.783128] pciehp_disable_slot+0x4f/0xd0 -[ 175.783920] pciehp_power_thread+0x82/0xa0 -[ 175.784766] process_one_work+0x147/0x3c0 -[ 175.785564] worker_thread+0x4a/0x440 -[ 175.786376] kthread+0xf8/0x130 -[ 175.787174] ? rescuer_thread+0x360/0x360 -[ 175.787964] ? kthread_associate_blkcg+0x90/0x90 -[ 175.788798] ret_from_fork+0x35/0x40 - -Cc: # 4.16 -Fixes: dfba2174dc42 ("usb: xhci: Add DbC support in xHCI driver") -Signed-off-by: Zhengjun Xing -Tested-by: Christian Kellner -Reviewed-by: Christian Kellner -Signed-off-by: Mathias Nyman ---- - drivers/usb/host/xhci-dbgtty.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/drivers/usb/host/xhci-dbgtty.c b/drivers/usb/host/xhci-dbgtty.c -index 48779c4..eb494ec5 100644 ---- a/drivers/usb/host/xhci-dbgtty.c -+++ b/drivers/usb/host/xhci-dbgtty.c -@@ -320,9 +320,11 @@ int xhci_dbc_tty_register_driver(struct xhci_hcd *xhci) - - void xhci_dbc_tty_unregister_driver(void) - { -- tty_unregister_driver(dbc_tty_driver); -- put_tty_driver(dbc_tty_driver); -- dbc_tty_driver = NULL; -+ if (dbc_tty_driver) { -+ tty_unregister_driver(dbc_tty_driver); -+ put_tty_driver(dbc_tty_driver); -+ dbc_tty_driver = NULL; -+ } - } - - static void dbc_rx_push(unsigned long _port)