From: Greg Kroah-Hartman Date: Fri, 8 May 2020 11:26:58 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v4.4.223~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=464ad41ee2980f317081e28dcc8a9e68794bea9d;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: acpi-pm-s2idle-fix-comment-in-acpi_s2idle_prepare_late.patch cgroup-netclassid-remove-double-cond_resched.patch libbpf-fix-readelf-output-parsing-for-fedora.patch mac80211-add-ieee80211_is_any_nullfunc.patch mm-mremap-add-comment-explaining-the-untagging-behaviour-of-mremap.patch platform-x86-gpd-pocket-fan-fix-error-message-when-temp-limits-are-out-of-range.patch pm-devfreq-add-missing-locking-while-setting-suspend_freq.patch revert-drm-amd-display-setting-the-dig_mode-to-the-correct-value.patch tools-headers-uapi-sync-copy-of-arm64-s-asm-unistd.h-with-the-kernel-sources.patch udp-document-udp_rcv_segment-special-case-for-looped-packets.patch --- diff --git a/queue-5.4/acpi-pm-s2idle-fix-comment-in-acpi_s2idle_prepare_late.patch b/queue-5.4/acpi-pm-s2idle-fix-comment-in-acpi_s2idle_prepare_late.patch new file mode 100644 index 00000000000..f64e91b09ef --- /dev/null +++ b/queue-5.4/acpi-pm-s2idle-fix-comment-in-acpi_s2idle_prepare_late.patch @@ -0,0 +1,34 @@ +From 243a98894dc525ad2fbeb608722fcb682be3186d Mon Sep 17 00:00:00 2001 +From: "Rafael J. Wysocki" +Date: Fri, 20 Mar 2020 15:07:29 +0100 +Subject: ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late() + +From: Rafael J. Wysocki + +commit 243a98894dc525ad2fbeb608722fcb682be3186d upstream. + +Fix a comment in acpi_s2idle_prepare_late() that has become outdated +after commit f0ac20c3f613 ("ACPI: EC: Fix flushing of pending work"). + +Fixes: f0ac20c3f613 ("ACPI: EC: Fix flushing of pending work") +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/sleep.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +--- a/drivers/acpi/sleep.c ++++ b/drivers/acpi/sleep.c +@@ -979,10 +979,7 @@ static int acpi_s2idle_prepare_late(void + + static void acpi_s2idle_sync(void) + { +- /* +- * The EC driver uses the system workqueue and an additional special +- * one, so those need to be flushed too. +- */ ++ /* The EC driver uses special workqueues that need to be flushed. */ + acpi_ec_flush_work(); + acpi_os_wait_events_complete(); /* synchronize Notify handling */ + } diff --git a/queue-5.4/cgroup-netclassid-remove-double-cond_resched.patch b/queue-5.4/cgroup-netclassid-remove-double-cond_resched.patch new file mode 100644 index 00000000000..8f9ec0563a7 --- /dev/null +++ b/queue-5.4/cgroup-netclassid-remove-double-cond_resched.patch @@ -0,0 +1,38 @@ +From 526f3d96b8f83b1b13d73bd0b5c79cc2c487ec8e Mon Sep 17 00:00:00 2001 +From: Jiri Slaby +Date: Mon, 20 Apr 2020 09:04:24 +0200 +Subject: cgroup, netclassid: remove double cond_resched + +From: Jiri Slaby + +commit 526f3d96b8f83b1b13d73bd0b5c79cc2c487ec8e upstream. + +Commit 018d26fcd12a ("cgroup, netclassid: periodically release file_lock +on classid") added a second cond_resched to write_classid indirectly by +update_classid_task. Remove the one in write_classid. + +Signed-off-by: Jiri Slaby +Cc: Dmitry Yakunin +Cc: Konstantin Khlebnikov +Cc: David S. Miller +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + net/core/netclassid_cgroup.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/net/core/netclassid_cgroup.c ++++ b/net/core/netclassid_cgroup.c +@@ -127,10 +127,8 @@ static int write_classid(struct cgroup_s + cs->classid = (u32)value; + + css_task_iter_start(css, 0, &it); +- while ((p = css_task_iter_next(&it))) { ++ while ((p = css_task_iter_next(&it))) + update_classid_task(p, cs->classid); +- cond_resched(); +- } + css_task_iter_end(&it); + + return 0; diff --git a/queue-5.4/libbpf-fix-readelf-output-parsing-for-fedora.patch b/queue-5.4/libbpf-fix-readelf-output-parsing-for-fedora.patch new file mode 100644 index 00000000000..c07047df26e --- /dev/null +++ b/queue-5.4/libbpf-fix-readelf-output-parsing-for-fedora.patch @@ -0,0 +1,55 @@ +From aa915931ac3e53ccf371308e6750da510e3591dd Mon Sep 17 00:00:00 2001 +From: Thadeu Lima de Souza Cascardo +Date: Fri, 13 Dec 2019 07:11:14 -0300 +Subject: libbpf: Fix readelf output parsing for Fedora + +From: Thadeu Lima de Souza Cascardo + +commit aa915931ac3e53ccf371308e6750da510e3591dd upstream. + +Fedora binutils has been patched to show "other info" for a symbol at the +end of the line. This was done in order to support unmaintained scripts +that would break with the extra info. [1] + +[1] https://src.fedoraproject.org/rpms/binutils/c/b8265c46f7ddae23a792ee8306fbaaeacba83bf8 + +This in turn has been done to fix the build of ruby, because of checksec. +[2] Thanks Michael Ellerman for the pointer. + +[2] https://bugzilla.redhat.com/show_bug.cgi?id=1479302 + +As libbpf Makefile is not unmaintained, we can simply deal with either +output format, by just removing the "other info" field, as it always comes +inside brackets. + +Fixes: 3464afdf11f9 (libbpf: Fix readelf output parsing on powerpc with recent binutils) +Reported-by: Justin Forbes +Signed-off-by: Thadeu Lima de Souza Cascardo +Signed-off-by: Alexei Starovoitov +Acked-by: Andrii Nakryiko +Cc: Aurelien Jarno +Link: https://lore.kernel.org/bpf/20191213101114.GA3986@calabresa +Signed-off-by: Greg Kroah-Hartman + +--- + tools/lib/bpf/Makefile | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/tools/lib/bpf/Makefile ++++ b/tools/lib/bpf/Makefile +@@ -145,6 +145,7 @@ PC_FILE := $(addprefix $(OUTPUT),$(PC_F + + GLOBAL_SYM_COUNT = $(shell readelf -s --wide $(BPF_IN_SHARED) | \ + cut -d "@" -f1 | sed 's/_v[0-9]_[0-9]_[0-9].*//' | \ ++ sed 's/\[.*\]//' | \ + awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}' | \ + sort -u | wc -l) + VERSIONED_SYM_COUNT = $(shell readelf -s --wide $(OUTPUT)libbpf.so | \ +@@ -217,6 +218,7 @@ check_abi: $(OUTPUT)libbpf.so + "versioned in $(VERSION_SCRIPT)." >&2; \ + readelf -s --wide $(BPF_IN_SHARED) | \ + cut -d "@" -f1 | sed 's/_v[0-9]_[0-9]_[0-9].*//' | \ ++ sed 's/\[.*\]//' | \ + awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}'| \ + sort -u > $(OUTPUT)libbpf_global_syms.tmp; \ + readelf -s --wide $(OUTPUT)libbpf.so | \ diff --git a/queue-5.4/mac80211-add-ieee80211_is_any_nullfunc.patch b/queue-5.4/mac80211-add-ieee80211_is_any_nullfunc.patch new file mode 100644 index 00000000000..48c25a4ab67 --- /dev/null +++ b/queue-5.4/mac80211-add-ieee80211_is_any_nullfunc.patch @@ -0,0 +1,128 @@ +From 30b2f0be23fb40e58d0ad2caf8702c2a44cda2e1 Mon Sep 17 00:00:00 2001 +From: Thomas Pedersen +Date: Mon, 13 Jan 2020 21:59:40 -0800 +Subject: mac80211: add ieee80211_is_any_nullfunc() + +From: Thomas Pedersen + +commit 30b2f0be23fb40e58d0ad2caf8702c2a44cda2e1 upstream. + +commit 08a5bdde3812 ("mac80211: consider QoS Null frames for STA_NULLFUNC_ACKED") +Fixed a bug where we failed to take into account a +nullfunc frame can be either non-QoS or QoS. It turns out +there is at least one more bug in +ieee80211_sta_tx_notify(), introduced in +commit 7b6ddeaf27ec ("mac80211: use QoS NDP for AP probing"), +where we forgot to check for the QoS variant and so +assumed the QoS nullfunc frame never went out + +Fix this by adding a helper ieee80211_is_any_nullfunc() +which consolidates the check for non-QoS and QoS nullfunc +frames. Replace existing compound conditionals and add a +couple more missing checks for QoS variant. + +Signed-off-by: Thomas Pedersen +Link: https://lore.kernel.org/r/20200114055940.18502-3-thomas@adapt-ip.com +Signed-off-by: Johannes Berg +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/ieee80211.h | 9 +++++++++ + net/mac80211/mlme.c | 2 +- + net/mac80211/rx.c | 8 +++----- + net/mac80211/status.c | 5 ++--- + net/mac80211/tx.c | 2 +- + 5 files changed, 16 insertions(+), 10 deletions(-) + +--- a/include/linux/ieee80211.h ++++ b/include/linux/ieee80211.h +@@ -620,6 +620,15 @@ static inline bool ieee80211_is_qos_null + } + + /** ++ * ieee80211_is_any_nullfunc - check if frame is regular or QoS nullfunc frame ++ * @fc: frame control bytes in little-endian byteorder ++ */ ++static inline bool ieee80211_is_any_nullfunc(__le16 fc) ++{ ++ return (ieee80211_is_nullfunc(fc) || ieee80211_is_qos_nullfunc(fc)); ++} ++ ++/** + * ieee80211_is_bufferable_mmpdu - check if frame is bufferable MMPDU + * @fc: frame control field in little-endian byteorder + */ +--- a/net/mac80211/mlme.c ++++ b/net/mac80211/mlme.c +@@ -2460,7 +2460,7 @@ void ieee80211_sta_tx_notify(struct ieee + if (!ieee80211_is_data(hdr->frame_control)) + return; + +- if (ieee80211_is_nullfunc(hdr->frame_control) && ++ if (ieee80211_is_any_nullfunc(hdr->frame_control) && + sdata->u.mgd.probe_send_count > 0) { + if (ack) + ieee80211_sta_reset_conn_monitor(sdata); +--- a/net/mac80211/rx.c ++++ b/net/mac80211/rx.c +@@ -1450,8 +1450,7 @@ ieee80211_rx_h_check_dup(struct ieee8021 + return RX_CONTINUE; + + if (ieee80211_is_ctl(hdr->frame_control) || +- ieee80211_is_nullfunc(hdr->frame_control) || +- ieee80211_is_qos_nullfunc(hdr->frame_control) || ++ ieee80211_is_any_nullfunc(hdr->frame_control) || + is_multicast_ether_addr(hdr->addr1)) + return RX_CONTINUE; + +@@ -1838,8 +1837,7 @@ ieee80211_rx_h_sta_process(struct ieee80 + * Drop (qos-)data::nullfunc frames silently, since they + * are used only to control station power saving mode. + */ +- if (ieee80211_is_nullfunc(hdr->frame_control) || +- ieee80211_is_qos_nullfunc(hdr->frame_control)) { ++ if (ieee80211_is_any_nullfunc(hdr->frame_control)) { + I802_DEBUG_INC(rx->local->rx_handlers_drop_nullfunc); + + /* +@@ -2319,7 +2317,7 @@ static int ieee80211_drop_unencrypted(st + + /* Drop unencrypted frames if key is set. */ + if (unlikely(!ieee80211_has_protected(fc) && +- !ieee80211_is_nullfunc(fc) && ++ !ieee80211_is_any_nullfunc(fc) && + ieee80211_is_data(fc) && rx->key)) + return -EACCES; + +--- a/net/mac80211/status.c ++++ b/net/mac80211/status.c +@@ -643,8 +643,7 @@ static void ieee80211_report_ack_skb(str + rcu_read_lock(); + sdata = ieee80211_sdata_from_skb(local, skb); + if (sdata) { +- if (ieee80211_is_nullfunc(hdr->frame_control) || +- ieee80211_is_qos_nullfunc(hdr->frame_control)) ++ if (ieee80211_is_any_nullfunc(hdr->frame_control)) + cfg80211_probe_status(sdata->dev, hdr->addr1, + cookie, acked, + info->status.ack_signal, +@@ -1030,7 +1029,7 @@ static void __ieee80211_tx_status(struct + I802_DEBUG_INC(local->dot11FailedCount); + } + +- if ((ieee80211_is_nullfunc(fc) || ieee80211_is_qos_nullfunc(fc)) && ++ if (ieee80211_is_any_nullfunc(fc) && + ieee80211_has_pm(fc) && + ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS) && + !(info->flags & IEEE80211_TX_CTL_INJECTED) && +--- a/net/mac80211/tx.c ++++ b/net/mac80211/tx.c +@@ -297,7 +297,7 @@ ieee80211_tx_h_check_assoc(struct ieee80 + if (unlikely(test_bit(SCAN_SW_SCANNING, &tx->local->scanning)) && + test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) && + !ieee80211_is_probe_req(hdr->frame_control) && +- !ieee80211_is_nullfunc(hdr->frame_control)) ++ !ieee80211_is_any_nullfunc(hdr->frame_control)) + /* + * When software scanning only nullfunc frames (to notify + * the sleep state to the AP) and probe requests (for the diff --git a/queue-5.4/mm-mremap-add-comment-explaining-the-untagging-behaviour-of-mremap.patch b/queue-5.4/mm-mremap-add-comment-explaining-the-untagging-behaviour-of-mremap.patch new file mode 100644 index 00000000000..40bacfa1fe1 --- /dev/null +++ b/queue-5.4/mm-mremap-add-comment-explaining-the-untagging-behaviour-of-mremap.patch @@ -0,0 +1,47 @@ +From b2a84de2a2deb76a6a51609845341f508c518c03 Mon Sep 17 00:00:00 2001 +From: Will Deacon +Date: Wed, 25 Mar 2020 11:13:46 +0000 +Subject: mm/mremap: Add comment explaining the untagging behaviour of mremap() + +From: Will Deacon + +commit b2a84de2a2deb76a6a51609845341f508c518c03 upstream. + +Commit dcde237319e6 ("mm: Avoid creating virtual address aliases in +brk()/mmap()/mremap()") changed mremap() so that only the 'old' address +is untagged, leaving the 'new' address in the form it was passed from +userspace. This prevents the unexpected creation of aliasing virtual +mappings in userspace, but looks a bit odd when you read the code. + +Add a comment justifying the untagging behaviour in mremap(). + +Reported-by: Linus Torvalds +Acked-by: Linus Torvalds +Reviewed-by: Catalin Marinas +Signed-off-by: Will Deacon +Signed-off-by: Catalin Marinas +Signed-off-by: Greg Kroah-Hartman + +--- + mm/mremap.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/mm/mremap.c ++++ b/mm/mremap.c +@@ -606,6 +606,16 @@ SYSCALL_DEFINE5(mremap, unsigned long, a + LIST_HEAD(uf_unmap_early); + LIST_HEAD(uf_unmap); + ++ /* ++ * There is a deliberate asymmetry here: we strip the pointer tag ++ * from the old address but leave the new address alone. This is ++ * for consistency with mmap(), where we prevent the creation of ++ * aliasing mappings in userspace by leaving the tag bits of the ++ * mapping address intact. A non-zero tag will cause the subsequent ++ * range checks to reject the address as invalid. ++ * ++ * See Documentation/arm64/tagged-address-abi.rst for more information. ++ */ + addr = untagged_addr(addr); + + if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) diff --git a/queue-5.4/platform-x86-gpd-pocket-fan-fix-error-message-when-temp-limits-are-out-of-range.patch b/queue-5.4/platform-x86-gpd-pocket-fan-fix-error-message-when-temp-limits-are-out-of-range.patch new file mode 100644 index 00000000000..98465f8e666 --- /dev/null +++ b/queue-5.4/platform-x86-gpd-pocket-fan-fix-error-message-when-temp-limits-are-out-of-range.patch @@ -0,0 +1,38 @@ +From 1d6f8c5bac93cceb2d4ac8e6331050652004d802 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Fri, 6 Mar 2020 10:17:24 +0100 +Subject: platform/x86: GPD pocket fan: Fix error message when temp-limits are out of range + +From: Hans de Goede + +commit 1d6f8c5bac93cceb2d4ac8e6331050652004d802 upstream. + +Commit 1f27dbd8265d ("platform/x86: GPD pocket fan: Allow somewhat +lower/higher temperature limits") changed the module-param sanity check +to accept temperature limits between 20 and 90 degrees celcius. + +But the error message printed when the module params are outside this +range was not updated. This commit updates the error message to match +the new min and max value for the temp-limits. + +Reported-by: Pavel Machek +Signed-off-by: Hans de Goede +Acked-by: Pavel Machek +Signed-off-by: Andy Shevchenko +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/platform/x86/gpd-pocket-fan.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/platform/x86/gpd-pocket-fan.c ++++ b/drivers/platform/x86/gpd-pocket-fan.c +@@ -128,7 +128,7 @@ static int gpd_pocket_fan_probe(struct p + + for (i = 0; i < ARRAY_SIZE(temp_limits); i++) { + if (temp_limits[i] < 20000 || temp_limits[i] > 90000) { +- dev_err(&pdev->dev, "Invalid temp-limit %d (must be between 40000 and 70000)\n", ++ dev_err(&pdev->dev, "Invalid temp-limit %d (must be between 20000 and 90000)\n", + temp_limits[i]); + temp_limits[0] = TEMP_LIMIT0_DEFAULT; + temp_limits[1] = TEMP_LIMIT1_DEFAULT; diff --git a/queue-5.4/pm-devfreq-add-missing-locking-while-setting-suspend_freq.patch b/queue-5.4/pm-devfreq-add-missing-locking-while-setting-suspend_freq.patch new file mode 100644 index 00000000000..a5ef7563e6b --- /dev/null +++ b/queue-5.4/pm-devfreq-add-missing-locking-while-setting-suspend_freq.patch @@ -0,0 +1,87 @@ +From e1e047ace8cef6d143f38c7d769753f133becbe6 Mon Sep 17 00:00:00 2001 +From: Marek Szyprowski +Date: Tue, 12 Nov 2019 11:47:34 +0100 +Subject: PM / devfreq: Add missing locking while setting suspend_freq + +From: Marek Szyprowski + +commit e1e047ace8cef6d143f38c7d769753f133becbe6 upstream. + +Commit 2abb0d5268ae ("PM / devfreq: Lock devfreq in trans_stat_show") +revealed a missing locking while calling devfreq_update_status() function +during suspend/resume cycle. + +Code analysis revealed that devfreq_set_target() function was called +without needed locks held for setting device specific suspend_freq if such +has been defined. This patch fixes that by adding the needed locking, what +fixes following kernel warning on Exynos4412-based OdroidU3 board during +system suspend: + +PM: suspend entry (deep) +Filesystems sync: 0.002 seconds +Freezing user space processes ... (elapsed 0.001 seconds) done. +OOM killer disabled. +Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. +------------[ cut here ]------------ +WARNING: CPU: 2 PID: 1385 at drivers/devfreq/devfreq.c:204 devfreq_update_status+0xc0/0x188 +Modules linked in: +CPU: 2 PID: 1385 Comm: rtcwake Not tainted 5.4.0-rc6-next-20191111 #6848 +Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) +[] (unwind_backtrace) from [] (show_stack+0x10/0x14) +[] (show_stack) from [] (dump_stack+0xb4/0xe0) +[] (dump_stack) from [] (__warn+0xf4/0x10c) +[] (__warn) from [] (warn_slowpath_fmt+0xb0/0xb8) +[] (warn_slowpath_fmt) from [] (devfreq_update_status+0xc0/0x188) +[] (devfreq_update_status) from [] (devfreq_set_target+0xb0/0x15c) +[] (devfreq_set_target) from [] (devfreq_suspend+0x2c/0x64) +[] (devfreq_suspend) from [] (dpm_suspend+0xa4/0x57c) +[] (dpm_suspend) from [] (dpm_suspend_start+0x98/0xa0) +[] (dpm_suspend_start) from [] (suspend_devices_and_enter+0xec/0xc74) +[] (suspend_devices_and_enter) from [] (pm_suspend+0x340/0x410) +[] (pm_suspend) from [] (state_store+0x6c/0xc8) +[] (state_store) from [] (kernfs_fop_write+0x10c/0x228) +[] (kernfs_fop_write) from [] (__vfs_write+0x30/0x1d0) +[] (__vfs_write) from [] (vfs_write+0xa4/0x180) +[] (vfs_write) from [] (ksys_write+0x60/0xd8) +[] (ksys_write) from [] (ret_fast_syscall+0x0/0x28) +Exception stack(0xed3d7fa8 to 0xed3d7ff0) +... +irq event stamp: 9667 +hardirqs last enabled at (9679): [] _raw_spin_unlock_irq+0x20/0x58 +hardirqs last disabled at (9698): [] __schedule+0xd8/0x818 +softirqs last enabled at (9694): [] __do_softirq+0x4fc/0x5fc +softirqs last disabled at (9719): [] irq_exit+0x16c/0x170 +---[ end trace 41ac5b57d046bdbc ]--- +------------[ cut here ]------------ + +Signed-off-by: Marek Szyprowski +Acked-by: Chanwoo Choi +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/devfreq/devfreq.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/devfreq/devfreq.c ++++ b/drivers/devfreq/devfreq.c +@@ -902,7 +902,9 @@ int devfreq_suspend_device(struct devfre + } + + if (devfreq->suspend_freq) { ++ mutex_lock(&devfreq->lock); + ret = devfreq_set_target(devfreq, devfreq->suspend_freq, 0); ++ mutex_unlock(&devfreq->lock); + if (ret) + return ret; + } +@@ -930,7 +932,9 @@ int devfreq_resume_device(struct devfreq + return 0; + + if (devfreq->resume_freq) { ++ mutex_lock(&devfreq->lock); + ret = devfreq_set_target(devfreq, devfreq->resume_freq, 0); ++ mutex_unlock(&devfreq->lock); + if (ret) + return ret; + } diff --git a/queue-5.4/revert-drm-amd-display-setting-the-dig_mode-to-the-correct-value.patch b/queue-5.4/revert-drm-amd-display-setting-the-dig_mode-to-the-correct-value.patch new file mode 100644 index 00000000000..afc8587fc7d --- /dev/null +++ b/queue-5.4/revert-drm-amd-display-setting-the-dig_mode-to-the-correct-value.patch @@ -0,0 +1,40 @@ +From b73b7f48895a6a944a76a2d8cdd7feee72bb1f0b Mon Sep 17 00:00:00 2001 +From: Zhan Liu +Date: Mon, 4 Nov 2019 15:46:56 -0400 +Subject: Revert "drm/amd/display: setting the DIG_MODE to the correct value." + +From: Zhan Liu + +commit b73b7f48895a6a944a76a2d8cdd7feee72bb1f0b upstream. + +This reverts commit 967a3b85bac91c55eff740e61bf270c2732f48b2. + +Reason for revert: Root cause of this issue is found. The workaround is not needed anymore. + +Signed-off-by: Zhan Liu +Reviewed-by: Hersen Wu +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/amd/display/dc/core/dc_link.c | 9 --------- + 1 file changed, 9 deletions(-) + +--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c +@@ -2768,15 +2768,6 @@ void core_link_enable_stream( + CONTROLLER_DP_TEST_PATTERN_VIDEOMODE, + COLOR_DEPTH_UNDEFINED); + +- /* This second call is needed to reconfigure the DIG +- * as a workaround for the incorrect value being applied +- * from transmitter control. +- */ +- if (!dc_is_virtual_signal(pipe_ctx->stream->signal)) +- stream->link->link_enc->funcs->setup( +- stream->link->link_enc, +- pipe_ctx->stream->signal); +- + #ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT + if (pipe_ctx->stream->timing.flags.DSC) { + if (dc_is_dp_signal(pipe_ctx->stream->signal) || diff --git a/queue-5.4/series b/queue-5.4/series index 7ae3822e718..0c771b7ef9c 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -38,3 +38,13 @@ hexagon-define-ioremap_uc.patch alsa-hda-match-both-pci-id-and-ssid-for-driver-blacklist.patch x86-kvm-fix-a-missing-prototypes-vmread_error.patch dma-direct-exclude-dma_direct_map_resource-from-the-min_low_pfn-check.patch +platform-x86-gpd-pocket-fan-fix-error-message-when-temp-limits-are-out-of-range.patch +acpi-pm-s2idle-fix-comment-in-acpi_s2idle_prepare_late.patch +mac80211-add-ieee80211_is_any_nullfunc.patch +cgroup-netclassid-remove-double-cond_resched.patch +libbpf-fix-readelf-output-parsing-for-fedora.patch +mm-mremap-add-comment-explaining-the-untagging-behaviour-of-mremap.patch +revert-drm-amd-display-setting-the-dig_mode-to-the-correct-value.patch +tools-headers-uapi-sync-copy-of-arm64-s-asm-unistd.h-with-the-kernel-sources.patch +udp-document-udp_rcv_segment-special-case-for-looped-packets.patch +pm-devfreq-add-missing-locking-while-setting-suspend_freq.patch diff --git a/queue-5.4/tools-headers-uapi-sync-copy-of-arm64-s-asm-unistd.h-with-the-kernel-sources.patch b/queue-5.4/tools-headers-uapi-sync-copy-of-arm64-s-asm-unistd.h-with-the-kernel-sources.patch new file mode 100644 index 00000000000..0d9519aa21b --- /dev/null +++ b/queue-5.4/tools-headers-uapi-sync-copy-of-arm64-s-asm-unistd.h-with-the-kernel-sources.patch @@ -0,0 +1,42 @@ +From c75bec79fc080039e4575a0f239ea7b111aabe88 Mon Sep 17 00:00:00 2001 +From: Arnaldo Carvalho de Melo +Date: Tue, 11 Feb 2020 15:19:42 -0300 +Subject: tools headers UAPI: Sync copy of arm64's asm/unistd.h with the kernel sources + +From: Arnaldo Carvalho de Melo + +commit c75bec79fc080039e4575a0f239ea7b111aabe88 upstream. + +To get the changes in: + + 3e3c8ca5a351 ("arm64: Move __ARCH_WANT_SYS_CLONE3 definition to uapi headers") + +Silencing this tools/perf/ build warning: + + Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/unistd.h' differs from latest version at 'arch/arm64/include/uapi/asm/unistd.h' + diff -u tools/arch/arm64/include/uapi/asm/unistd.h arch/arm64/include/uapi/asm/unistd.h + +Which will probably end up enabling the use of "clone3" in 'perf trace -e', +haven't checked the build with this change on an arm64 system. + +Cc: Adrian Hunter +Cc: Amanieu d'Antras +Cc: Christian Brauner +Cc: Jiri Olsa +Cc: Namhyung Kim +Signed-off-by: Arnaldo Carvalho de Melo +Signed-off-by: Greg Kroah-Hartman + +--- + tools/arch/arm64/include/uapi/asm/unistd.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/tools/arch/arm64/include/uapi/asm/unistd.h ++++ b/tools/arch/arm64/include/uapi/asm/unistd.h +@@ -19,5 +19,6 @@ + #define __ARCH_WANT_NEW_STAT + #define __ARCH_WANT_SET_GET_RLIMIT + #define __ARCH_WANT_TIME32_SYSCALLS ++#define __ARCH_WANT_SYS_CLONE3 + + #include diff --git a/queue-5.4/udp-document-udp_rcv_segment-special-case-for-looped-packets.patch b/queue-5.4/udp-document-udp_rcv_segment-special-case-for-looped-packets.patch new file mode 100644 index 00000000000..eb9edd1d818 --- /dev/null +++ b/queue-5.4/udp-document-udp_rcv_segment-special-case-for-looped-packets.patch @@ -0,0 +1,44 @@ +From d0208bf4da97f76237300afb83c097de25645de6 Mon Sep 17 00:00:00 2001 +From: Willem de Bruijn +Date: Wed, 29 Jan 2020 15:20:17 -0500 +Subject: udp: document udp_rcv_segment special case for looped packets + +From: Willem de Bruijn + +commit d0208bf4da97f76237300afb83c097de25645de6 upstream. + +Commit 6cd021a58c18a ("udp: segment looped gso packets correctly") +fixes an issue with rare udp gso multicast packets looped onto the +receive path. + +The stable backport makes the narrowest change to target only these +packets, when needed. As opposed to, say, expanding __udp_gso_segment, +which is harder to reason to be free from unintended side-effects. + +But the resulting code is hardly self-describing. +Document its purpose and rationale. + +Signed-off-by: Willem de Bruijn +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + include/net/udp.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/include/net/udp.h ++++ b/include/net/udp.h +@@ -476,6 +476,13 @@ static inline struct sk_buff *udp_rcv_se + if (!inet_get_convert_csum(sk)) + features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; + ++ /* UDP segmentation expects packets of type CHECKSUM_PARTIAL or ++ * CHECKSUM_NONE in __udp_gso_segment. UDP GRO indeed builds partial ++ * packets in udp_gro_complete_segment. As does UDP GSO, verified by ++ * udp_send_skb. But when those packets are looped in dev_loopback_xmit ++ * their ip_summed is set to CHECKSUM_UNNECESSARY. Reset in this ++ * specific case, where PARTIAL is both correct and required. ++ */ + if (skb->pkt_type == PACKET_LOOPBACK) + skb->ip_summed = CHECKSUM_PARTIAL; +