From ec92e419c17845fdcee4d4314690e357f802ec85 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Dec 11 2017 15:49:39 +0000 Subject: Linux v4.14.5 --- diff --git a/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch b/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch deleted file mode 100644 index 540b925..0000000 --- a/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 37af97ef14c201b1db8dd341aabd262da23e48aa Mon Sep 17 00:00:00 2001 -From: Fedora Kernel Team -Date: Mon, 30 Oct 2017 11:38:27 -0500 -Subject: [PATCH] [PATCH] staging: rtl8822be: fix wrong dma unmap len - -Patch fixes splat: - -r8822be 0000:04:00.0: DMA-API: device driver frees DMA memory with different size -[device address=0x0000000078477000] [map size=4096 bytes] [unmap size=424 bytes] - -Call Trace: - debug_dma_unmap_page+0xa5/0xb0 - ? unmap_single+0x2f/0x40 - _rtl8822be_send_bcn_or_cmd_packet+0x2c5/0x300 [r8822be] - ? _rtl8822be_send_bcn_or_cmd_packet+0x2c5/0x300 [r8822be] - rtl8822b_halmac_cb_write_data_rsvd_page+0x51/0xc0 [r8822be] - _halmac_write_data_rsvd_page+0x22/0x30 [r8822be] - halmac_download_rsvd_page_88xx+0xee/0x1f0 [r8822be] - halmac_dlfw_to_mem_88xx+0x80/0x120 [r8822be] - halmac_download_firmware_88xx.part.47+0x477/0x600 [r8822be] - halmac_download_firmware_88xx+0x32/0x40 [r8822be] - rtl_halmac_dlfw+0x70/0x120 [r8822be] - rtl_halmac_init_hal+0x5f/0x1b0 [r8822be] - rtl8822be_hw_init+0x8a2/0x1040 [r8822be] - -Signed-off-by: Stanislaw Gruszka ---- - drivers/staging/rtlwifi/rtl8822be/fw.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/staging/rtlwifi/rtl8822be/fw.c b/drivers/staging/rtlwifi/rtl8822be/fw.c -index 8e24da1..a2cc548 100644 ---- a/drivers/staging/rtlwifi/rtl8822be/fw.c -+++ b/drivers/staging/rtlwifi/rtl8822be/fw.c -@@ -419,7 +419,7 @@ static bool _rtl8822be_send_bcn_or_cmd_packet(struct ieee80211_hw *hw, - dma_addr = rtlpriv->cfg->ops->get_desc( - hw, (u8 *)pbd_desc, true, HW_DESC_TXBUFF_ADDR); - -- pci_unmap_single(rtlpci->pdev, dma_addr, skb->len, -+ pci_unmap_single(rtlpci->pdev, dma_addr, pskb->len, - PCI_DMA_TODEVICE); - kfree_skb(pskb); - --- -2.13.6 - diff --git a/USB-ulpi-fix-bus-node-lookup.patch b/USB-ulpi-fix-bus-node-lookup.patch deleted file mode 100644 index 835cf2a..0000000 --- a/USB-ulpi-fix-bus-node-lookup.patch +++ /dev/null @@ -1,48 +0,0 @@ -From patchwork Sat Nov 11 15:31:18 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: USB: ulpi: fix bus-node lookup -From: Johan Hovold -X-Patchwork-Id: 10054387 -Message-Id: <20171111153118.16038-1-johan@kernel.org> -To: Heikki Krogerus -Cc: Greg Kroah-Hartman , - linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, - linux-arm-msm@vger.kernel.org, Rob Clark , - Peter Robinson , Johan Hovold , - stable -Date: Sat, 11 Nov 2017 16:31:18 +0100 - -Fix bus-node lookup during registration, which ended up searching the whole -device tree depth-first starting at the parent (or grand parent) rather -than just matching on its children. - -To make things worse, the parent (or grand-parent) node could end being -prematurely freed as well. - -Fixes: ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT") -Reported-by: Peter Robinson -Reported-by: Stephen Boyd -Cc: stable # 4.10 -Signed-off-by: Johan Hovold ---- - drivers/usb/common/ulpi.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c -index 8b351444cc40..9a2ab6751a23 100644 ---- a/drivers/usb/common/ulpi.c -+++ b/drivers/usb/common/ulpi.c -@@ -180,9 +180,9 @@ static int ulpi_of_register(struct ulpi *ulpi) - /* Find a ulpi bus underneath the parent or the grandparent */ - parent = ulpi->dev.parent; - if (parent->of_node) -- np = of_find_node_by_name(parent->of_node, "ulpi"); -+ np = of_get_child_by_name(parent->of_node, "ulpi"); - else if (parent->parent && parent->parent->of_node) -- np = of_find_node_by_name(parent->parent->of_node, "ulpi"); -+ np = of_get_child_by_name(parent->parent->of_node, "ulpi"); - if (!np) - return 0; - diff --git a/arm64-socionext-96b-enablement.patch b/arm64-socionext-96b-enablement.patch index 0a7df3a..721383e 100644 --- a/arm64-socionext-96b-enablement.patch +++ b/arm64-socionext-96b-enablement.patch @@ -1,113 +1,3 @@ -From 58be18a7bbf9dca67f4260ac172a44baa59d0ee9 Mon Sep 17 00:00:00 2001 -From: Ard Biesheuvel -Date: Mon, 21 Aug 2017 10:47:48 +0100 -Subject: arm64: acpi/gtdt: validate CNTFRQ after having enabled the frame - -The ACPI GTDT code validates the CNTFRQ field of each MMIO timer -frame against the CNTFRQ system register of the current CPU, to -ensure that they are equal, which is mandated by the architecture. - -However, reading the CNTFRQ field of a frame is not possible until -the RFRQ bit in the frame's CNTACRn register is set, and doing so -before that willl produce the following error: - - arch_timer: [Firmware Bug]: CNTFRQ mismatch: frame @ 0x00000000e0be0000: (0x00000000), CPU: (0x0ee6b280) - arch_timer: Disabling MMIO timers due to CNTFRQ mismatch - arch_timer: Failed to initialize memory-mapped timer. - -The reason is that the CNTFRQ field is RES0 if access is not enabled. - -So move the validation of CNTFRQ into the loop that iterates over the -timers to find the best frame, but defer it until after we have selected -the best frame, which should also have enabled the RFRQ bit. - -Signed-off-by: Ard Biesheuvel ---- - drivers/clocksource/arm_arch_timer.c | 38 ++++++++++++++++++++---------------- - 1 file changed, 21 insertions(+), 17 deletions(-) - -diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c -index fd4b7f6..14e2419 100644 ---- a/drivers/clocksource/arm_arch_timer.c -+++ b/drivers/clocksource/arm_arch_timer.c -@@ -1268,10 +1268,6 @@ arch_timer_mem_find_best_frame(struct arch_timer_mem *timer_mem) - - iounmap(cntctlbase); - -- if (!best_frame) -- pr_err("Unable to find a suitable frame in timer @ %pa\n", -- &timer_mem->cntctlbase); -- - return best_frame; - } - -@@ -1372,6 +1368,8 @@ static int __init arch_timer_mem_of_init(struct device_node *np) - - frame = arch_timer_mem_find_best_frame(timer_mem); - if (!frame) { -+ pr_err("Unable to find a suitable frame in timer @ %pa\n", -+ &timer_mem->cntctlbase); - ret = -EINVAL; - goto out; - } -@@ -1420,7 +1418,7 @@ arch_timer_mem_verify_cntfrq(struct arch_timer_mem *timer_mem) - static int __init arch_timer_mem_acpi_init(int platform_timer_count) - { - struct arch_timer_mem *timers, *timer; -- struct arch_timer_mem_frame *frame; -+ struct arch_timer_mem_frame *frame, *best_frame = NULL; - int timer_count, i, ret = 0; - - timers = kcalloc(platform_timer_count, sizeof(*timers), -@@ -1432,14 +1430,6 @@ static int __init arch_timer_mem_acpi_init(int platform_timer_count) - if (ret || !timer_count) - goto out; - -- for (i = 0; i < timer_count; i++) { -- ret = arch_timer_mem_verify_cntfrq(&timers[i]); -- if (ret) { -- pr_err("Disabling MMIO timers due to CNTFRQ mismatch\n"); -- goto out; -- } -- } -- - /* - * While unlikely, it's theoretically possible that none of the frames - * in a timer expose the combination of feature we want. -@@ -1448,12 +1438,26 @@ static int __init arch_timer_mem_acpi_init(int platform_timer_count) - timer = &timers[i]; - - frame = arch_timer_mem_find_best_frame(timer); -- if (frame) -- break; -+ if (!best_frame) -+ best_frame = frame; -+ -+ ret = arch_timer_mem_verify_cntfrq(timer); -+ if (ret) { -+ pr_err("Disabling MMIO timers due to CNTFRQ mismatch\n"); -+ goto out; -+ } -+ -+ if (!best_frame) /* implies !frame */ -+ /* -+ * Only complain about missing suitable frames if we -+ * haven't already found one in a previous iteration. -+ */ -+ pr_err("Unable to find a suitable frame in timer @ %pa\n", -+ &timer->cntctlbase); - } - -- if (frame) -- ret = arch_timer_mem_frame_register(frame); -+ if (best_frame) -+ ret = arch_timer_mem_frame_register(best_frame); - out: - kfree(timers); - return ret; --- -cgit v1.1 - From 33d983b5bb2929ae242606925e708092b1dfdd8f Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Sat, 2 Sep 2017 11:01:22 +0100 diff --git a/kernel.spec b/kernel.spec index 044e5a7..8f5d96c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 4 +%define stable_update 5 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -592,9 +592,6 @@ Patch307: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch # https://patchwork.kernel.org/patch/9820417/ Patch310: qcom-msm89xx-fixes.patch -# https://patchwork.kernel.org/patch/10054387/ -Patch311: USB-ulpi-fix-bus-node-lookup.patch - # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ Patch321: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch @@ -636,8 +633,6 @@ Patch619: input-rmi4-remove-the-need-for-artifical-IRQ.patch # Headed upstream Patch621: drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch -Patch623: 0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch - # rhbz 1509461 Patch625: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch @@ -2218,6 +2213,9 @@ fi # # %changelog +* Mon Dec 11 2017 Jeremy Cline - 4.14.5-200 +- Linux v4.14.5 + * Thu Dec 07 2017 Jeremy Cline - 4.14.4-200 - Linux v4.14.4 rebase - Fixes for dwmac-sun8i for A64/Pine64 diff --git a/sources b/sources index f96c1f5..c3b125f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-4.14.tar.xz) = 77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8908ebad12b10ef982c6efbe286364b1544586e715cf38390e483927904d8 SHA512 (perf-man-4.14.tar.gz) = 76a9d8adc284cdffd4b3fbb060e7f9a14109267707ce1d03f4c3239cd70d8d164f697da3a0f90a363fbcac42a61d3c378afbcc2a86f112c501b9cb5ce74ef9f8 -SHA512 (patch-4.14.4.xz) = 9232c7816a92f1499cd2a58417250af18cb519fe1abf7b250f82470b1a931f99cb473951fcba9e9a8ffd7246b63db2054ddaa127b7aaa9632d440be5f6c00111 +SHA512 (patch-4.14.5.xz) = 45a6adcc928babe53dd55a444aaae6280f57f844508a9799aada9f70b9fd6160b92b710986810c422ec3a20740f582acb3040f6d6aa883eecb58bf4c4d5918ca