-From 220405b95e1e2495053516183f13411b6b35a4f7 Mon Sep 17 00:00:00 2001
+From 8b8a0404be36f4c32c8bb1c4bfbd9562eed0d8b8 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 14 Oct 2021 04:57:19 -0400
Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
+++ /dev/null
-From 220405b95e1e2495053516183f13411b6b35a4f7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 14 Oct 2021 04:57:19 -0400
-Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 80c469a0a03763f814715f3d12b6f3964c7423e8 ]
-
-Fix following coccicheck warning:
-./arch/arm/mach-omap2/omap_hwmod.c:753:1-23: WARNING: Function
-for_each_matching_node should have of_node_put() before break
-
-Early exits from for_each_matching_node should decrement the
-node reference counter.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/omap_hwmod.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 9274a484c6a39..f6afd866e4cf9 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -768,8 +768,10 @@ static int _init_clkctrl_providers(void)
-
- for_each_matching_node(np, ti_clkctrl_match_table) {
- ret = _setup_clkctrl_provider(np);
-- if (ret)
-+ if (ret) {
-+ of_node_put(np);
- break;
-+ }
- }
-
- return ret;
---
-2.34.1
-
-From 44b1fb9c3b0bbf0b357318caf598afe7b0f74367 Mon Sep 17 00:00:00 2001
+From 19e428fa01a23f3539c9aadab0ad2a321cc1b926 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 4 Feb 2022 13:57:50 +0100
Subject: ata: libata-core: Disable TRIM on M88V29
+++ /dev/null
-From 44b1fb9c3b0bbf0b357318caf598afe7b0f74367 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Feb 2022 13:57:50 +0100
-Subject: ata: libata-core: Disable TRIM on M88V29
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Zoltán Böszörményi <zboszor@gmail.com>
-
-[ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ]
-
-This device is a CF card, or possibly an SSD in CF form factor.
-It supports NCQ and high speed DMA.
-
-While it also advertises TRIM support, I/O errors are reported
-when the discard mount option fstrim is used. TRIM also fails
-when disabling NCQ and not just as an NCQ command.
-
-TRIM must be disabled for this device.
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 8ec71243cdcca..791374199e227 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -4603,6 +4603,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
-
- /* devices that don't properly handle TRIM commands */
- { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
-+ { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, },
-
- /*
- * As defined, the DRAT (Deterministic Read After Trim) and RZAT
---
-2.34.1
-
-From eb197c9cfffb7e00ef3412c59e1012eb280f92a8 Mon Sep 17 00:00:00 2001
+From 889bb669c99ba77f915cbedf4f8a6b4f86106d1a Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 15:13:25 +0530
Subject: net: macb: Align the dma and coherent dma masks
+++ /dev/null
-From eb197c9cfffb7e00ef3412c59e1012eb280f92a8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 15:13:25 +0530
-Subject: net: macb: Align the dma and coherent dma masks
-
-From: Marc St-Amand <mstamand@ciena.com>
-
-[ Upstream commit 37f7860602b5b2d99fc7465f6407f403f5941988 ]
-
-Single page and coherent memory blocks can use different DMA masks
-when the macb accesses physical memory directly. The kernel is clever
-enough to allocate pages that fit into the requested address width.
-
-When using the ARM SMMU, the DMA mask must be the same for single
-pages and big coherent memory blocks. Otherwise the translation
-tables turn into one big mess.
-
- [ 74.959909] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 74.959989] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
- [ 75.173939] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 75.173955] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
-
-Since using the same DMA mask does not hurt direct 1:1 physical
-memory mappings, this commit always aligns DMA and coherent masks.
-
-Signed-off-by: Marc St-Amand <mstamand@ciena.com>
-Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
-Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
-Tested-by: Conor Dooley <conor.dooley@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/cadence/macb_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
-index b07ea8a26c20a..045ab0ec5ca25 100644
---- a/drivers/net/ethernet/cadence/macb_main.c
-+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -3528,7 +3528,7 @@ static int macb_probe(struct platform_device *pdev)
-
- #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
- if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-- dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
-+ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
- bp->hw_dma_cap |= HW_DMA_CAP_64B;
- }
- #endif
---
-2.34.1
-
-From f33062b65a0eaf079edd757723edcecf472439a2 Mon Sep 17 00:00:00 2001
+From 647627ede7372187b832270bbe3da09f0e235813 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 10:47:17 +0800
Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
+++ /dev/null
-From f33062b65a0eaf079edd757723edcecf472439a2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 10:47:17 +0800
-Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Slark Xiao <slark_xiao@163.com>
-
-[ Upstream commit 8ecbb179286cbc91810c16caeb3396e06305cd0c ]
-
-Dell DW5829e same as DW5821e except the CAT level.
-DW5821e supports CAT16 but DW5829e supports CAT9.
-Also, DW5829e includes normal and eSIM type.
-Please see below test evidence:
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e6 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e4 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e-eSIM Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-Signed-off-by: Slark Xiao <slark_xiao@163.com>
-Acked-by: Bjørn Mork <bjorn@mork.no>
-Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/usb/qmi_wwan.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index 928219ab09128..e8d57954596d2 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -1347,6 +1347,8 @@ static const struct usb_device_id products[] = {
- {QMI_FIXED_INTF(0x413c, 0x81d7, 0)}, /* Dell Wireless 5821e */
- {QMI_FIXED_INTF(0x413c, 0x81d7, 1)}, /* Dell Wireless 5821e preproduction config */
- {QMI_FIXED_INTF(0x413c, 0x81e0, 0)}, /* Dell Wireless 5821e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e4, 0)}, /* Dell Wireless 5829e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e6, 0)}, /* Dell Wireless 5829e */
- {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
- {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
---
-2.34.1
-
tracing-fix-tp_printk-option-related-with-tp_printk_.patch
net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch
net-macb-align-the-dma-and-coherent-dma-masks.patch
-arm-omap2-hwmod-add-of_node_put-before-break.patch-25662
-ata-libata-core-disable-trim-on-m88v29.patch-13162
-tracing-fix-tp_printk-option-related-with-tp_printk_.patch-3779
-net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch-1414
-net-macb-align-the-dma-and-coherent-dma-masks.patch-6161
-From d8caf52d74613897e86e0721198780755695ae3f Mon Sep 17 00:00:00 2001
+From 19581f515b0ade86b1859a5cbad7e759c9172ce1 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 04:54:22 +0900
Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+++ /dev/null
-From d8caf52d74613897e86e0721198780755695ae3f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 04:54:22 +0900
-Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
-
-From: JaeSang Yoo <js.yoo.5b@gmail.com>
-
-[ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ]
-
-The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is
-the same as another kernel parameter "tp_printk". If "tp_printk" setup is
-called before the "tp_printk_stop_on_boot", it will override the latter
-and keep it from being set.
-
-This is similar to other kernel parameter issues, such as:
- Commit 745a600cf1a6 ("um: console: Ignore console= option")
-or init/do_mounts.c:45 (setup function of "ro" kernel param)
-
-Fix it by checking for a "_" right after the "tp_printk" and if that
-exists do not process the parameter.
-
-Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com
-
-Signed-off-by: JaeSang Yoo <jsyoo5b@gmail.com>
-[ Fixed up change log and added space after if condition ]
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/trace/trace.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index fd8e1ec39c270..c1da2a4a629a1 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -230,6 +230,10 @@ __setup("trace_clock=", set_trace_boot_clock);
-
- static int __init set_tracepoint_printk(char *str)
- {
-+ /* Ignore the "tp_printk_stop_on_boot" param */
-+ if (*str == '_')
-+ return 0;
-+
- if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
- tracepoint_printk = 1;
- return 1;
---
-2.34.1
-
-From 02860673a4f8a327498497daccb3fa92853b705b Mon Sep 17 00:00:00 2001
+From 6849708275934881e3e3e06043eb31c685329ce6 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 14 Oct 2021 04:57:19 -0400
Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
+++ /dev/null
-From 02860673a4f8a327498497daccb3fa92853b705b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 14 Oct 2021 04:57:19 -0400
-Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 80c469a0a03763f814715f3d12b6f3964c7423e8 ]
-
-Fix following coccicheck warning:
-./arch/arm/mach-omap2/omap_hwmod.c:753:1-23: WARNING: Function
-for_each_matching_node should have of_node_put() before break
-
-Early exits from for_each_matching_node should decrement the
-node reference counter.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/omap_hwmod.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index a8269f0a87ced..47c55351df033 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -754,8 +754,10 @@ static int __init _init_clkctrl_providers(void)
-
- for_each_matching_node(np, ti_clkctrl_match_table) {
- ret = _setup_clkctrl_provider(np);
-- if (ret)
-+ if (ret) {
-+ of_node_put(np);
- break;
-+ }
- }
-
- return ret;
---
-2.34.1
-
-From 1e7965060d1458376ac53edfea996a29560be627 Mon Sep 17 00:00:00 2001
+From 8b25c3ac3b55eab5da8d7fb55d8a62e50a5185aa Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:52 +0000
Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
index b8dc4dbb391b6..4252119bfd901 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -41,6 +41,12 @@ secmon_reserved_alt: secmon@5000000 {
+@@ -41,6 +41,12 @@
no-map;
};
+++ /dev/null
-From 1e7965060d1458376ac53edfea996a29560be627 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:52 +0000
-Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 76577c9137456febb05b0e17d244113196a98968 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Suggested-by: Mateusz Krzak <kszaquitto@gmail.com>
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-2-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index b8dc4dbb391b6..4252119bfd901 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -41,6 +41,12 @@ secmon_reserved_alt: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From fbe22dad1cdc1449cdb2c71236f4c809f427657c Mon Sep 17 00:00:00 2001
+From 65bdc8b78fcd403073648558cb6062590fc82fce Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 4 Feb 2022 13:57:50 +0100
Subject: ata: libata-core: Disable TRIM on M88V29
+++ /dev/null
-From fbe22dad1cdc1449cdb2c71236f4c809f427657c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Feb 2022 13:57:50 +0100
-Subject: ata: libata-core: Disable TRIM on M88V29
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Zoltán Böszörményi <zboszor@gmail.com>
-
-[ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ]
-
-This device is a CF card, or possibly an SSD in CF form factor.
-It supports NCQ and high speed DMA.
-
-While it also advertises TRIM support, I/O errors are reported
-when the discard mount option fstrim is used. TRIM also fails
-when disabling NCQ and not just as an NCQ command.
-
-TRIM must be disabled for this device.
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 46eacba2613b8..33d3728f36222 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -4613,6 +4613,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
-
- /* devices that don't properly handle TRIM commands */
- { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
-+ { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, },
-
- /*
- * As defined, the DRAT (Deterministic Read After Trim) and RZAT
---
-2.34.1
-
-From be12debc82038f3a6d3932c38a3a5e49aa22bb2b Mon Sep 17 00:00:00 2001
+From 2550ef21bcb16b1279d925d5939c869d3be9fadf Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 21:56:34 +0800
Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
+++ /dev/null
-From be12debc82038f3a6d3932c38a3a5e49aa22bb2b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 21:56:34 +0800
-Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
-
-From: Guo Ren <guoren@linux.alibaba.com>
-
-[ Upstream commit 1d4df649cbb4b26d19bea38ecff4b65b10a1bbca ]
-
-The thead,c900-plic has been used in opensbi to distinguish
-PLIC [1]. Although PLICs have the same behaviors in Linux,
-they are different hardware with some custom initializing in
-firmware(opensbi).
-
-Qute opensbi patch commit-msg by Samuel:
-
- The T-HEAD PLIC implementation requires setting a delegation bit
- to allow access from S-mode. Now that the T-HEAD PLIC has its own
- compatible string, set this bit automatically from the PLIC driver,
- instead of reaching into the PLIC's MMIO space from another driver.
-
-[1]: https://github.com/riscv-software-src/opensbi/commit/78c2b19218bd62653b9fb31623a42ced45f38ea6
-
-Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
-Cc: Anup Patel <anup@brainfault.org>
-Cc: Marc Zyngier <maz@kernel.org>
-Cc: Palmer Dabbelt <palmer@dabbelt.com>
-Cc: Samuel Holland <samuel@sholland.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Tested-by: Samuel Holland <samuel@sholland.org>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220130135634.1213301-3-guoren@kernel.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-sifive-plic.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
-index 532e9d68c7042..767cdd3f773bb 100644
---- a/drivers/irqchip/irq-sifive-plic.c
-+++ b/drivers/irqchip/irq-sifive-plic.c
-@@ -258,3 +258,4 @@ static int __init plic_init(struct device_node *node,
-
- IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init);
- IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */
-+IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_init); /* for firmware driver */
---
-2.34.1
-
-From 3859686f7c56c6ede9b83f62641a6fc103478ade Mon Sep 17 00:00:00 2001
+From e18523abb950c80d29fb078502346d486adf57a1 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 16:01:28 -0600
Subject: kconfig: let 'shell' return enough output for deep path names
+++ /dev/null
-From 3859686f7c56c6ede9b83f62641a6fc103478ade Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 16:01:28 -0600
-Subject: kconfig: let 'shell' return enough output for deep path names
-
-From: Brenda Streiff <brenda.streiff@ni.com>
-
-[ Upstream commit 8a4c5b2a6d8ea079fa36034e8167de87ab6f8880 ]
-
-The 'shell' built-in only returns the first 256 bytes of the command's
-output. In some cases, 'shell' is used to return a path; by bumping up
-the buffer size to 4096 this lets us capture up to PATH_MAX.
-
-The specific case where I ran into this was due to commit 1e860048c53e
-("gcc-plugins: simplify GCC plugin-dev capability test"). After this
-change, we now use `$(shell,$(CC) -print-file-name=plugin)` to return
-a path; if the gcc path is particularly long, then the path ends up
-truncated at the 256 byte mark, which makes the HAVE_GCC_PLUGINS
-depends test always fail.
-
-Signed-off-by: Brenda Streiff <brenda.streiff@ni.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/preprocess.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/kconfig/preprocess.c b/scripts/kconfig/preprocess.c
-index 389814b02d06b..8c7e51a6273cc 100644
---- a/scripts/kconfig/preprocess.c
-+++ b/scripts/kconfig/preprocess.c
-@@ -138,7 +138,7 @@ static char *do_lineno(int argc, char *argv[])
- static char *do_shell(int argc, char *argv[])
- {
- FILE *p;
-- char buf[256];
-+ char buf[4096];
- char *cmd;
- size_t nread;
- int i;
---
-2.34.1
-
-From f9acb9925022603da03cf52c2df88b46a952dfbb Mon Sep 17 00:00:00 2001
+From ed89e7d381a01a7c9fee1280b3683e77101785b1 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 15:13:25 +0530
Subject: net: macb: Align the dma and coherent dma masks
+++ /dev/null
-From f9acb9925022603da03cf52c2df88b46a952dfbb Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 15:13:25 +0530
-Subject: net: macb: Align the dma and coherent dma masks
-
-From: Marc St-Amand <mstamand@ciena.com>
-
-[ Upstream commit 37f7860602b5b2d99fc7465f6407f403f5941988 ]
-
-Single page and coherent memory blocks can use different DMA masks
-when the macb accesses physical memory directly. The kernel is clever
-enough to allocate pages that fit into the requested address width.
-
-When using the ARM SMMU, the DMA mask must be the same for single
-pages and big coherent memory blocks. Otherwise the translation
-tables turn into one big mess.
-
- [ 74.959909] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 74.959989] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
- [ 75.173939] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 75.173955] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
-
-Since using the same DMA mask does not hurt direct 1:1 physical
-memory mappings, this commit always aligns DMA and coherent masks.
-
-Signed-off-by: Marc St-Amand <mstamand@ciena.com>
-Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
-Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
-Tested-by: Conor Dooley <conor.dooley@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/cadence/macb_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
-index d110aa616a957..f162ac7d74e59 100644
---- a/drivers/net/ethernet/cadence/macb_main.c
-+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4073,7 +4073,7 @@ static int macb_probe(struct platform_device *pdev)
-
- #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
- if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-- dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
-+ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
- bp->hw_dma_cap |= HW_DMA_CAP_64B;
- }
- #endif
---
-2.34.1
-
-From 6e30730d8933c5171ed3ec68603695306498f3a2 Mon Sep 17 00:00:00 2001
+From a1ca897281981fd170c910f15bd8aa61e635331e Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 10:47:17 +0800
Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
+++ /dev/null
-From 6e30730d8933c5171ed3ec68603695306498f3a2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 10:47:17 +0800
-Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Slark Xiao <slark_xiao@163.com>
-
-[ Upstream commit 8ecbb179286cbc91810c16caeb3396e06305cd0c ]
-
-Dell DW5829e same as DW5821e except the CAT level.
-DW5821e supports CAT16 but DW5829e supports CAT9.
-Also, DW5829e includes normal and eSIM type.
-Please see below test evidence:
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e6 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e4 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e-eSIM Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-Signed-off-by: Slark Xiao <slark_xiao@163.com>
-Acked-by: Bjørn Mork <bjorn@mork.no>
-Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/usb/qmi_wwan.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index 54b37a30df18b..c2e872f926f1c 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -1358,6 +1358,8 @@ static const struct usb_device_id products[] = {
- {QMI_FIXED_INTF(0x413c, 0x81d7, 0)}, /* Dell Wireless 5821e */
- {QMI_FIXED_INTF(0x413c, 0x81d7, 1)}, /* Dell Wireless 5821e preproduction config */
- {QMI_FIXED_INTF(0x413c, 0x81e0, 0)}, /* Dell Wireless 5821e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e4, 0)}, /* Dell Wireless 5829e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e6, 0)}, /* Dell Wireless 5829e */
- {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
- {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
---
-2.34.1
-
-From b98fec24db7c096bb8fd92d8cfda981907953869 Mon Sep 17 00:00:00 2001
+From 630f773184a067735d7ccdcb683b6f2e9dadfb61 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 13:13:32 +0100
Subject: netfilter: conntrack: don't refresh sctp entries in closed state
+++ /dev/null
-From b98fec24db7c096bb8fd92d8cfda981907953869 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 13:13:32 +0100
-Subject: netfilter: conntrack: don't refresh sctp entries in closed state
-
-From: Florian Westphal <fw@strlen.de>
-
-[ Upstream commit 77b337196a9d87f3d6bb9b07c0436ecafbffda1e ]
-
-Vivek Thrivikraman reported:
- An SCTP server application which is accessed continuously by client
- application.
- When the session disconnects the client retries to establish a connection.
- After restart of SCTP server application the session is not established
- because of stale conntrack entry with connection state CLOSED as below.
-
- (removing this entry manually established new connection):
-
- sctp 9 CLOSED src=10.141.189.233 [..] [ASSURED]
-
-Just skip timeout update of closed entries, we don't want them to
-stay around forever.
-
-Reported-and-tested-by: Vivek Thrivikraman <vivek.thrivikraman@est.tech>
-Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1579
-Signed-off-by: Florian Westphal <fw@strlen.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/netfilter/nf_conntrack_proto_sctp.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
-index a937d4f75613f..8cb62805fd684 100644
---- a/net/netfilter/nf_conntrack_proto_sctp.c
-+++ b/net/netfilter/nf_conntrack_proto_sctp.c
-@@ -394,6 +394,15 @@ static int sctp_packet(struct nf_conn *ct,
- pr_debug("Setting vtag %x for dir %d\n",
- ih->init_tag, !dir);
- ct->proto.sctp.vtag[!dir] = ih->init_tag;
-+
-+ /* don't renew timeout on init retransmit so
-+ * port reuse by client or NAT middlebox cannot
-+ * keep entry alive indefinitely (incl. nat info).
-+ */
-+ if (new_state == SCTP_CONNTRACK_CLOSED &&
-+ old_state == SCTP_CONNTRACK_CLOSED &&
-+ nf_ct_is_confirmed(ct))
-+ ignore = true;
- }
-
- ct->proto.sctp.state = new_state;
---
-2.34.1
-
tracing-fix-tp_printk-option-related-with-tp_printk_.patch
net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch
net-macb-align-the-dma-and-coherent-dma-masks.patch
-arm-omap2-hwmod-add-of_node_put-before-break.patch-13775
-irqchip-sifive-plic-add-missing-thead-c900-plic-matc.patch-32434
-netfilter-conntrack-don-t-refresh-sctp-entries-in-cl.patch-19802
-arm64-dts-meson-gx-add-atf-bl32-reserved-memory-regi.patch-30243
-kconfig-let-shell-return-enough-output-for-deep-path.patch-22274
-ata-libata-core-disable-trim-on-m88v29.patch-12598
-tracing-fix-tp_printk-option-related-with-tp_printk_.patch-30794
-net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch-13890
-net-macb-align-the-dma-and-coherent-dma-masks.patch-25024
-From fafbe1d86d458be10103272a6638a837760920fb Mon Sep 17 00:00:00 2001
+From b117e6d25d6dc56aeb06c46cd01d49ed2487845f Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 04:54:22 +0900
Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+++ /dev/null
-From fafbe1d86d458be10103272a6638a837760920fb Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 04:54:22 +0900
-Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
-
-From: JaeSang Yoo <js.yoo.5b@gmail.com>
-
-[ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ]
-
-The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is
-the same as another kernel parameter "tp_printk". If "tp_printk" setup is
-called before the "tp_printk_stop_on_boot", it will override the latter
-and keep it from being set.
-
-This is similar to other kernel parameter issues, such as:
- Commit 745a600cf1a6 ("um: console: Ignore console= option")
-or init/do_mounts.c:45 (setup function of "ro" kernel param)
-
-Fix it by checking for a "_" right after the "tp_printk" and if that
-exists do not process the parameter.
-
-Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com
-
-Signed-off-by: JaeSang Yoo <jsyoo5b@gmail.com>
-[ Fixed up change log and added space after if condition ]
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/trace/trace.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 17e337a22c239..19a6b088f1e72 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -232,6 +232,10 @@ __setup("trace_clock=", set_trace_boot_clock);
-
- static int __init set_tracepoint_printk(char *str)
- {
-+ /* Ignore the "tp_printk_stop_on_boot" param */
-+ if (*str == '_')
-+ return 0;
-+
- if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
- tracepoint_printk = 1;
- return 1;
---
-2.34.1
-
-From 7524fe7a02579e5a0b8c7d475ebdbe99f0db29b2 Mon Sep 17 00:00:00 2001
+From 386147b2185d42c56da65da47a6e49d63224b097 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 4 Feb 2022 13:57:50 +0100
Subject: ata: libata-core: Disable TRIM on M88V29
+++ /dev/null
-From 7524fe7a02579e5a0b8c7d475ebdbe99f0db29b2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Feb 2022 13:57:50 +0100
-Subject: ata: libata-core: Disable TRIM on M88V29
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Zoltán Böszörményi <zboszor@gmail.com>
-
-[ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ]
-
-This device is a CF card, or possibly an SSD in CF form factor.
-It supports NCQ and high speed DMA.
-
-While it also advertises TRIM support, I/O errors are reported
-when the discard mount option fstrim is used. TRIM also fails
-when disabling NCQ and not just as an NCQ command.
-
-TRIM must be disabled for this device.
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index a92cbe1aa72a2..35db918a1de56 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -4486,6 +4486,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
-
- /* devices that don't properly handle TRIM commands */
- { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
-+ { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, },
-
- /*
- * As defined, the DRAT (Deterministic Read After Trim) and RZAT
---
-2.34.1
-
-From 4b5a13c7c300502dc61385a0a6858c1d747884ec Mon Sep 17 00:00:00 2001
+From 492294e131a63721a4e7d8399ae7078b18858328 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 10:47:17 +0800
Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
+++ /dev/null
-From 4b5a13c7c300502dc61385a0a6858c1d747884ec Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 10:47:17 +0800
-Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Slark Xiao <slark_xiao@163.com>
-
-[ Upstream commit 8ecbb179286cbc91810c16caeb3396e06305cd0c ]
-
-Dell DW5829e same as DW5821e except the CAT level.
-DW5821e supports CAT16 but DW5829e supports CAT9.
-Also, DW5829e includes normal and eSIM type.
-Please see below test evidence:
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e6 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e4 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e-eSIM Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-Signed-off-by: Slark Xiao <slark_xiao@163.com>
-Acked-by: Bjørn Mork <bjorn@mork.no>
-Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/usb/qmi_wwan.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index a8c960152a357..003c53a5bb336 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -964,6 +964,8 @@ static const struct usb_device_id products[] = {
- {QMI_FIXED_INTF(0x413c, 0x81d7, 0)}, /* Dell Wireless 5821e */
- {QMI_FIXED_INTF(0x413c, 0x81d7, 1)}, /* Dell Wireless 5821e preproduction config */
- {QMI_FIXED_INTF(0x413c, 0x81e0, 0)}, /* Dell Wireless 5821e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e4, 0)}, /* Dell Wireless 5829e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e6, 0)}, /* Dell Wireless 5829e */
- {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
- {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
---
-2.34.1
-
ata-libata-core-disable-trim-on-m88v29.patch
tracing-fix-tp_printk-option-related-with-tp_printk_.patch
net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch
-ata-libata-core-disable-trim-on-m88v29.patch-3307
-tracing-fix-tp_printk-option-related-with-tp_printk_.patch-14804
-net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch-878
-From 839dbba17adc0258ab025722d0cfdf94e83893c8 Mon Sep 17 00:00:00 2001
+From 65cb3cd511f12765b0e55bfe2225875ba8f6c13e Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 04:54:22 +0900
Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+++ /dev/null
-From 839dbba17adc0258ab025722d0cfdf94e83893c8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 04:54:22 +0900
-Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
-
-From: JaeSang Yoo <js.yoo.5b@gmail.com>
-
-[ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ]
-
-The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is
-the same as another kernel parameter "tp_printk". If "tp_printk" setup is
-called before the "tp_printk_stop_on_boot", it will override the latter
-and keep it from being set.
-
-This is similar to other kernel parameter issues, such as:
- Commit 745a600cf1a6 ("um: console: Ignore console= option")
-or init/do_mounts.c:45 (setup function of "ro" kernel param)
-
-Fix it by checking for a "_" right after the "tp_printk" and if that
-exists do not process the parameter.
-
-Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com
-
-Signed-off-by: JaeSang Yoo <jsyoo5b@gmail.com>
-[ Fixed up change log and added space after if condition ]
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/trace/trace.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 01c646a1d9e76..12bee7043be6f 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -228,6 +228,10 @@ __setup("trace_clock=", set_trace_boot_clock);
-
- static int __init set_tracepoint_printk(char *str)
- {
-+ /* Ignore the "tp_printk_stop_on_boot" param */
-+ if (*str == '_')
-+ return 0;
-+
- if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
- tracepoint_printk = 1;
- return 1;
---
-2.34.1
-
-From 2b4ac369f142650cb9ec6908c4020c867f5b7489 Mon Sep 17 00:00:00 2001
+From 1c3af778f674f201b8ac44c2121e2af48b9022c0 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 16 Nov 2021 06:27:26 +0000
Subject: ARM: OMAP2+: adjust the location of put_device() call in
+++ /dev/null
-From 2b4ac369f142650cb9ec6908c4020c867f5b7489 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Nov 2021 06:27:26 +0000
-Subject: ARM: OMAP2+: adjust the location of put_device() call in
- omapdss_init_of
-
-From: Ye Guojin <ye.guojin@zte.com.cn>
-
-[ Upstream commit 34596ba380b03d181e24efd50e2f21045bde3696 ]
-
-This was found by coccicheck:
-./arch/arm/mach-omap2/display.c, 272, 1-7, ERROR missing put_device;
-call of_find_device_by_node on line 258, but without a corresponding
-object release within this function.
-
-Move the put_device() call before the if judgment.
-
-Reported-by: Zeal Robot <zealci@zte.com.cn>
-Signed-off-by: Ye Guojin <ye.guojin@zte.com.cn>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/display.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
-index 2000fca6bd4e6..6098666e928d0 100644
---- a/arch/arm/mach-omap2/display.c
-+++ b/arch/arm/mach-omap2/display.c
-@@ -263,9 +263,9 @@ static int __init omapdss_init_of(void)
- }
-
- r = of_platform_populate(node, NULL, NULL, &pdev->dev);
-+ put_device(&pdev->dev);
- if (r) {
- pr_err("Unable to populate DSS submodule devices\n");
-- put_device(&pdev->dev);
- return r;
- }
-
---
-2.34.1
-
-From 318da553b9536168905f66161c74f92ea4aa1105 Mon Sep 17 00:00:00 2001
+From fadf6fc640adc8f1374aa0f7314e2b3687de9bc3 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 14 Oct 2021 04:57:19 -0400
Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
+++ /dev/null
-From 318da553b9536168905f66161c74f92ea4aa1105 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 14 Oct 2021 04:57:19 -0400
-Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 80c469a0a03763f814715f3d12b6f3964c7423e8 ]
-
-Fix following coccicheck warning:
-./arch/arm/mach-omap2/omap_hwmod.c:753:1-23: WARNING: Function
-for_each_matching_node should have of_node_put() before break
-
-Early exits from for_each_matching_node should decrement the
-node reference counter.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/omap_hwmod.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 9443f129859b2..1fd67abca055b 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -749,8 +749,10 @@ static int __init _init_clkctrl_providers(void)
-
- for_each_matching_node(np, ti_clkctrl_match_table) {
- ret = _setup_clkctrl_provider(np);
-- if (ret)
-+ if (ret) {
-+ of_node_put(np);
- break;
-+ }
- }
-
- return ret;
---
-2.34.1
-
-From cf57250427a78ee14eb0aad3dae4c1a3b0c7d80b Mon Sep 17 00:00:00 2001
+From 7683fca96a6450a3c65e3b2f83055567b2846035 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:53 +0000
Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
index 7342c8a2b322d..075153a4d49fc 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -101,6 +101,12 @@ secmon_reserved: secmon@5000000 {
+@@ -101,6 +101,12 @@
no-map;
};
+++ /dev/null
-From cf57250427a78ee14eb0aad3dae4c1a3b0c7d80b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:53 +0000
-Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 08982a1b3aa2611c9c711d24825c9002d28536f4 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-3-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-index 7342c8a2b322d..075153a4d49fc 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -101,6 +101,12 @@ secmon_reserved: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From 76b75ee78026c44496eecfb8952b3b7015c6833e Mon Sep 17 00:00:00 2001
+From 5b5c034e8b7c6b181477326424aba5f1fe9b525d Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:54 +0000
Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
index 4d5b3e514b514..71f91e31c1818 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -157,14 +157,6 @@
regulator-always-on;
};
index 5ab139a34c018..c21178e9c6064 100644
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -203,14 +203,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -203,14 +203,6 @@
regulator-always-on;
};
+++ /dev/null
-From 76b75ee78026c44496eecfb8952b3b7015c6833e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:54 +0000
-Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit f26573e2bc9dfd551a0d5c6971f18cc546543312 ]
-
-The BL32/TEE reserved-memory region is now inherited from the common
-family dtsi (meson-g12-common) so we can drop it from board files.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-4-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 8 --------
- arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 8 --------
- 2 files changed, 16 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-index 4d5b3e514b514..71f91e31c1818 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-index 5ab139a34c018..c21178e9c6064 100644
---- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -203,14 +203,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
---
-2.34.1
-
-From 0b7ca0b7ca3913955db9c491c6bc04e1bbc625f4 Mon Sep 17 00:00:00 2001
+From 99948d1ebc2bec3ca6f1472add188a1b0e3a87d1 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:52 +0000
Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
index 0edd137151f89..47cbb0a1eb183 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -43,6 +43,12 @@ secmon_reserved_alt: secmon@5000000 {
+@@ -43,6 +43,12 @@
no-map;
};
+++ /dev/null
-From 0b7ca0b7ca3913955db9c491c6bc04e1bbc625f4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:52 +0000
-Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 76577c9137456febb05b0e17d244113196a98968 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Suggested-by: Mateusz Krzak <kszaquitto@gmail.com>
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-2-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index 0edd137151f89..47cbb0a1eb183 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -43,6 +43,12 @@ secmon_reserved_alt: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From 07a92b3391d63c0bc5e3aab86ec926d24babe157 Mon Sep 17 00:00:00 2001
+From 378e62a6e18fac50777bb4a8bac93c749dfd0843 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 4 Feb 2022 13:57:50 +0100
Subject: ata: libata-core: Disable TRIM on M88V29
+++ /dev/null
-From 07a92b3391d63c0bc5e3aab86ec926d24babe157 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Feb 2022 13:57:50 +0100
-Subject: ata: libata-core: Disable TRIM on M88V29
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Zoltán Böszörményi <zboszor@gmail.com>
-
-[ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ]
-
-This device is a CF card, or possibly an SSD in CF form factor.
-It supports NCQ and high speed DMA.
-
-While it also advertises TRIM support, I/O errors are reported
-when the discard mount option fstrim is used. TRIM also fails
-when disabling NCQ and not just as an NCQ command.
-
-TRIM must be disabled for this device.
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 1f54f82d22d61..d2b544bdc7b5e 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -3989,6 +3989,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
-
- /* devices that don't properly handle TRIM commands */
- { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
-+ { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, },
-
- /*
- * As defined, the DRAT (Deterministic Read After Trim) and RZAT
---
-2.34.1
-
-From 3e8d6fd609c40d9060cc99512b4a98c26b2d50b7 Mon Sep 17 00:00:00 2001
+From a8ae219d32f5b53629d0f8f6bc763bdc46d8818c Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 15:55:24 +0100
Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
+++ /dev/null
-From 3e8d6fd609c40d9060cc99512b4a98c26b2d50b7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 15:55:24 +0100
-Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
-
-From: Sascha Hauer <s.hauer@pengutronix.de>
-
-[ Upstream commit c0cfbb122275da1b726481de5a8cffeb24e6322b ]
-
-The driver returns an error when devm_phy_optional_get() fails leaving
-the previously enabled clock turned on. Change order and enable the
-clock only after the phy has been acquired.
-
-Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220126145549.617165-3-s.hauer@pengutronix.de
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-index 23de359a1dec6..515e6f187dc77 100644
---- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-@@ -529,13 +529,6 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-- ret = clk_prepare_enable(hdmi->vpll_clk);
-- if (ret) {
-- DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-- ret);
-- return ret;
-- }
--
- hdmi->phy = devm_phy_optional_get(dev, "hdmi");
- if (IS_ERR(hdmi->phy)) {
- ret = PTR_ERR(hdmi->phy);
-@@ -544,6 +537,13 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-+ ret = clk_prepare_enable(hdmi->vpll_clk);
-+ if (ret) {
-+ DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-+ ret);
-+ return ret;
-+ }
-+
- drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
- drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
-
---
-2.34.1
-
-From b5f5d51ff4c931bc20d0c4c171c922bb795dfe8a Mon Sep 17 00:00:00 2001
+From 69670e14a11cb1f526b00a3b60e657d4c784f375 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 21:56:34 +0800
Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
+++ /dev/null
-From b5f5d51ff4c931bc20d0c4c171c922bb795dfe8a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 21:56:34 +0800
-Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
-
-From: Guo Ren <guoren@linux.alibaba.com>
-
-[ Upstream commit 1d4df649cbb4b26d19bea38ecff4b65b10a1bbca ]
-
-The thead,c900-plic has been used in opensbi to distinguish
-PLIC [1]. Although PLICs have the same behaviors in Linux,
-they are different hardware with some custom initializing in
-firmware(opensbi).
-
-Qute opensbi patch commit-msg by Samuel:
-
- The T-HEAD PLIC implementation requires setting a delegation bit
- to allow access from S-mode. Now that the T-HEAD PLIC has its own
- compatible string, set this bit automatically from the PLIC driver,
- instead of reaching into the PLIC's MMIO space from another driver.
-
-[1]: https://github.com/riscv-software-src/opensbi/commit/78c2b19218bd62653b9fb31623a42ced45f38ea6
-
-Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
-Cc: Anup Patel <anup@brainfault.org>
-Cc: Marc Zyngier <maz@kernel.org>
-Cc: Palmer Dabbelt <palmer@dabbelt.com>
-Cc: Samuel Holland <samuel@sholland.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Tested-by: Samuel Holland <samuel@sholland.org>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220130135634.1213301-3-guoren@kernel.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-sifive-plic.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
-index 926e55d838cb1..bd99ee0ae433d 100644
---- a/drivers/irqchip/irq-sifive-plic.c
-+++ b/drivers/irqchip/irq-sifive-plic.c
-@@ -400,3 +400,4 @@ static int __init plic_init(struct device_node *node,
-
- IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init);
- IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */
-+IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_init); /* for firmware driver */
---
-2.34.1
-
-From da35f454acc0341d1da2bff314550b6ecf487ce3 Mon Sep 17 00:00:00 2001
+From 09ec39d4189c0663a5537b8b6b6ec9f8fe717bd3 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 11 Feb 2022 17:27:36 +0800
Subject: kconfig: fix failing to generate auto.conf
+++ /dev/null
-From da35f454acc0341d1da2bff314550b6ecf487ce3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Feb 2022 17:27:36 +0800
-Subject: kconfig: fix failing to generate auto.conf
-
-From: Jing Leng <jleng@ambarella.com>
-
-[ Upstream commit 1b9e740a81f91ae338b29ed70455719804957b80 ]
-
-When the KCONFIG_AUTOCONFIG is specified (e.g. export \
-KCONFIG_AUTOCONFIG=output/config/auto.conf), the directory of
-include/config/ will not be created, so kconfig can't create deps
-files in it and auto.conf can't be generated.
-
-Signed-off-by: Jing Leng <jleng@ambarella.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/confdata.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
-index a39d93e3c6ae8..867b06c6d2797 100644
---- a/scripts/kconfig/confdata.c
-+++ b/scripts/kconfig/confdata.c
-@@ -968,14 +968,19 @@ static int conf_write_dep(const char *name)
-
- static int conf_touch_deps(void)
- {
-- const char *name;
-+ const char *name, *tmp;
- struct symbol *sym;
- int res, i;
-
-- strcpy(depfile_path, "include/config/");
-- depfile_prefix_len = strlen(depfile_path);
--
- name = conf_get_autoconfig_name();
-+ tmp = strrchr(name, '/');
-+ depfile_prefix_len = tmp ? tmp - name + 1 : 0;
-+ if (depfile_prefix_len + 1 > sizeof(depfile_path))
-+ return -1;
-+
-+ strncpy(depfile_path, name, depfile_prefix_len);
-+ depfile_path[depfile_prefix_len] = 0;
-+
- conf_read_simple(name, S_DEF_AUTO);
- sym_calc_value(modules_sym);
-
---
-2.34.1
-
-From 07db88a9aea415123e9bf90a2991b404b640d404 Mon Sep 17 00:00:00 2001
+From 060e48098bbaa1bdea771358dcaeac5c5765e9e0 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 16:01:28 -0600
Subject: kconfig: let 'shell' return enough output for deep path names
+++ /dev/null
-From 07db88a9aea415123e9bf90a2991b404b640d404 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 16:01:28 -0600
-Subject: kconfig: let 'shell' return enough output for deep path names
-
-From: Brenda Streiff <brenda.streiff@ni.com>
-
-[ Upstream commit 8a4c5b2a6d8ea079fa36034e8167de87ab6f8880 ]
-
-The 'shell' built-in only returns the first 256 bytes of the command's
-output. In some cases, 'shell' is used to return a path; by bumping up
-the buffer size to 4096 this lets us capture up to PATH_MAX.
-
-The specific case where I ran into this was due to commit 1e860048c53e
-("gcc-plugins: simplify GCC plugin-dev capability test"). After this
-change, we now use `$(shell,$(CC) -print-file-name=plugin)` to return
-a path; if the gcc path is particularly long, then the path ends up
-truncated at the 256 byte mark, which makes the HAVE_GCC_PLUGINS
-depends test always fail.
-
-Signed-off-by: Brenda Streiff <brenda.streiff@ni.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/preprocess.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/kconfig/preprocess.c b/scripts/kconfig/preprocess.c
-index 0590f86df6e40..748da578b418c 100644
---- a/scripts/kconfig/preprocess.c
-+++ b/scripts/kconfig/preprocess.c
-@@ -141,7 +141,7 @@ static char *do_lineno(int argc, char *argv[])
- static char *do_shell(int argc, char *argv[])
- {
- FILE *p;
-- char buf[256];
-+ char buf[4096];
- char *cmd;
- size_t nread;
- int i;
---
-2.34.1
-
-From 902f18a6d204722b36a690214d9dcfb8d492c20f Mon Sep 17 00:00:00 2001
+From 3ab91fe9076f926985cdc6829ae432cd863027a0 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 15:13:25 +0530
Subject: net: macb: Align the dma and coherent dma masks
+++ /dev/null
-From 902f18a6d204722b36a690214d9dcfb8d492c20f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 15:13:25 +0530
-Subject: net: macb: Align the dma and coherent dma masks
-
-From: Marc St-Amand <mstamand@ciena.com>
-
-[ Upstream commit 37f7860602b5b2d99fc7465f6407f403f5941988 ]
-
-Single page and coherent memory blocks can use different DMA masks
-when the macb accesses physical memory directly. The kernel is clever
-enough to allocate pages that fit into the requested address width.
-
-When using the ARM SMMU, the DMA mask must be the same for single
-pages and big coherent memory blocks. Otherwise the translation
-tables turn into one big mess.
-
- [ 74.959909] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 74.959989] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
- [ 75.173939] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 75.173955] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
-
-Since using the same DMA mask does not hurt direct 1:1 physical
-memory mappings, this commit always aligns DMA and coherent masks.
-
-Signed-off-by: Marc St-Amand <mstamand@ciena.com>
-Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
-Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
-Tested-by: Conor Dooley <conor.dooley@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/cadence/macb_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
-index 1e8bf6b9834bb..2af464ac250ac 100644
---- a/drivers/net/ethernet/cadence/macb_main.c
-+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4534,7 +4534,7 @@ static int macb_probe(struct platform_device *pdev)
-
- #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
- if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-- dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
-+ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
- bp->hw_dma_cap |= HW_DMA_CAP_64B;
- }
- #endif
---
-2.34.1
-
-From eaaee7e56f1fde5348b5e147c94fc394b8b0b008 Mon Sep 17 00:00:00 2001
+From 340b6221532e1a974abe2cf8571c25ff894586b7 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 10:47:17 +0800
Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
+++ /dev/null
-From eaaee7e56f1fde5348b5e147c94fc394b8b0b008 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 10:47:17 +0800
-Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Slark Xiao <slark_xiao@163.com>
-
-[ Upstream commit 8ecbb179286cbc91810c16caeb3396e06305cd0c ]
-
-Dell DW5829e same as DW5821e except the CAT level.
-DW5821e supports CAT16 but DW5829e supports CAT9.
-Also, DW5829e includes normal and eSIM type.
-Please see below test evidence:
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e6 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e4 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e-eSIM Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-Signed-off-by: Slark Xiao <slark_xiao@163.com>
-Acked-by: Bjørn Mork <bjorn@mork.no>
-Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/usb/qmi_wwan.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index 6e033ba717030..597766d14563e 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -1333,6 +1333,8 @@ static const struct usb_device_id products[] = {
- {QMI_FIXED_INTF(0x413c, 0x81d7, 0)}, /* Dell Wireless 5821e */
- {QMI_FIXED_INTF(0x413c, 0x81d7, 1)}, /* Dell Wireless 5821e preproduction config */
- {QMI_FIXED_INTF(0x413c, 0x81e0, 0)}, /* Dell Wireless 5821e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e4, 0)}, /* Dell Wireless 5829e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e6, 0)}, /* Dell Wireless 5829e */
- {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
- {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
---
-2.34.1
-
-From 09dd239fe738337054d59f7b2f1109221aa18ae1 Mon Sep 17 00:00:00 2001
+From 9db172f0dd71912a18f86ff838618edd9b6ac24e Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 13:13:32 +0100
Subject: netfilter: conntrack: don't refresh sctp entries in closed state
+++ /dev/null
-From 09dd239fe738337054d59f7b2f1109221aa18ae1 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 13:13:32 +0100
-Subject: netfilter: conntrack: don't refresh sctp entries in closed state
-
-From: Florian Westphal <fw@strlen.de>
-
-[ Upstream commit 77b337196a9d87f3d6bb9b07c0436ecafbffda1e ]
-
-Vivek Thrivikraman reported:
- An SCTP server application which is accessed continuously by client
- application.
- When the session disconnects the client retries to establish a connection.
- After restart of SCTP server application the session is not established
- because of stale conntrack entry with connection state CLOSED as below.
-
- (removing this entry manually established new connection):
-
- sctp 9 CLOSED src=10.141.189.233 [..] [ASSURED]
-
-Just skip timeout update of closed entries, we don't want them to
-stay around forever.
-
-Reported-and-tested-by: Vivek Thrivikraman <vivek.thrivikraman@est.tech>
-Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1579
-Signed-off-by: Florian Westphal <fw@strlen.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/netfilter/nf_conntrack_proto_sctp.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
-index 810cca24b3990..7626f3e1c70a7 100644
---- a/net/netfilter/nf_conntrack_proto_sctp.c
-+++ b/net/netfilter/nf_conntrack_proto_sctp.c
-@@ -489,6 +489,15 @@ int nf_conntrack_sctp_packet(struct nf_conn *ct,
- pr_debug("Setting vtag %x for dir %d\n",
- ih->init_tag, !dir);
- ct->proto.sctp.vtag[!dir] = ih->init_tag;
-+
-+ /* don't renew timeout on init retransmit so
-+ * port reuse by client or NAT middlebox cannot
-+ * keep entry alive indefinitely (incl. nat info).
-+ */
-+ if (new_state == SCTP_CONNTRACK_CLOSED &&
-+ old_state == SCTP_CONNTRACK_CLOSED &&
-+ nf_ct_is_confirmed(ct))
-+ ignore = true;
- }
-
- ct->proto.sctp.state = new_state;
---
-2.34.1
-
-From 522ce56b1e4d8c54d0e5cd03747c11d96bf4ee06 Mon Sep 17 00:00:00 2001
+From 473c52eeae1785faeb6898f7bb58009e755e54ab Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 1 Dec 2021 13:06:51 -0500
Subject: phy: usb: Leave some clocks running during suspend
+++ /dev/null
-From 522ce56b1e4d8c54d0e5cd03747c11d96bf4ee06 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Dec 2021 13:06:51 -0500
-Subject: phy: usb: Leave some clocks running during suspend
-
-From: Al Cooper <alcooperx@gmail.com>
-
-[ Upstream commit 42fed57046fc74586d7058bd51a1c10ac9c690cb ]
-
-The PHY client driver does a phy_exit() call on suspend or rmmod and
-the PHY driver needs to know the difference because some clocks need
-to be kept running for suspend but can be shutdown on unbind/rmmod
-(or if there are no PHY clients at all).
-
-The fix is to use a PM notifier so the driver can tell if a PHY
-client is calling exit() because of a system suspend or a driver
-unbind/rmmod.
-
-Signed-off-by: Al Cooper <alcooperx@gmail.com>
-Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-Link: https://lore.kernel.org/r/20211201180653.35097-2-alcooperx@gmail.com
-Signed-off-by: Vinod Koul <vkoul@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/phy/broadcom/phy-brcm-usb.c | 38 +++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
-
-diff --git a/drivers/phy/broadcom/phy-brcm-usb.c b/drivers/phy/broadcom/phy-brcm-usb.c
-index 99fbc7e4138be..b901a0d4e2a80 100644
---- a/drivers/phy/broadcom/phy-brcm-usb.c
-+++ b/drivers/phy/broadcom/phy-brcm-usb.c
-@@ -17,6 +17,7 @@
- #include <linux/soc/brcmstb/brcmstb.h>
- #include <dt-bindings/phy/phy.h>
- #include <linux/mfd/syscon.h>
-+#include <linux/suspend.h>
-
- #include "phy-brcm-usb-init.h"
-
-@@ -69,12 +70,35 @@ struct brcm_usb_phy_data {
- int init_count;
- int wake_irq;
- struct brcm_usb_phy phys[BRCM_USB_PHY_ID_MAX];
-+ struct notifier_block pm_notifier;
-+ bool pm_active;
- };
-
- static s8 *node_reg_names[BRCM_REGS_MAX] = {
- "crtl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio", "bdc_ec"
- };
-
-+static int brcm_pm_notifier(struct notifier_block *notifier,
-+ unsigned long pm_event,
-+ void *unused)
-+{
-+ struct brcm_usb_phy_data *priv =
-+ container_of(notifier, struct brcm_usb_phy_data, pm_notifier);
-+
-+ switch (pm_event) {
-+ case PM_HIBERNATION_PREPARE:
-+ case PM_SUSPEND_PREPARE:
-+ priv->pm_active = true;
-+ break;
-+ case PM_POST_RESTORE:
-+ case PM_POST_HIBERNATION:
-+ case PM_POST_SUSPEND:
-+ priv->pm_active = false;
-+ break;
-+ }
-+ return NOTIFY_DONE;
-+}
-+
- static irqreturn_t brcm_usb_phy_wake_isr(int irq, void *dev_id)
- {
- struct phy *gphy = dev_id;
-@@ -90,6 +114,9 @@ static int brcm_usb_phy_init(struct phy *gphy)
- struct brcm_usb_phy_data *priv =
- container_of(phy, struct brcm_usb_phy_data, phys[phy->id]);
-
-+ if (priv->pm_active)
-+ return 0;
-+
- /*
- * Use a lock to make sure a second caller waits until
- * the base phy is inited before using it.
-@@ -119,6 +146,9 @@ static int brcm_usb_phy_exit(struct phy *gphy)
- struct brcm_usb_phy_data *priv =
- container_of(phy, struct brcm_usb_phy_data, phys[phy->id]);
-
-+ if (priv->pm_active)
-+ return 0;
-+
- dev_dbg(&gphy->dev, "EXIT\n");
- if (phy->id == BRCM_USB_PHY_2_0)
- brcm_usb_uninit_eohci(&priv->ini);
-@@ -484,6 +514,9 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
- if (err)
- return err;
-
-+ priv->pm_notifier.notifier_call = brcm_pm_notifier;
-+ register_pm_notifier(&priv->pm_notifier);
-+
- mutex_init(&priv->mutex);
-
- /* make sure invert settings are correct */
-@@ -524,7 +557,10 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
-
- static int brcm_usb_phy_remove(struct platform_device *pdev)
- {
-+ struct brcm_usb_phy_data *priv = dev_get_drvdata(&pdev->dev);
-+
- sysfs_remove_group(&pdev->dev.kobj, &brcm_usb_phy_group);
-+ unregister_pm_notifier(&priv->pm_notifier);
-
- return 0;
- }
-@@ -535,6 +571,7 @@ static int brcm_usb_phy_suspend(struct device *dev)
- struct brcm_usb_phy_data *priv = dev_get_drvdata(dev);
-
- if (priv->init_count) {
-+ dev_dbg(dev, "SUSPEND\n");
- priv->ini.wake_enabled = device_may_wakeup(dev);
- if (priv->phys[BRCM_USB_PHY_3_0].inited)
- brcm_usb_uninit_xhci(&priv->ini);
-@@ -574,6 +611,7 @@ static int brcm_usb_phy_resume(struct device *dev)
- * Uninitialize anything that wasn't previously initialized.
- */
- if (priv->init_count) {
-+ dev_dbg(dev, "RESUME\n");
- if (priv->wake_irq >= 0)
- disable_irq_wake(priv->wake_irq);
- brcm_usb_init_common(&priv->ini);
---
-2.34.1
-
-From 7340ed94897b7e89a979c24073d9e5806ba79979 Mon Sep 17 00:00:00 2001
+From 01ad9ea2affe61e2eec3b1b5d01e92b1d5949ad3 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 13:29:51 -0800
Subject: pidfd: fix test failure due to stack overflow on some arches
+++ /dev/null
-From 7340ed94897b7e89a979c24073d9e5806ba79979 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 13:29:51 -0800
-Subject: pidfd: fix test failure due to stack overflow on some arches
-
-From: Axel Rasmussen <axelrasmussen@google.com>
-
-[ Upstream commit 4cbd93c3c110447adc66cb67c08af21f939ae2d7 ]
-
-When running the pidfd_fdinfo_test on arm64, it fails for me. After some
-digging, the reason is that the child exits due to SIGBUS, because it
-overflows the 1024 byte stack we've reserved for it.
-
-To fix the issue, increase the stack size to 8192 bytes (this number is
-somewhat arbitrary, and was arrived at through experimentation -- I kept
-doubling until the failure no longer occurred).
-
-Also, let's make the issue easier to debug. wait_for_pid() returns an
-ambiguous value: it may return -1 in all of these cases:
-
-1. waitpid() itself returned -1
-2. waitpid() returned success, but we found !WIFEXITED(status).
-3. The child process exited, but it did so with a -1 exit code.
-
-There's no way for the caller to tell the difference. So, at least log
-which occurred, so the test runner can debug things.
-
-While debugging this, I found that we had !WIFEXITED(), because the
-child exited due to a signal. This seems like a reasonably common case,
-so also print out whether or not we have WIFSIGNALED(), and the
-associated WTERMSIG() (if any). This lets us see the SIGBUS I'm fixing
-clearly when it occurs.
-
-Finally, I'm suspicious of allocating the child's stack on our stack.
-man clone(2) suggests that the correct way to do this is with mmap(),
-and in particular by setting MAP_STACK. So, switch to doing it that way
-instead.
-
-Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
-Acked-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/testing/selftests/pidfd/pidfd.h | 13 ++++++++---
- .../selftests/pidfd/pidfd_fdinfo_test.c | 22 +++++++++++++++----
- 2 files changed, 28 insertions(+), 7 deletions(-)
-
-diff --git a/tools/testing/selftests/pidfd/pidfd.h b/tools/testing/selftests/pidfd/pidfd.h
-index 01f8d3c0cf2cb..6922d6417e1cf 100644
---- a/tools/testing/selftests/pidfd/pidfd.h
-+++ b/tools/testing/selftests/pidfd/pidfd.h
-@@ -68,7 +68,7 @@
- #define PIDFD_SKIP 3
- #define PIDFD_XFAIL 4
-
--int wait_for_pid(pid_t pid)
-+static inline int wait_for_pid(pid_t pid)
- {
- int status, ret;
-
-@@ -78,13 +78,20 @@ int wait_for_pid(pid_t pid)
- if (errno == EINTR)
- goto again;
-
-+ ksft_print_msg("waitpid returned -1, errno=%d\n", errno);
- return -1;
- }
-
-- if (!WIFEXITED(status))
-+ if (!WIFEXITED(status)) {
-+ ksft_print_msg(
-+ "waitpid !WIFEXITED, WIFSIGNALED=%d, WTERMSIG=%d\n",
-+ WIFSIGNALED(status), WTERMSIG(status));
- return -1;
-+ }
-
-- return WEXITSTATUS(status);
-+ ret = WEXITSTATUS(status);
-+ ksft_print_msg("waitpid WEXITSTATUS=%d\n", ret);
-+ return ret;
- }
-
- static inline int sys_pidfd_open(pid_t pid, unsigned int flags)
-diff --git a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-index 22558524f71c3..3fd8e903118f5 100644
---- a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-+++ b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-@@ -12,6 +12,7 @@
- #include <string.h>
- #include <syscall.h>
- #include <sys/wait.h>
-+#include <sys/mman.h>
-
- #include "pidfd.h"
- #include "../kselftest.h"
-@@ -80,7 +81,10 @@ static inline int error_check(struct error *err, const char *test_name)
- return err->code;
- }
-
-+#define CHILD_STACK_SIZE 8192
-+
- struct child {
-+ char *stack;
- pid_t pid;
- int fd;
- };
-@@ -89,17 +93,22 @@ static struct child clone_newns(int (*fn)(void *), void *args,
- struct error *err)
- {
- static int flags = CLONE_PIDFD | CLONE_NEWPID | CLONE_NEWNS | SIGCHLD;
-- size_t stack_size = 1024;
-- char *stack[1024] = { 0 };
- struct child ret;
-
- if (!(flags & CLONE_NEWUSER) && geteuid() != 0)
- flags |= CLONE_NEWUSER;
-
-+ ret.stack = mmap(NULL, CHILD_STACK_SIZE, PROT_READ | PROT_WRITE,
-+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
-+ if (ret.stack == MAP_FAILED) {
-+ error_set(err, -1, "mmap of stack failed (errno %d)", errno);
-+ return ret;
-+ }
-+
- #ifdef __ia64__
-- ret.pid = __clone2(fn, stack, stack_size, flags, args, &ret.fd);
-+ ret.pid = __clone2(fn, ret.stack, CHILD_STACK_SIZE, flags, args, &ret.fd);
- #else
-- ret.pid = clone(fn, stack + stack_size, flags, args, &ret.fd);
-+ ret.pid = clone(fn, ret.stack + CHILD_STACK_SIZE, flags, args, &ret.fd);
- #endif
-
- if (ret.pid < 0) {
-@@ -129,6 +138,11 @@ static inline int child_join(struct child *child, struct error *err)
- else if (r > 0)
- error_set(err, r, "child %d reported: %d", child->pid, r);
-
-+ if (munmap(child->stack, CHILD_STACK_SIZE)) {
-+ error_set(err, -1, "munmap of child stack failed (errno %d)", errno);
-+ r = -1;
-+ }
-+
- return r;
- }
-
---
-2.34.1
-
-From d0ebf07fccbb8349aebcafaca94e0952853d7622 Mon Sep 17 00:00:00 2001
+From 2be29591eef0446bacc16cfd5d6e8d0b4411e1d7 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 14:11:15 -0800
Subject: selftests: fixup build warnings in pidfd / clone3 tests
+++ /dev/null
-From d0ebf07fccbb8349aebcafaca94e0952853d7622 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 14:11:15 -0800
-Subject: selftests: fixup build warnings in pidfd / clone3 tests
-
-From: Axel Rasmussen <axelrasmussen@google.com>
-
-[ Upstream commit e2aa5e650b07693477dff554053605976789fd68 ]
-
-These are some trivial fixups, which were needed to build the tests with
-clang and -Werror. The following issues are fixed:
-
-- Remove various unused variables.
-- In child_poll_leader_exit_test, clang isn't smart enough to realize
- syscall(SYS_exit, 0) won't return, so it complains we never return
- from a non-void function. Add an extra exit(0) to appease it.
-- In test_pidfd_poll_leader_exit, ret may be branched on despite being
- uninitialized, if we have !use_waitpid. Initialize it to zero to get
- the right behavior in that case.
-
-Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
-Acked-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/testing/selftests/clone3/clone3.c | 2 --
- tools/testing/selftests/pidfd/pidfd_test.c | 6 +++---
- tools/testing/selftests/pidfd/pidfd_wait.c | 5 ++---
- 3 files changed, 5 insertions(+), 8 deletions(-)
-
-diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c
-index 076cf4325f783..cd4582129c7d6 100644
---- a/tools/testing/selftests/clone3/clone3.c
-+++ b/tools/testing/selftests/clone3/clone3.c
-@@ -126,8 +126,6 @@ static void test_clone3(uint64_t flags, size_t size, int expected,
-
- int main(int argc, char *argv[])
- {
-- pid_t pid;
--
- uid_t uid = getuid();
-
- ksft_print_header();
-diff --git a/tools/testing/selftests/pidfd/pidfd_test.c b/tools/testing/selftests/pidfd/pidfd_test.c
-index 529eb700ac26a..9a2d64901d591 100644
---- a/tools/testing/selftests/pidfd/pidfd_test.c
-+++ b/tools/testing/selftests/pidfd/pidfd_test.c
-@@ -441,7 +441,6 @@ static void test_pidfd_poll_exec(int use_waitpid)
- {
- int pid, pidfd = 0;
- int status, ret;
-- pthread_t t1;
- time_t prog_start = time(NULL);
- const char *test_name = "pidfd_poll check for premature notification on child thread exec";
-
-@@ -500,13 +499,14 @@ static int child_poll_leader_exit_test(void *args)
- */
- *child_exit_secs = time(NULL);
- syscall(SYS_exit, 0);
-+ /* Never reached, but appeases compiler thinking we should return. */
-+ exit(0);
- }
-
- static void test_pidfd_poll_leader_exit(int use_waitpid)
- {
- int pid, pidfd = 0;
-- int status, ret;
-- time_t prog_start = time(NULL);
-+ int status, ret = 0;
- const char *test_name = "pidfd_poll check for premature notification on non-empty"
- "group leader exit";
-
-diff --git a/tools/testing/selftests/pidfd/pidfd_wait.c b/tools/testing/selftests/pidfd/pidfd_wait.c
-index be2943f072f60..17999e082aa71 100644
---- a/tools/testing/selftests/pidfd/pidfd_wait.c
-+++ b/tools/testing/selftests/pidfd/pidfd_wait.c
-@@ -39,7 +39,7 @@ static int sys_waitid(int which, pid_t pid, siginfo_t *info, int options,
-
- TEST(wait_simple)
- {
-- int pidfd = -1, status = 0;
-+ int pidfd = -1;
- pid_t parent_tid = -1;
- struct clone_args args = {
- .parent_tid = ptr_to_u64(&parent_tid),
-@@ -47,7 +47,6 @@ TEST(wait_simple)
- .flags = CLONE_PIDFD | CLONE_PARENT_SETTID,
- .exit_signal = SIGCHLD,
- };
-- int ret;
- pid_t pid;
- siginfo_t info = {
- .si_signo = 0,
-@@ -88,7 +87,7 @@ TEST(wait_simple)
-
- TEST(wait_states)
- {
-- int pidfd = -1, status = 0;
-+ int pidfd = -1;
- pid_t parent_tid = -1;
- struct clone_args args = {
- .parent_tid = ptr_to_u64(&parent_tid),
---
-2.34.1
-
net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch
net-macb-align-the-dma-and-coherent-dma-masks.patch
kconfig-fix-failing-to-generate-auto.conf.patch
-arm-omap2-hwmod-add-of_node_put-before-break.patch-22782
-arm-omap2-adjust-the-location-of-put_device-call-in-.patch-9755
-phy-usb-leave-some-clocks-running-during-suspend.patch-13667
-irqchip-sifive-plic-add-missing-thead-c900-plic-matc.patch-19551
-netfilter-conntrack-don-t-refresh-sctp-entries-in-cl.patch-20112
-arm64-dts-meson-gx-add-atf-bl32-reserved-memory-regi.patch-30048
-arm64-dts-meson-g12-add-atf-bl32-reserved-memory-reg.patch-14420
-arm64-dts-meson-g12-drop-bl32-region-from-sei510-sei.patch-23602
-pidfd-fix-test-failure-due-to-stack-overflow-on-some.patch-14495
-selftests-fixup-build-warnings-in-pidfd-clone3-tests.patch-8650
-kconfig-let-shell-return-enough-output-for-deep-path.patch-11556
-ata-libata-core-disable-trim-on-m88v29.patch-6366
-soc-aspeed-lpc-ctrl-block-error-printing-on-probe-de.patch-20112
-xprtrdma-fix-pointer-derefs-in-error-cases-of-rpcrdm.patch-10746
-drm-rockchip-dw_hdmi-do-not-leave-clock-enabled-in-e.patch-11007
-tracing-fix-tp_printk-option-related-with-tp_printk_.patch-15078
-net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch-16186
-net-macb-align-the-dma-and-coherent-dma-masks.patch-8692
-kconfig-fix-failing-to-generate-auto.conf.patch-29850
-From fd6c1efba6829a61788a66ae02747395b6d30a22 Mon Sep 17 00:00:00 2001
+From d2d6af172a22cc81c43777e708d424b489f16833 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 1 Feb 2022 17:31:18 +1030
Subject: soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
+++ /dev/null
-From fd6c1efba6829a61788a66ae02747395b6d30a22 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 1 Feb 2022 17:31:18 +1030
-Subject: soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
-
-From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-
-[ Upstream commit 301a5d3ad2432d7829f59432ca0a93a6defbb9a1 ]
-
-Add a checking code when it gets -EPROBE_DEFER while getting a clock
-resource. In this case, it doesn't need to print out an error message
-because the probing will be re-visited.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
-Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
-Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com>
-Link: https://lore.kernel.org/r/20211104173709.222912-1-jae.hyun.yoo@intel.com
-Link: https://lore.kernel.org/r/20220201070118.196372-1-joel@jms.id.au'
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/soc/aspeed/aspeed-lpc-ctrl.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/soc/aspeed/aspeed-lpc-ctrl.c b/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-index 040c7dc1d4792..71b555c715d2e 100644
---- a/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-+++ b/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-@@ -251,10 +251,9 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)
- }
-
- lpc_ctrl->clk = devm_clk_get(dev, NULL);
-- if (IS_ERR(lpc_ctrl->clk)) {
-- dev_err(dev, "couldn't get clock\n");
-- return PTR_ERR(lpc_ctrl->clk);
-- }
-+ if (IS_ERR(lpc_ctrl->clk))
-+ return dev_err_probe(dev, PTR_ERR(lpc_ctrl->clk),
-+ "couldn't get clock\n");
- rc = clk_prepare_enable(lpc_ctrl->clk);
- if (rc) {
- dev_err(dev, "couldn't enable clock\n");
---
-2.34.1
-
-From e9b35ec1850373dfe3ea056ae5a959983651b48b Mon Sep 17 00:00:00 2001
+From 9598b9f36242b9f1a706c35a6550ca52f78aed5b Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 04:54:22 +0900
Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+++ /dev/null
-From e9b35ec1850373dfe3ea056ae5a959983651b48b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 04:54:22 +0900
-Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
-
-From: JaeSang Yoo <js.yoo.5b@gmail.com>
-
-[ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ]
-
-The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is
-the same as another kernel parameter "tp_printk". If "tp_printk" setup is
-called before the "tp_printk_stop_on_boot", it will override the latter
-and keep it from being set.
-
-This is similar to other kernel parameter issues, such as:
- Commit 745a600cf1a6 ("um: console: Ignore console= option")
-or init/do_mounts.c:45 (setup function of "ro" kernel param)
-
-Fix it by checking for a "_" right after the "tp_printk" and if that
-exists do not process the parameter.
-
-Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com
-
-Signed-off-by: JaeSang Yoo <jsyoo5b@gmail.com>
-[ Fixed up change log and added space after if condition ]
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/trace/trace.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index a0729213f37be..f9fad789321b0 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -250,6 +250,10 @@ __setup("trace_clock=", set_trace_boot_clock);
-
- static int __init set_tracepoint_printk(char *str)
- {
-+ /* Ignore the "tp_printk_stop_on_boot" param */
-+ if (*str == '_')
-+ return 0;
-+
- if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
- tracepoint_printk = 1;
- return 1;
---
-2.34.1
-
-From 5e025afedcb3a8cb7ab22e446e48a75eaf66d9ea Mon Sep 17 00:00:00 2001
+From 94271f6cfc9239941f2f4e0e190618393dd61a8d Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 25 Jan 2022 22:06:46 +0200
Subject: xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
+++ /dev/null
-From 5e025afedcb3a8cb7ab22e446e48a75eaf66d9ea Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 25 Jan 2022 22:06:46 +0200
-Subject: xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
-
-From: Dan Aloni <dan.aloni@vastdata.com>
-
-[ Upstream commit a9c10b5b3b67b3750a10c8b089b2e05f5e176e33 ]
-
-If there are failures then we must not leave the non-NULL pointers with
-the error value, otherwise `rpcrdma_ep_destroy` gets confused and tries
-free them, resulting in an Oops.
-
-Signed-off-by: Dan Aloni <dan.aloni@vastdata.com>
-Acked-by: Chuck Lever <chuck.lever@oracle.com>
-Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/sunrpc/xprtrdma/verbs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
-index 25554260a5931..dcc1992b14d76 100644
---- a/net/sunrpc/xprtrdma/verbs.c
-+++ b/net/sunrpc/xprtrdma/verbs.c
-@@ -449,6 +449,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- IB_POLL_WORKQUEUE);
- if (IS_ERR(ep->re_attr.send_cq)) {
- rc = PTR_ERR(ep->re_attr.send_cq);
-+ ep->re_attr.send_cq = NULL;
- goto out_destroy;
- }
-
-@@ -457,6 +458,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- IB_POLL_WORKQUEUE);
- if (IS_ERR(ep->re_attr.recv_cq)) {
- rc = PTR_ERR(ep->re_attr.recv_cq);
-+ ep->re_attr.recv_cq = NULL;
- goto out_destroy;
- }
- ep->re_receive_count = 0;
-@@ -495,6 +497,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- ep->re_pd = ib_alloc_pd(device, 0);
- if (IS_ERR(ep->re_pd)) {
- rc = PTR_ERR(ep->re_pd);
-+ ep->re_pd = NULL;
- goto out_destroy;
- }
-
---
-2.34.1
-
-From a402d8f3d120e2dd27fc238ad40d9f14a9c2127f Mon Sep 17 00:00:00 2001
+From 5fd1eab358eca1c713d8208970e29292399c97b6 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 14:35:03 -0600
Subject: ACPI: PM: Revert "Only mark EC GPE for wakeup on Intel systems"
+++ /dev/null
-From a402d8f3d120e2dd27fc238ad40d9f14a9c2127f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 14:35:03 -0600
-Subject: ACPI: PM: Revert "Only mark EC GPE for wakeup on Intel systems"
-
-From: Mario Limonciello <mario.limonciello@amd.com>
-
-[ Upstream commit d6ebb17ccc7b37872a32bc25b4a21f1e5af8c7e3 ]
-
-Testing on various upcoming OEM systems shows commit 7b167c4cb48e ("ACPI:
-PM: Only mark EC GPE for wakeup on Intel systems") was short
-sighted and the symptoms were indicative of other problems. Some OEMs
-do have the dedicated GPIOs for the power button but also rely upon
-an interrupt to the EC SCI to let the lid work.
-
-The original commit showed spurious activity on Lenovo systems:
- * On both Lenovo T14 and P14s the keyboard wakeup doesn't work, and
- sometimes the power button event doesn't work.
-
-This was confirmed on my end at that time.
-
-However further development in the kernel showed that the issue was
-actually the IRQ for the GPIO controller was also shared with the EC SCI.
-This was actually fixed by commit 2d54067fcd23 ("pinctrl: amd: Fix
-wakeups when IRQ is shared with SCI").
-
-The original commit also showed problems with AC adapter:
- * On HP 635 G7 detaching or attaching AC during suspend will cause
- the system not to wakeup
- * On Asus vivobook to prevent detaching AC causing resume problems
- * On Lenovo 14ARE05 to prevent detaching AC causing resume problems
- * On HP ENVY x360 to prevent detaching AC causing resume problems
-
-Detaching AC adapter causing problems appears to have been a problem
-because the EC SCI went off to notify the OS of the power adapter change
-but the SCI was ignored and there was no other way to wake up this system
-since GPIO controller wasn't properly enabled. The wakeups were fixed by
-enabling the GPIO controller in commit acd47b9f28e5 ("pinctrl: amd: Handle
-wake-up interrupt").
-
-I've confirmed on a variety of OEM notebooks with the following test
-
- 1) echo 1 | sudo tee /sys/power/pm_debug_messages
- 2) sudo systemctl suspend
- 3) unplug AC adapter, make sure system is still asleep
- 4) wake system from lid (which is provided by ACPI SCI on some of them)
- 5) dmesg
- a) see the EC GPE dispatched, timekeeping for X seconds (matching ~time
- until AC adapter plug out)
- b) see timekeeping for Y seconds until woke (matching ~time from AC
- adapter until lid event)
- 6) Look at /sys/kernel/debug/amd_pmc/s0ix_stats
- "Time (in us) in S0i3" = X + Y - firmware processing time
-
-Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
-Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/acpi/x86/s2idle.c | 12 ++++--------
- 1 file changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
-index 1c48358b43ba3..e0185e841b2a3 100644
---- a/drivers/acpi/x86/s2idle.c
-+++ b/drivers/acpi/x86/s2idle.c
-@@ -424,15 +424,11 @@ static int lps0_device_attach(struct acpi_device *adev,
- mem_sleep_current = PM_SUSPEND_TO_IDLE;
-
- /*
-- * Some Intel based LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U don't
-- * use intel-hid or intel-vbtn but require the EC GPE to be enabled while
-- * suspended for certain wakeup devices to work, so mark it as wakeup-capable.
-- *
-- * Only enable on !AMD as enabling this universally causes problems for a number
-- * of AMD based systems.
-+ * Some LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U, require the
-+ * EC GPE to be enabled while suspended for certain wakeup devices to
-+ * work, so mark it as wakeup-capable.
- */
-- if (!acpi_s2idle_vendor_amd())
-- acpi_ec_mark_gpe_for_wake();
-+ acpi_ec_mark_gpe_for_wake();
-
- return 0;
- }
---
-2.34.1
-
-From a43d7f46b8ba789facaf6207b1802cce4b64432c Mon Sep 17 00:00:00 2001
+From 6432149761e69cfbfd7a5c81bb06eefcf83c9bb6 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 16 Nov 2021 06:27:26 +0000
Subject: ARM: OMAP2+: adjust the location of put_device() call in
+++ /dev/null
-From a43d7f46b8ba789facaf6207b1802cce4b64432c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Nov 2021 06:27:26 +0000
-Subject: ARM: OMAP2+: adjust the location of put_device() call in
- omapdss_init_of
-
-From: Ye Guojin <ye.guojin@zte.com.cn>
-
-[ Upstream commit 34596ba380b03d181e24efd50e2f21045bde3696 ]
-
-This was found by coccicheck:
-./arch/arm/mach-omap2/display.c, 272, 1-7, ERROR missing put_device;
-call of_find_device_by_node on line 258, but without a corresponding
-object release within this function.
-
-Move the put_device() call before the if judgment.
-
-Reported-by: Zeal Robot <zealci@zte.com.cn>
-Signed-off-by: Ye Guojin <ye.guojin@zte.com.cn>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/display.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
-index 6daaa645ae5d9..21413a9b7b6c6 100644
---- a/arch/arm/mach-omap2/display.c
-+++ b/arch/arm/mach-omap2/display.c
-@@ -263,9 +263,9 @@ static int __init omapdss_init_of(void)
- }
-
- r = of_platform_populate(node, NULL, NULL, &pdev->dev);
-+ put_device(&pdev->dev);
- if (r) {
- pr_err("Unable to populate DSS submodule devices\n");
-- put_device(&pdev->dev);
- return r;
- }
-
---
-2.34.1
-
-From 86a1706ea103e03694c4459bc91caac3cfff3c83 Mon Sep 17 00:00:00 2001
+From 7cb728496d18ab2069ab84e72e139ef984691fe5 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 14 Oct 2021 04:57:19 -0400
Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
+++ /dev/null
-From 86a1706ea103e03694c4459bc91caac3cfff3c83 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 14 Oct 2021 04:57:19 -0400
-Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 80c469a0a03763f814715f3d12b6f3964c7423e8 ]
-
-Fix following coccicheck warning:
-./arch/arm/mach-omap2/omap_hwmod.c:753:1-23: WARNING: Function
-for_each_matching_node should have of_node_put() before break
-
-Early exits from for_each_matching_node should decrement the
-node reference counter.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/omap_hwmod.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 0c2936c7a3799..a5e9cffcac10c 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -752,8 +752,10 @@ static int __init _init_clkctrl_providers(void)
-
- for_each_matching_node(np, ti_clkctrl_match_table) {
- ret = _setup_clkctrl_provider(np);
-- if (ret)
-+ if (ret) {
-+ of_node_put(np);
- break;
-+ }
- }
-
- return ret;
---
-2.34.1
-
-From c5424fe6ea3483a0171b64d46090b0cdf79c3852 Mon Sep 17 00:00:00 2001
+From 1bc1e2acda74c624b048c6e3190dc1f71b395916 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:53 +0000
Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
index 428449d98c0ae..a3a1ea0f21340 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -107,6 +107,12 @@ secmon_reserved: secmon@5000000 {
+@@ -107,6 +107,12 @@
no-map;
};
+++ /dev/null
-From c5424fe6ea3483a0171b64d46090b0cdf79c3852 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:53 +0000
-Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 08982a1b3aa2611c9c711d24825c9002d28536f4 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-3-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-index 428449d98c0ae..a3a1ea0f21340 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -107,6 +107,12 @@ secmon_reserved: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From 02ee3bd0fb95ba5923b76d1c4192dfc867f92d75 Mon Sep 17 00:00:00 2001
+From 4fc85c5bf186f00efa410b65f63506bcd9092542 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:54 +0000
Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
index d8838dde0f0f4..4fb31c2ba31c4 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -157,14 +157,6 @@
regulator-always-on;
};
index 427475846fc70..a5d79f2f7c196 100644
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -203,14 +203,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -203,14 +203,6 @@
regulator-always-on;
};
+++ /dev/null
-From 02ee3bd0fb95ba5923b76d1c4192dfc867f92d75 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:54 +0000
-Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit f26573e2bc9dfd551a0d5c6971f18cc546543312 ]
-
-The BL32/TEE reserved-memory region is now inherited from the common
-family dtsi (meson-g12-common) so we can drop it from board files.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-4-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 8 --------
- arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 8 --------
- 2 files changed, 16 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-index d8838dde0f0f4..4fb31c2ba31c4 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-index 427475846fc70..a5d79f2f7c196 100644
---- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -203,14 +203,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
---
-2.34.1
-
-From 70a7a4bc0dd897c2d271ca4f38bd6505d47cf754 Mon Sep 17 00:00:00 2001
+From acc531034d051a4b6b127dcc3c46da6c74ea3c4c Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:52 +0000
Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
index 6b457b2c30a4b..aa14ea017a613 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -49,6 +49,12 @@ secmon_reserved_alt: secmon@5000000 {
+@@ -49,6 +49,12 @@
no-map;
};
+++ /dev/null
-From 70a7a4bc0dd897c2d271ca4f38bd6505d47cf754 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:52 +0000
-Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 76577c9137456febb05b0e17d244113196a98968 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Suggested-by: Mateusz Krzak <kszaquitto@gmail.com>
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-2-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index 6b457b2c30a4b..aa14ea017a613 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -49,6 +49,12 @@ secmon_reserved_alt: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From 173cf3e85c0dc01dd0d37fc5e00605e39b1debd8 Mon Sep 17 00:00:00 2001
+From 57e49eb1a5e0bb73efccac7ee634d4d2fe374757 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 4 Feb 2022 13:57:50 +0100
Subject: ata: libata-core: Disable TRIM on M88V29
+++ /dev/null
-From 173cf3e85c0dc01dd0d37fc5e00605e39b1debd8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Feb 2022 13:57:50 +0100
-Subject: ata: libata-core: Disable TRIM on M88V29
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Zoltán Böszörményi <zboszor@gmail.com>
-
-[ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ]
-
-This device is a CF card, or possibly an SSD in CF form factor.
-It supports NCQ and high speed DMA.
-
-While it also advertises TRIM support, I/O errors are reported
-when the discard mount option fstrim is used. TRIM also fails
-when disabling NCQ and not just as an NCQ command.
-
-TRIM must be disabled for this device.
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 4d848cfc406fe..24b67d78cb83d 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -4014,6 +4014,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
-
- /* devices that don't properly handle TRIM commands */
- { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
-+ { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, },
-
- /*
- * As defined, the DRAT (Deterministic Read After Trim) and RZAT
---
-2.34.1
-
-From 862cd951ba1818871b05f9c40ee5812502b01396 Mon Sep 17 00:00:00 2001
+From f7289d47ee2a6705cc835e6f97c15eb9e3f2c5d7 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 25 Jan 2022 15:49:47 -0600
Subject: display/amd: decrease message verbosity about watermarks table
+++ /dev/null
-From 862cd951ba1818871b05f9c40ee5812502b01396 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 25 Jan 2022 15:49:47 -0600
-Subject: display/amd: decrease message verbosity about watermarks table
- failure
-
-From: Mario Limonciello <mario.limonciello@amd.com>
-
-[ Upstream commit 03ad3093c7c069d6ab4403730009ebafeea9ee37 ]
-
-A number of BIOS versions have a problem with the watermarks table not
-being configured properly. This manifests as a very scary looking warning
-during resume from s0i3. This should be harmless in most cases and is well
-understood, so decrease the assertion to a clearer warning about the problem.
-
-Reviewed-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c
-index 162ae71861247..21d2cbc3cbb20 100644
---- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c
-+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c
-@@ -120,7 +120,11 @@ int dcn31_smu_send_msg_with_param(
- result = dcn31_smu_wait_for_response(clk_mgr, 10, 200000);
-
- if (result == VBIOSSMC_Result_Failed) {
-- ASSERT(0);
-+ if (msg_id == VBIOSSMC_MSG_TransferTableDram2Smu &&
-+ param == TABLE_WATERMARKS)
-+ DC_LOG_WARNING("Watermarks table not configured properly by SMU");
-+ else
-+ ASSERT(0);
- REG_WRITE(MP1_SMN_C2PMSG_91, VBIOSSMC_Result_OK);
- return -1;
- }
---
-2.34.1
-
-From 85bf2d8a7751252e1e9fdb6418195a00166bbca2 Mon Sep 17 00:00:00 2001
+From 9ec405c42a7ce23d02cc3174bdea2c0e4be2afee Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 2 Feb 2022 14:30:09 -0500
Subject: drm/amd/display: Cap pflip irqs per max otg number
+++ /dev/null
-From 85bf2d8a7751252e1e9fdb6418195a00166bbca2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 2 Feb 2022 14:30:09 -0500
-Subject: drm/amd/display: Cap pflip irqs per max otg number
-
-From: Roman Li <Roman.Li@amd.com>
-
-[ Upstream commit 328e34a5ad227399391891d454043e5d73e598d2 ]
-
-[Why]
-pflip interrupt order are mapped 1 to 1 to otg id.
-e.g. if irq_src=26 corresponds to otg0 then 27->otg1, 28->otg2...
-
-Linux DM registers pflip interrupts per number of crtcs.
-In fused pipe case crtc numbers can be less than otg id.
-
-e.g. if one pipe out of 3(otg#0-2) is fused adev->mode_info.num_crtc=2
-so DM only registers irq_src 26,27.
-This is a bug since if pipe#2 remains unfused DM never gets
-otg2 pflip interrupt (irq_src=28)
-That may results in gfx failure due to pflip timeout.
-
-[How]
-Register pflip interrupts per max num of otg instead of num_crtc
-
-Signed-off-by: Roman Li <Roman.Li@amd.com>
-Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
- drivers/gpu/drm/amd/display/dc/core/dc.c | 2 ++
- drivers/gpu/drm/amd/display/dc/dc.h | 1 +
- 3 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-index 16556ae892d4a..5ae9b8133d6da 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -3230,7 +3230,7 @@ static int dcn10_register_irq_handlers(struct amdgpu_device *adev)
-
- /* Use GRPH_PFLIP interrupt */
- for (i = DCN_1_0__SRCID__HUBP0_FLIP_INTERRUPT;
-- i <= DCN_1_0__SRCID__HUBP0_FLIP_INTERRUPT + adev->mode_info.num_crtc - 1;
-+ i <= DCN_1_0__SRCID__HUBP0_FLIP_INTERRUPT + dc->caps.max_otg_num - 1;
- i++) {
- r = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_DCE, i, &adev->pageflip_irq);
- if (r) {
-diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
-index 1860ccc3f4f2c..4fae73478840c 100644
---- a/drivers/gpu/drm/amd/display/dc/core/dc.c
-+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
-@@ -1118,6 +1118,8 @@ struct dc *dc_create(const struct dc_init_data *init_params)
-
- dc->caps.max_dp_protocol_version = DP_VERSION_1_4;
-
-+ dc->caps.max_otg_num = dc->res_pool->res_cap->num_timing_generator;
-+
- if (dc->res_pool->dmcu != NULL)
- dc->versions.dmcu_version = dc->res_pool->dmcu->dmcu_version;
- }
-diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
-index 3ab52d9a82cf6..e0f58fab5e8ed 100644
---- a/drivers/gpu/drm/amd/display/dc/dc.h
-+++ b/drivers/gpu/drm/amd/display/dc/dc.h
-@@ -185,6 +185,7 @@ struct dc_caps {
- struct dc_color_caps color;
- bool vbios_lttpr_aware;
- bool vbios_lttpr_enable;
-+ uint32_t max_otg_num;
- };
-
- struct dc_bug_wa {
---
-2.34.1
-
-From 915a3e845bc7d16a8162211564131f0d64e67736 Mon Sep 17 00:00:00 2001
+From 5f413c183a2954554aca3eddb60a4a3a0b2c4804 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 11:55:49 -0500
Subject: drm/amd/display: fix yellow carp wm clamping
+++ /dev/null
-From 915a3e845bc7d16a8162211564131f0d64e67736 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 11:55:49 -0500
-Subject: drm/amd/display: fix yellow carp wm clamping
-
-From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-
-[ Upstream commit 60fdf98a774eee244a4e00c34a9e7729b61d0f44 ]
-
-Fix clamping to match register field size
-
-Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
-Acked-by: Jasdeep Dhillon <jdhillon@amd.com>
-Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- .../drm/amd/display/dc/dcn31/dcn31_hubbub.c | 61 ++++++++++---------
- 1 file changed, 32 insertions(+), 29 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c
-index 90c73a1cb9861..5e3bcaf12cac4 100644
---- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c
-+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c
-@@ -138,8 +138,11 @@ static uint32_t convert_and_clamp(
- ret_val = wm_ns * refclk_mhz;
- ret_val /= 1000;
-
-- if (ret_val > clamp_value)
-+ if (ret_val > clamp_value) {
-+ /* clamping WMs is abnormal, unexpected and may lead to underflow*/
-+ ASSERT(0);
- ret_val = clamp_value;
-+ }
-
- return ret_val;
- }
-@@ -159,7 +162,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->a.urgent_ns > hubbub2->watermarks.a.urgent_ns) {
- hubbub2->watermarks.a.urgent_ns = watermarks->a.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A, prog_wm_value);
-
-@@ -193,7 +196,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->a.urgent_latency_ns > hubbub2->watermarks.a.urgent_latency_ns) {
- hubbub2->watermarks.a.urgent_latency_ns = watermarks->a.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->a.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_A, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_A, prog_wm_value);
- } else if (watermarks->a.urgent_latency_ns < hubbub2->watermarks.a.urgent_latency_ns)
-@@ -203,7 +206,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->b.urgent_ns > hubbub2->watermarks.b.urgent_ns) {
- hubbub2->watermarks.b.urgent_ns = watermarks->b.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->b.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B, prog_wm_value);
-
-@@ -237,7 +240,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->b.urgent_latency_ns > hubbub2->watermarks.b.urgent_latency_ns) {
- hubbub2->watermarks.b.urgent_latency_ns = watermarks->b.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->b.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_B, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_B, prog_wm_value);
- } else if (watermarks->b.urgent_latency_ns < hubbub2->watermarks.b.urgent_latency_ns)
-@@ -247,7 +250,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->c.urgent_ns > hubbub2->watermarks.c.urgent_ns) {
- hubbub2->watermarks.c.urgent_ns = watermarks->c.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->c.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C, prog_wm_value);
-
-@@ -281,7 +284,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->c.urgent_latency_ns > hubbub2->watermarks.c.urgent_latency_ns) {
- hubbub2->watermarks.c.urgent_latency_ns = watermarks->c.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->c.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_C, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_C, prog_wm_value);
- } else if (watermarks->c.urgent_latency_ns < hubbub2->watermarks.c.urgent_latency_ns)
-@@ -291,7 +294,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->d.urgent_ns > hubbub2->watermarks.d.urgent_ns) {
- hubbub2->watermarks.d.urgent_ns = watermarks->d.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->d.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D, prog_wm_value);
-
-@@ -325,7 +328,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->d.urgent_latency_ns > hubbub2->watermarks.d.urgent_latency_ns) {
- hubbub2->watermarks.d.urgent_latency_ns = watermarks->d.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->d.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_D, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_D, prog_wm_value);
- } else if (watermarks->d.urgent_latency_ns < hubbub2->watermarks.d.urgent_latency_ns)
-@@ -351,7 +354,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_A calculated =%d\n"
-@@ -367,7 +370,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_A calculated =%d\n"
-@@ -383,7 +386,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_A calculated =%d\n"
-@@ -399,7 +402,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_A calculated =%d\n"
-@@ -416,7 +419,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_B calculated =%d\n"
-@@ -432,7 +435,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_B calculated =%d\n"
-@@ -448,7 +451,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_B calculated =%d\n"
-@@ -464,7 +467,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_B calculated =%d\n"
-@@ -481,7 +484,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_C calculated =%d\n"
-@@ -497,7 +500,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_C calculated =%d\n"
-@@ -513,7 +516,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_C calculated =%d\n"
-@@ -529,7 +532,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_C calculated =%d\n"
-@@ -546,7 +549,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_D calculated =%d\n"
-@@ -562,7 +565,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_D calculated =%d\n"
-@@ -578,7 +581,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_D calculated =%d\n"
-@@ -594,7 +597,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_D calculated =%d\n"
-@@ -625,7 +628,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->a.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_A calculated =%d\n"
-@@ -642,7 +645,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->b.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_B calculated =%d\n"
-@@ -659,7 +662,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->c.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_C calculated =%d\n"
-@@ -676,7 +679,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->d.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_D calculated =%d\n"
---
-2.34.1
-
-From e4dd9e0661a4f34f06b28beac60cd2ca6bccc0a1 Mon Sep 17 00:00:00 2001
+From 08df8447c2045c2e18edc24236767597a45ab59c Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 15:55:24 +0100
Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
+++ /dev/null
-From e4dd9e0661a4f34f06b28beac60cd2ca6bccc0a1 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 15:55:24 +0100
-Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
-
-From: Sascha Hauer <s.hauer@pengutronix.de>
-
-[ Upstream commit c0cfbb122275da1b726481de5a8cffeb24e6322b ]
-
-The driver returns an error when devm_phy_optional_get() fails leaving
-the previously enabled clock turned on. Change order and enable the
-clock only after the phy has been acquired.
-
-Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220126145549.617165-3-s.hauer@pengutronix.de
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-index 830bdd5e9b7ce..8677c82716784 100644
---- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-@@ -529,13 +529,6 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-- ret = clk_prepare_enable(hdmi->vpll_clk);
-- if (ret) {
-- DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-- ret);
-- return ret;
-- }
--
- hdmi->phy = devm_phy_optional_get(dev, "hdmi");
- if (IS_ERR(hdmi->phy)) {
- ret = PTR_ERR(hdmi->phy);
-@@ -544,6 +537,13 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-+ ret = clk_prepare_enable(hdmi->vpll_clk);
-+ if (ret) {
-+ DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-+ ret);
-+ return ret;
-+ }
-+
- drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
- drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
-
---
-2.34.1
-
-From f759f0d86d570b917651c247d4e0e871cedc2ba5 Mon Sep 17 00:00:00 2001
+From 6a24836137d75ec792974655995c246308db1daf Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 21:56:34 +0800
Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
+++ /dev/null
-From f759f0d86d570b917651c247d4e0e871cedc2ba5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 21:56:34 +0800
-Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
-
-From: Guo Ren <guoren@linux.alibaba.com>
-
-[ Upstream commit 1d4df649cbb4b26d19bea38ecff4b65b10a1bbca ]
-
-The thead,c900-plic has been used in opensbi to distinguish
-PLIC [1]. Although PLICs have the same behaviors in Linux,
-they are different hardware with some custom initializing in
-firmware(opensbi).
-
-Qute opensbi patch commit-msg by Samuel:
-
- The T-HEAD PLIC implementation requires setting a delegation bit
- to allow access from S-mode. Now that the T-HEAD PLIC has its own
- compatible string, set this bit automatically from the PLIC driver,
- instead of reaching into the PLIC's MMIO space from another driver.
-
-[1]: https://github.com/riscv-software-src/opensbi/commit/78c2b19218bd62653b9fb31623a42ced45f38ea6
-
-Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
-Cc: Anup Patel <anup@brainfault.org>
-Cc: Marc Zyngier <maz@kernel.org>
-Cc: Palmer Dabbelt <palmer@dabbelt.com>
-Cc: Samuel Holland <samuel@sholland.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Tested-by: Samuel Holland <samuel@sholland.org>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220130135634.1213301-3-guoren@kernel.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-sifive-plic.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
-index 259065d271ef0..09cc98266d30f 100644
---- a/drivers/irqchip/irq-sifive-plic.c
-+++ b/drivers/irqchip/irq-sifive-plic.c
-@@ -398,3 +398,4 @@ static int __init plic_init(struct device_node *node,
-
- IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init);
- IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */
-+IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_init); /* for firmware driver */
---
-2.34.1
-
-From 99fd0dbf63f5557c162711c14305b901087efbe4 Mon Sep 17 00:00:00 2001
+From 7f120acf50329c6387bb448103cdd626cf9e7b2c Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 11 Feb 2022 17:27:36 +0800
Subject: kconfig: fix failing to generate auto.conf
+++ /dev/null
-From 99fd0dbf63f5557c162711c14305b901087efbe4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Feb 2022 17:27:36 +0800
-Subject: kconfig: fix failing to generate auto.conf
-
-From: Jing Leng <jleng@ambarella.com>
-
-[ Upstream commit 1b9e740a81f91ae338b29ed70455719804957b80 ]
-
-When the KCONFIG_AUTOCONFIG is specified (e.g. export \
-KCONFIG_AUTOCONFIG=output/config/auto.conf), the directory of
-include/config/ will not be created, so kconfig can't create deps
-files in it and auto.conf can't be generated.
-
-Signed-off-by: Jing Leng <jleng@ambarella.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/confdata.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
-index cf72680cd7692..4a828bca071e8 100644
---- a/scripts/kconfig/confdata.c
-+++ b/scripts/kconfig/confdata.c
-@@ -983,14 +983,19 @@ static int conf_write_dep(const char *name)
-
- static int conf_touch_deps(void)
- {
-- const char *name;
-+ const char *name, *tmp;
- struct symbol *sym;
- int res, i;
-
-- strcpy(depfile_path, "include/config/");
-- depfile_prefix_len = strlen(depfile_path);
--
- name = conf_get_autoconfig_name();
-+ tmp = strrchr(name, '/');
-+ depfile_prefix_len = tmp ? tmp - name + 1 : 0;
-+ if (depfile_prefix_len + 1 > sizeof(depfile_path))
-+ return -1;
-+
-+ strncpy(depfile_path, name, depfile_prefix_len);
-+ depfile_path[depfile_prefix_len] = 0;
-+
- conf_read_simple(name, S_DEF_AUTO);
- sym_calc_value(modules_sym);
-
---
-2.34.1
-
-From dd44d6ad2828601ada540c0fe887cb3996700633 Mon Sep 17 00:00:00 2001
+From 8dbc61a148da3231be77705d0fbb955a0696cfe1 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 16:01:28 -0600
Subject: kconfig: let 'shell' return enough output for deep path names
+++ /dev/null
-From dd44d6ad2828601ada540c0fe887cb3996700633 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 16:01:28 -0600
-Subject: kconfig: let 'shell' return enough output for deep path names
-
-From: Brenda Streiff <brenda.streiff@ni.com>
-
-[ Upstream commit 8a4c5b2a6d8ea079fa36034e8167de87ab6f8880 ]
-
-The 'shell' built-in only returns the first 256 bytes of the command's
-output. In some cases, 'shell' is used to return a path; by bumping up
-the buffer size to 4096 this lets us capture up to PATH_MAX.
-
-The specific case where I ran into this was due to commit 1e860048c53e
-("gcc-plugins: simplify GCC plugin-dev capability test"). After this
-change, we now use `$(shell,$(CC) -print-file-name=plugin)` to return
-a path; if the gcc path is particularly long, then the path ends up
-truncated at the 256 byte mark, which makes the HAVE_GCC_PLUGINS
-depends test always fail.
-
-Signed-off-by: Brenda Streiff <brenda.streiff@ni.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/preprocess.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/kconfig/preprocess.c b/scripts/kconfig/preprocess.c
-index 0590f86df6e40..748da578b418c 100644
---- a/scripts/kconfig/preprocess.c
-+++ b/scripts/kconfig/preprocess.c
-@@ -141,7 +141,7 @@ static char *do_lineno(int argc, char *argv[])
- static char *do_shell(int argc, char *argv[])
- {
- FILE *p;
-- char buf[256];
-+ char buf[4096];
- char *cmd;
- size_t nread;
- int i;
---
-2.34.1
-
-From 2e890949b1d9a114ee0ffe6eb01e72632d884f88 Mon Sep 17 00:00:00 2001
+From f1ff719a68121bf3d5c3e43a3934faf83692d9ae Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 18:31:01 +0900
Subject: ksmbd: don't align last entry offset in smb2 query directory
+++ /dev/null
-From 2e890949b1d9a114ee0ffe6eb01e72632d884f88 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 18:31:01 +0900
-Subject: ksmbd: don't align last entry offset in smb2 query directory
-
-From: Namjae Jeon <linkinjeon@kernel.org>
-
-[ Upstream commit 04e260948a160d3b7d622bf4c8a96fa4577c09bd ]
-
-When checking smb2 query directory packets from other servers,
-OutputBufferLength is different with ksmbd. Other servers add an unaligned
-next offset to OutputBufferLength for the last entry.
-
-Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ksmbd/smb2pdu.c | 7 ++++---
- fs/ksmbd/vfs.h | 1 +
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
-index 70685cbbec8c0..192d8308afc27 100644
---- a/fs/ksmbd/smb2pdu.c
-+++ b/fs/ksmbd/smb2pdu.c
-@@ -3422,9 +3422,9 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
- goto free_conv_name;
- }
-
-- struct_sz = readdir_info_level_struct_sz(info_level);
-- next_entry_offset = ALIGN(struct_sz - 1 + conv_len,
-- KSMBD_DIR_INFO_ALIGNMENT);
-+ struct_sz = readdir_info_level_struct_sz(info_level) - 1 + conv_len;
-+ next_entry_offset = ALIGN(struct_sz, KSMBD_DIR_INFO_ALIGNMENT);
-+ d_info->last_entry_off_align = next_entry_offset - struct_sz;
-
- if (next_entry_offset > d_info->out_buf_len) {
- d_info->out_buf_len = 0;
-@@ -3976,6 +3976,7 @@ int smb2_query_dir(struct ksmbd_work *work)
- ((struct file_directory_info *)
- ((char *)rsp->Buffer + d_info.last_entry_offset))
- ->NextEntryOffset = 0;
-+ d_info.data_count -= d_info.last_entry_off_align;
-
- rsp->StructureSize = cpu_to_le16(9);
- rsp->OutputBufferOffset = cpu_to_le16(72);
-diff --git a/fs/ksmbd/vfs.h b/fs/ksmbd/vfs.h
-index b0d5b8feb4a36..432c947731779 100644
---- a/fs/ksmbd/vfs.h
-+++ b/fs/ksmbd/vfs.h
-@@ -86,6 +86,7 @@ struct ksmbd_dir_info {
- int last_entry_offset;
- bool hide_dot_file;
- int flags;
-+ int last_entry_off_align;
- };
-
- struct ksmbd_readdir_data {
---
-2.34.1
-
-From 60e3fe1f9a3d9d1d9cf1760087d25ac7d1c23f08 Mon Sep 17 00:00:00 2001
+From 1b80bd3c95e1fe00f55d185c0d6d6ea653fa2c19 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 18:28:56 +0900
Subject: ksmbd: fix same UniqueId for dot and dotdot entries
+++ /dev/null
-From 60e3fe1f9a3d9d1d9cf1760087d25ac7d1c23f08 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 18:28:56 +0900
-Subject: ksmbd: fix same UniqueId for dot and dotdot entries
-
-From: Namjae Jeon <linkinjeon@kernel.org>
-
-[ Upstream commit 97550c7478a2da93e348d8c3075d92cddd473a78 ]
-
-ksmbd sets the inode number to UniqueId. However, the same UniqueId for
-dot and dotdot entry is set to the inode number of the parent inode.
-This patch set them using the current inode and parent inode.
-
-Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ksmbd/smb_common.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/fs/ksmbd/smb_common.c b/fs/ksmbd/smb_common.c
-index 707490ab1f4c4..f2e7e3a654b34 100644
---- a/fs/ksmbd/smb_common.c
-+++ b/fs/ksmbd/smb_common.c
-@@ -308,14 +308,17 @@ int ksmbd_populate_dot_dotdot_entries(struct ksmbd_work *work, int info_level,
- for (i = 0; i < 2; i++) {
- struct kstat kstat;
- struct ksmbd_kstat ksmbd_kstat;
-+ struct dentry *dentry;
-
- if (!dir->dot_dotdot[i]) { /* fill dot entry info */
- if (i == 0) {
- d_info->name = ".";
- d_info->name_len = 1;
-+ dentry = dir->filp->f_path.dentry;
- } else {
- d_info->name = "..";
- d_info->name_len = 2;
-+ dentry = dir->filp->f_path.dentry->d_parent;
- }
-
- if (!match_pattern(d_info->name, d_info->name_len,
-@@ -327,7 +330,7 @@ int ksmbd_populate_dot_dotdot_entries(struct ksmbd_work *work, int info_level,
- ksmbd_kstat.kstat = &kstat;
- ksmbd_vfs_fill_dentry_attrs(work,
- user_ns,
-- dir->filp->f_path.dentry->d_parent,
-+ dentry,
- &ksmbd_kstat);
- rc = fn(conn, info_level, d_info, &ksmbd_kstat);
- if (rc)
---
-2.34.1
-
-From 11c1c155d3ea13ad53e4437c65805737dccbf065 Mon Sep 17 00:00:00 2001
+From b0f97e8ac860aeefeeb20c26a9fb910146132ac6 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Mon, 24 Jan 2022 21:17:36 -0800
Subject: mm: io_uring: allow oom-killer from io_uring_setup
+++ /dev/null
-From 11c1c155d3ea13ad53e4437c65805737dccbf065 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 24 Jan 2022 21:17:36 -0800
-Subject: mm: io_uring: allow oom-killer from io_uring_setup
-
-From: Shakeel Butt <shakeelb@google.com>
-
-[ Upstream commit 0a3f1e0beacf6cc8ae5f846b0641c1df476e83d6 ]
-
-On an overcommitted system which is running multiple workloads of
-varying priorities, it is preferred to trigger an oom-killer to kill a
-low priority workload than to let the high priority workload receiving
-ENOMEMs. On our memory overcommitted systems, we are seeing a lot of
-ENOMEMs instead of oom-kills because io_uring_setup callchain is using
-__GFP_NORETRY gfp flag which avoids the oom-killer. Let's remove it and
-allow the oom-killer to kill a lower priority job.
-
-Signed-off-by: Shakeel Butt <shakeelb@google.com>
-Link: https://lore.kernel.org/r/20220125051736.2981459-1-shakeelb@google.com
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/io_uring.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/fs/io_uring.c b/fs/io_uring.c
-index 993913c585fbf..21fc8ce9405d3 100644
---- a/fs/io_uring.c
-+++ b/fs/io_uring.c
-@@ -8820,10 +8820,9 @@ static void io_mem_free(void *ptr)
-
- static void *io_mem_alloc(size_t size)
- {
-- gfp_t gfp_flags = GFP_KERNEL | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP |
-- __GFP_NORETRY | __GFP_ACCOUNT;
-+ gfp_t gfp = GFP_KERNEL_ACCOUNT | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP;
-
-- return (void *) __get_free_pages(gfp_flags, get_order(size));
-+ return (void *) __get_free_pages(gfp, get_order(size));
- }
-
- static unsigned long rings_size(unsigned sq_entries, unsigned cq_entries,
---
-2.34.1
-
-From 59867b04c33a8a42d5e92ce048bf81c236473648 Mon Sep 17 00:00:00 2001
+From eee06432aa452f086e3c8c8189005f4e890ba840 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 15:13:25 +0530
Subject: net: macb: Align the dma and coherent dma masks
+++ /dev/null
-From 59867b04c33a8a42d5e92ce048bf81c236473648 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 15:13:25 +0530
-Subject: net: macb: Align the dma and coherent dma masks
-
-From: Marc St-Amand <mstamand@ciena.com>
-
-[ Upstream commit 37f7860602b5b2d99fc7465f6407f403f5941988 ]
-
-Single page and coherent memory blocks can use different DMA masks
-when the macb accesses physical memory directly. The kernel is clever
-enough to allocate pages that fit into the requested address width.
-
-When using the ARM SMMU, the DMA mask must be the same for single
-pages and big coherent memory blocks. Otherwise the translation
-tables turn into one big mess.
-
- [ 74.959909] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 74.959989] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
- [ 75.173939] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 75.173955] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
-
-Since using the same DMA mask does not hurt direct 1:1 physical
-memory mappings, this commit always aligns DMA and coherent masks.
-
-Signed-off-by: Marc St-Amand <mstamand@ciena.com>
-Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
-Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
-Tested-by: Conor Dooley <conor.dooley@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/cadence/macb_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
-index d13fb1d318215..d71c11a6282ec 100644
---- a/drivers/net/ethernet/cadence/macb_main.c
-+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4739,7 +4739,7 @@ static int macb_probe(struct platform_device *pdev)
-
- #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
- if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-- dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
-+ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
- bp->hw_dma_cap |= HW_DMA_CAP_64B;
- }
- #endif
---
-2.34.1
-
-From 31fac11451e1980637cb9ee01d88bc30bdf257f8 Mon Sep 17 00:00:00 2001
+From 45414dd07f5d4d09b4966b41c2a7d8b32704dbee Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 10:47:17 +0800
Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
+++ /dev/null
-From 31fac11451e1980637cb9ee01d88bc30bdf257f8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 10:47:17 +0800
-Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Slark Xiao <slark_xiao@163.com>
-
-[ Upstream commit 8ecbb179286cbc91810c16caeb3396e06305cd0c ]
-
-Dell DW5829e same as DW5821e except the CAT level.
-DW5821e supports CAT16 but DW5829e supports CAT9.
-Also, DW5829e includes normal and eSIM type.
-Please see below test evidence:
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e6 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e4 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e-eSIM Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-Signed-off-by: Slark Xiao <slark_xiao@163.com>
-Acked-by: Bjørn Mork <bjorn@mork.no>
-Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/usb/qmi_wwan.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index 33ada2c59952e..0c7f02ca6822b 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -1395,6 +1395,8 @@ static const struct usb_device_id products[] = {
- {QMI_FIXED_INTF(0x413c, 0x81d7, 0)}, /* Dell Wireless 5821e */
- {QMI_FIXED_INTF(0x413c, 0x81d7, 1)}, /* Dell Wireless 5821e preproduction config */
- {QMI_FIXED_INTF(0x413c, 0x81e0, 0)}, /* Dell Wireless 5821e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e4, 0)}, /* Dell Wireless 5829e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e6, 0)}, /* Dell Wireless 5829e */
- {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
- {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
---
-2.34.1
-
-From ed1db8fb3fbaf198ee1b42e450fa4c6495d3fc56 Mon Sep 17 00:00:00 2001
+From 29f61675e7b5d1239d39fd47c18722d8c7afcb5e Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 13:13:32 +0100
Subject: netfilter: conntrack: don't refresh sctp entries in closed state
+++ /dev/null
-From ed1db8fb3fbaf198ee1b42e450fa4c6495d3fc56 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 13:13:32 +0100
-Subject: netfilter: conntrack: don't refresh sctp entries in closed state
-
-From: Florian Westphal <fw@strlen.de>
-
-[ Upstream commit 77b337196a9d87f3d6bb9b07c0436ecafbffda1e ]
-
-Vivek Thrivikraman reported:
- An SCTP server application which is accessed continuously by client
- application.
- When the session disconnects the client retries to establish a connection.
- After restart of SCTP server application the session is not established
- because of stale conntrack entry with connection state CLOSED as below.
-
- (removing this entry manually established new connection):
-
- sctp 9 CLOSED src=10.141.189.233 [..] [ASSURED]
-
-Just skip timeout update of closed entries, we don't want them to
-stay around forever.
-
-Reported-and-tested-by: Vivek Thrivikraman <vivek.thrivikraman@est.tech>
-Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1579
-Signed-off-by: Florian Westphal <fw@strlen.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/netfilter/nf_conntrack_proto_sctp.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
-index 2394238d01c91..5a936334b517a 100644
---- a/net/netfilter/nf_conntrack_proto_sctp.c
-+++ b/net/netfilter/nf_conntrack_proto_sctp.c
-@@ -489,6 +489,15 @@ int nf_conntrack_sctp_packet(struct nf_conn *ct,
- pr_debug("Setting vtag %x for dir %d\n",
- ih->init_tag, !dir);
- ct->proto.sctp.vtag[!dir] = ih->init_tag;
-+
-+ /* don't renew timeout on init retransmit so
-+ * port reuse by client or NAT middlebox cannot
-+ * keep entry alive indefinitely (incl. nat info).
-+ */
-+ if (new_state == SCTP_CONNTRACK_CLOSED &&
-+ old_state == SCTP_CONNTRACK_CLOSED &&
-+ nf_ct_is_confirmed(ct))
-+ ignore = true;
- }
-
- ct->proto.sctp.state = new_state;
---
-2.34.1
-
-From d841a305e69213cd9828708df717d3bee875554c Mon Sep 17 00:00:00 2001
+From 96b4a318f5770a445110f7e4b9bd5587cfa57111 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 7 Jan 2022 10:50:50 +0800
Subject: phy: phy-mtk-tphy: Fix duplicated argument in phy-mtk-tphy
+++ /dev/null
-From d841a305e69213cd9828708df717d3bee875554c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 7 Jan 2022 10:50:50 +0800
-Subject: phy: phy-mtk-tphy: Fix duplicated argument in phy-mtk-tphy
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 46e994717807f4b935c44d81dde9dd8bcd9a4f5d ]
-
-Fix following coccicheck warning:
-./drivers/phy/mediatek/phy-mtk-tphy.c:994:6-29: duplicated argument
-to && or ||
-
-The efuse_rx_imp is duplicate. Here should be efuse_tx_imp.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Acked-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
-Link: https://lore.kernel.org/r/20220107025050.787720-1-wanjiabing@vivo.com
-Signed-off-by: Vinod Koul <vkoul@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/phy/mediatek/phy-mtk-tphy.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
-index 98a942c607a67..db39b0c4649a2 100644
---- a/drivers/phy/mediatek/phy-mtk-tphy.c
-+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
-@@ -1125,7 +1125,7 @@ static int phy_efuse_get(struct mtk_tphy *tphy, struct mtk_phy_instance *instanc
- /* no efuse, ignore it */
- if (!instance->efuse_intr &&
- !instance->efuse_rx_imp &&
-- !instance->efuse_rx_imp) {
-+ !instance->efuse_tx_imp) {
- dev_warn(dev, "no u3 intr efuse, but dts enable it\n");
- instance->efuse_sw_en = 0;
- break;
---
-2.34.1
-
-From 8944e7670b7b3a56cbf4cc86c872f2d4969af207 Mon Sep 17 00:00:00 2001
+From f0ca159561acad7a48fa1fa1381673c844085355 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 1 Dec 2021 13:06:51 -0500
Subject: phy: usb: Leave some clocks running during suspend
+++ /dev/null
-From 8944e7670b7b3a56cbf4cc86c872f2d4969af207 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Dec 2021 13:06:51 -0500
-Subject: phy: usb: Leave some clocks running during suspend
-
-From: Al Cooper <alcooperx@gmail.com>
-
-[ Upstream commit 42fed57046fc74586d7058bd51a1c10ac9c690cb ]
-
-The PHY client driver does a phy_exit() call on suspend or rmmod and
-the PHY driver needs to know the difference because some clocks need
-to be kept running for suspend but can be shutdown on unbind/rmmod
-(or if there are no PHY clients at all).
-
-The fix is to use a PM notifier so the driver can tell if a PHY
-client is calling exit() because of a system suspend or a driver
-unbind/rmmod.
-
-Signed-off-by: Al Cooper <alcooperx@gmail.com>
-Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-Link: https://lore.kernel.org/r/20211201180653.35097-2-alcooperx@gmail.com
-Signed-off-by: Vinod Koul <vkoul@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/phy/broadcom/phy-brcm-usb.c | 38 +++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
-
-diff --git a/drivers/phy/broadcom/phy-brcm-usb.c b/drivers/phy/broadcom/phy-brcm-usb.c
-index 116fb23aebd99..0f1deb6e0eabf 100644
---- a/drivers/phy/broadcom/phy-brcm-usb.c
-+++ b/drivers/phy/broadcom/phy-brcm-usb.c
-@@ -18,6 +18,7 @@
- #include <linux/soc/brcmstb/brcmstb.h>
- #include <dt-bindings/phy/phy.h>
- #include <linux/mfd/syscon.h>
-+#include <linux/suspend.h>
-
- #include "phy-brcm-usb-init.h"
-
-@@ -70,12 +71,35 @@ struct brcm_usb_phy_data {
- int init_count;
- int wake_irq;
- struct brcm_usb_phy phys[BRCM_USB_PHY_ID_MAX];
-+ struct notifier_block pm_notifier;
-+ bool pm_active;
- };
-
- static s8 *node_reg_names[BRCM_REGS_MAX] = {
- "crtl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio", "bdc_ec"
- };
-
-+static int brcm_pm_notifier(struct notifier_block *notifier,
-+ unsigned long pm_event,
-+ void *unused)
-+{
-+ struct brcm_usb_phy_data *priv =
-+ container_of(notifier, struct brcm_usb_phy_data, pm_notifier);
-+
-+ switch (pm_event) {
-+ case PM_HIBERNATION_PREPARE:
-+ case PM_SUSPEND_PREPARE:
-+ priv->pm_active = true;
-+ break;
-+ case PM_POST_RESTORE:
-+ case PM_POST_HIBERNATION:
-+ case PM_POST_SUSPEND:
-+ priv->pm_active = false;
-+ break;
-+ }
-+ return NOTIFY_DONE;
-+}
-+
- static irqreturn_t brcm_usb_phy_wake_isr(int irq, void *dev_id)
- {
- struct phy *gphy = dev_id;
-@@ -91,6 +115,9 @@ static int brcm_usb_phy_init(struct phy *gphy)
- struct brcm_usb_phy_data *priv =
- container_of(phy, struct brcm_usb_phy_data, phys[phy->id]);
-
-+ if (priv->pm_active)
-+ return 0;
-+
- /*
- * Use a lock to make sure a second caller waits until
- * the base phy is inited before using it.
-@@ -120,6 +147,9 @@ static int brcm_usb_phy_exit(struct phy *gphy)
- struct brcm_usb_phy_data *priv =
- container_of(phy, struct brcm_usb_phy_data, phys[phy->id]);
-
-+ if (priv->pm_active)
-+ return 0;
-+
- dev_dbg(&gphy->dev, "EXIT\n");
- if (phy->id == BRCM_USB_PHY_2_0)
- brcm_usb_uninit_eohci(&priv->ini);
-@@ -488,6 +518,9 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
- if (err)
- return err;
-
-+ priv->pm_notifier.notifier_call = brcm_pm_notifier;
-+ register_pm_notifier(&priv->pm_notifier);
-+
- mutex_init(&priv->mutex);
-
- /* make sure invert settings are correct */
-@@ -528,7 +561,10 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
-
- static int brcm_usb_phy_remove(struct platform_device *pdev)
- {
-+ struct brcm_usb_phy_data *priv = dev_get_drvdata(&pdev->dev);
-+
- sysfs_remove_group(&pdev->dev.kobj, &brcm_usb_phy_group);
-+ unregister_pm_notifier(&priv->pm_notifier);
-
- return 0;
- }
-@@ -539,6 +575,7 @@ static int brcm_usb_phy_suspend(struct device *dev)
- struct brcm_usb_phy_data *priv = dev_get_drvdata(dev);
-
- if (priv->init_count) {
-+ dev_dbg(dev, "SUSPEND\n");
- priv->ini.wake_enabled = device_may_wakeup(dev);
- if (priv->phys[BRCM_USB_PHY_3_0].inited)
- brcm_usb_uninit_xhci(&priv->ini);
-@@ -578,6 +615,7 @@ static int brcm_usb_phy_resume(struct device *dev)
- * Uninitialize anything that wasn't previously initialized.
- */
- if (priv->init_count) {
-+ dev_dbg(dev, "RESUME\n");
- if (priv->wake_irq >= 0)
- disable_irq_wake(priv->wake_irq);
- brcm_usb_init_common(&priv->ini);
---
-2.34.1
-
-From fb277d0fcce3d1fc57e2eb23b6c47e8a33ed41bc Mon Sep 17 00:00:00 2001
+From 1be2e438cae29b7141bc026b84e8a135839c3244 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 13:29:51 -0800
Subject: pidfd: fix test failure due to stack overflow on some arches
+++ /dev/null
-From fb277d0fcce3d1fc57e2eb23b6c47e8a33ed41bc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 13:29:51 -0800
-Subject: pidfd: fix test failure due to stack overflow on some arches
-
-From: Axel Rasmussen <axelrasmussen@google.com>
-
-[ Upstream commit 4cbd93c3c110447adc66cb67c08af21f939ae2d7 ]
-
-When running the pidfd_fdinfo_test on arm64, it fails for me. After some
-digging, the reason is that the child exits due to SIGBUS, because it
-overflows the 1024 byte stack we've reserved for it.
-
-To fix the issue, increase the stack size to 8192 bytes (this number is
-somewhat arbitrary, and was arrived at through experimentation -- I kept
-doubling until the failure no longer occurred).
-
-Also, let's make the issue easier to debug. wait_for_pid() returns an
-ambiguous value: it may return -1 in all of these cases:
-
-1. waitpid() itself returned -1
-2. waitpid() returned success, but we found !WIFEXITED(status).
-3. The child process exited, but it did so with a -1 exit code.
-
-There's no way for the caller to tell the difference. So, at least log
-which occurred, so the test runner can debug things.
-
-While debugging this, I found that we had !WIFEXITED(), because the
-child exited due to a signal. This seems like a reasonably common case,
-so also print out whether or not we have WIFSIGNALED(), and the
-associated WTERMSIG() (if any). This lets us see the SIGBUS I'm fixing
-clearly when it occurs.
-
-Finally, I'm suspicious of allocating the child's stack on our stack.
-man clone(2) suggests that the correct way to do this is with mmap(),
-and in particular by setting MAP_STACK. So, switch to doing it that way
-instead.
-
-Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
-Acked-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/testing/selftests/pidfd/pidfd.h | 13 ++++++++---
- .../selftests/pidfd/pidfd_fdinfo_test.c | 22 +++++++++++++++----
- 2 files changed, 28 insertions(+), 7 deletions(-)
-
-diff --git a/tools/testing/selftests/pidfd/pidfd.h b/tools/testing/selftests/pidfd/pidfd.h
-index 01f8d3c0cf2cb..6922d6417e1cf 100644
---- a/tools/testing/selftests/pidfd/pidfd.h
-+++ b/tools/testing/selftests/pidfd/pidfd.h
-@@ -68,7 +68,7 @@
- #define PIDFD_SKIP 3
- #define PIDFD_XFAIL 4
-
--int wait_for_pid(pid_t pid)
-+static inline int wait_for_pid(pid_t pid)
- {
- int status, ret;
-
-@@ -78,13 +78,20 @@ int wait_for_pid(pid_t pid)
- if (errno == EINTR)
- goto again;
-
-+ ksft_print_msg("waitpid returned -1, errno=%d\n", errno);
- return -1;
- }
-
-- if (!WIFEXITED(status))
-+ if (!WIFEXITED(status)) {
-+ ksft_print_msg(
-+ "waitpid !WIFEXITED, WIFSIGNALED=%d, WTERMSIG=%d\n",
-+ WIFSIGNALED(status), WTERMSIG(status));
- return -1;
-+ }
-
-- return WEXITSTATUS(status);
-+ ret = WEXITSTATUS(status);
-+ ksft_print_msg("waitpid WEXITSTATUS=%d\n", ret);
-+ return ret;
- }
-
- static inline int sys_pidfd_open(pid_t pid, unsigned int flags)
-diff --git a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-index 22558524f71c3..3fd8e903118f5 100644
---- a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-+++ b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-@@ -12,6 +12,7 @@
- #include <string.h>
- #include <syscall.h>
- #include <sys/wait.h>
-+#include <sys/mman.h>
-
- #include "pidfd.h"
- #include "../kselftest.h"
-@@ -80,7 +81,10 @@ static inline int error_check(struct error *err, const char *test_name)
- return err->code;
- }
-
-+#define CHILD_STACK_SIZE 8192
-+
- struct child {
-+ char *stack;
- pid_t pid;
- int fd;
- };
-@@ -89,17 +93,22 @@ static struct child clone_newns(int (*fn)(void *), void *args,
- struct error *err)
- {
- static int flags = CLONE_PIDFD | CLONE_NEWPID | CLONE_NEWNS | SIGCHLD;
-- size_t stack_size = 1024;
-- char *stack[1024] = { 0 };
- struct child ret;
-
- if (!(flags & CLONE_NEWUSER) && geteuid() != 0)
- flags |= CLONE_NEWUSER;
-
-+ ret.stack = mmap(NULL, CHILD_STACK_SIZE, PROT_READ | PROT_WRITE,
-+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
-+ if (ret.stack == MAP_FAILED) {
-+ error_set(err, -1, "mmap of stack failed (errno %d)", errno);
-+ return ret;
-+ }
-+
- #ifdef __ia64__
-- ret.pid = __clone2(fn, stack, stack_size, flags, args, &ret.fd);
-+ ret.pid = __clone2(fn, ret.stack, CHILD_STACK_SIZE, flags, args, &ret.fd);
- #else
-- ret.pid = clone(fn, stack + stack_size, flags, args, &ret.fd);
-+ ret.pid = clone(fn, ret.stack + CHILD_STACK_SIZE, flags, args, &ret.fd);
- #endif
-
- if (ret.pid < 0) {
-@@ -129,6 +138,11 @@ static inline int child_join(struct child *child, struct error *err)
- else if (r > 0)
- error_set(err, r, "child %d reported: %d", child->pid, r);
-
-+ if (munmap(child->stack, CHILD_STACK_SIZE)) {
-+ error_set(err, -1, "munmap of child stack failed (errno %d)", errno);
-+ r = -1;
-+ }
-+
- return r;
- }
-
---
-2.34.1
-
-From e642d017776b5b8bfb5b7b4d8dc32dd47f807baf Mon Sep 17 00:00:00 2001
+From 6488ab7a5d4e6b90dd5091d519bb2be1df1b0167 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 14:11:15 -0800
Subject: selftests: fixup build warnings in pidfd / clone3 tests
+++ /dev/null
-From e642d017776b5b8bfb5b7b4d8dc32dd47f807baf Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 14:11:15 -0800
-Subject: selftests: fixup build warnings in pidfd / clone3 tests
-
-From: Axel Rasmussen <axelrasmussen@google.com>
-
-[ Upstream commit e2aa5e650b07693477dff554053605976789fd68 ]
-
-These are some trivial fixups, which were needed to build the tests with
-clang and -Werror. The following issues are fixed:
-
-- Remove various unused variables.
-- In child_poll_leader_exit_test, clang isn't smart enough to realize
- syscall(SYS_exit, 0) won't return, so it complains we never return
- from a non-void function. Add an extra exit(0) to appease it.
-- In test_pidfd_poll_leader_exit, ret may be branched on despite being
- uninitialized, if we have !use_waitpid. Initialize it to zero to get
- the right behavior in that case.
-
-Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
-Acked-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/testing/selftests/clone3/clone3.c | 2 --
- tools/testing/selftests/pidfd/pidfd_test.c | 6 +++---
- tools/testing/selftests/pidfd/pidfd_wait.c | 5 ++---
- 3 files changed, 5 insertions(+), 8 deletions(-)
-
-diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c
-index 076cf4325f783..cd4582129c7d6 100644
---- a/tools/testing/selftests/clone3/clone3.c
-+++ b/tools/testing/selftests/clone3/clone3.c
-@@ -126,8 +126,6 @@ static void test_clone3(uint64_t flags, size_t size, int expected,
-
- int main(int argc, char *argv[])
- {
-- pid_t pid;
--
- uid_t uid = getuid();
-
- ksft_print_header();
-diff --git a/tools/testing/selftests/pidfd/pidfd_test.c b/tools/testing/selftests/pidfd/pidfd_test.c
-index 529eb700ac26a..9a2d64901d591 100644
---- a/tools/testing/selftests/pidfd/pidfd_test.c
-+++ b/tools/testing/selftests/pidfd/pidfd_test.c
-@@ -441,7 +441,6 @@ static void test_pidfd_poll_exec(int use_waitpid)
- {
- int pid, pidfd = 0;
- int status, ret;
-- pthread_t t1;
- time_t prog_start = time(NULL);
- const char *test_name = "pidfd_poll check for premature notification on child thread exec";
-
-@@ -500,13 +499,14 @@ static int child_poll_leader_exit_test(void *args)
- */
- *child_exit_secs = time(NULL);
- syscall(SYS_exit, 0);
-+ /* Never reached, but appeases compiler thinking we should return. */
-+ exit(0);
- }
-
- static void test_pidfd_poll_leader_exit(int use_waitpid)
- {
- int pid, pidfd = 0;
-- int status, ret;
-- time_t prog_start = time(NULL);
-+ int status, ret = 0;
- const char *test_name = "pidfd_poll check for premature notification on non-empty"
- "group leader exit";
-
-diff --git a/tools/testing/selftests/pidfd/pidfd_wait.c b/tools/testing/selftests/pidfd/pidfd_wait.c
-index be2943f072f60..17999e082aa71 100644
---- a/tools/testing/selftests/pidfd/pidfd_wait.c
-+++ b/tools/testing/selftests/pidfd/pidfd_wait.c
-@@ -39,7 +39,7 @@ static int sys_waitid(int which, pid_t pid, siginfo_t *info, int options,
-
- TEST(wait_simple)
- {
-- int pidfd = -1, status = 0;
-+ int pidfd = -1;
- pid_t parent_tid = -1;
- struct clone_args args = {
- .parent_tid = ptr_to_u64(&parent_tid),
-@@ -47,7 +47,6 @@ TEST(wait_simple)
- .flags = CLONE_PIDFD | CLONE_PARENT_SETTID,
- .exit_signal = SIGCHLD,
- };
-- int ret;
- pid_t pid;
- siginfo_t info = {
- .si_signo = 0,
-@@ -88,7 +87,7 @@ TEST(wait_simple)
-
- TEST(wait_states)
- {
-- int pidfd = -1, status = 0;
-+ int pidfd = -1;
- pid_t parent_tid = -1;
- struct clone_args args = {
- .parent_tid = ptr_to_u64(&parent_tid),
---
-2.34.1
-
net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch
net-macb-align-the-dma-and-coherent-dma-masks.patch
kconfig-fix-failing-to-generate-auto.conf.patch
-arm-omap2-hwmod-add-of_node_put-before-break.patch-18156
-arm-omap2-adjust-the-location-of-put_device-call-in-.patch-12804
-phy-usb-leave-some-clocks-running-during-suspend.patch-29258
-staging-vc04_services-fix-rcu-dereference-check.patch-14323
-phy-phy-mtk-tphy-fix-duplicated-argument-in-phy-mtk-.patch-20193
-irqchip-sifive-plic-add-missing-thead-c900-plic-matc.patch-28588
-x86-bug-merge-annotate_reachable-into-_bug_flags-asm.patch-21372
-netfilter-conntrack-don-t-refresh-sctp-entries-in-cl.patch-5972
-ksmbd-fix-same-uniqueid-for-dot-and-dotdot-entries.patch-6367
-ksmbd-don-t-align-last-entry-offset-in-smb2-query-di.patch-16657
-arm64-dts-meson-gx-add-atf-bl32-reserved-memory-regi.patch-6949
-arm64-dts-meson-g12-add-atf-bl32-reserved-memory-reg.patch-20974
-arm64-dts-meson-g12-drop-bl32-region-from-sei510-sei.patch-32121
-pidfd-fix-test-failure-due-to-stack-overflow-on-some.patch-16233
-selftests-fixup-build-warnings-in-pidfd-clone3-tests.patch-8577
-mm-io_uring-allow-oom-killer-from-io_uring_setup.patch-29651
-acpi-pm-revert-only-mark-ec-gpe-for-wakeup-on-intel-.patch-2827
-kconfig-let-shell-return-enough-output-for-deep-path.patch-7959
-ata-libata-core-disable-trim-on-m88v29.patch-8199
-soc-aspeed-lpc-ctrl-block-error-printing-on-probe-de.patch-79
-xprtrdma-fix-pointer-derefs-in-error-cases-of-rpcrdm.patch-19086
-drm-rockchip-dw_hdmi-do-not-leave-clock-enabled-in-e.patch-32194
-tracing-fix-tp_printk-option-related-with-tp_printk_.patch-27788
-display-amd-decrease-message-verbosity-about-waterma.patch-22723
-drm-amd-display-cap-pflip-irqs-per-max-otg-number.patch-25032
-drm-amd-display-fix-yellow-carp-wm-clamping.patch-770
-net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch-9978
-net-macb-align-the-dma-and-coherent-dma-masks.patch-20972
-kconfig-fix-failing-to-generate-auto.conf.patch-10122
-From da8976501fbec69dc20315b5994e190278003f31 Mon Sep 17 00:00:00 2001
+From 2ec351b148ab5f0fd55f967d4dad8b201db86ced Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 1 Feb 2022 17:31:18 +1030
Subject: soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
+++ /dev/null
-From da8976501fbec69dc20315b5994e190278003f31 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 1 Feb 2022 17:31:18 +1030
-Subject: soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
-
-From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-
-[ Upstream commit 301a5d3ad2432d7829f59432ca0a93a6defbb9a1 ]
-
-Add a checking code when it gets -EPROBE_DEFER while getting a clock
-resource. In this case, it doesn't need to print out an error message
-because the probing will be re-visited.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
-Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
-Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com>
-Link: https://lore.kernel.org/r/20211104173709.222912-1-jae.hyun.yoo@intel.com
-Link: https://lore.kernel.org/r/20220201070118.196372-1-joel@jms.id.au'
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/soc/aspeed/aspeed-lpc-ctrl.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/soc/aspeed/aspeed-lpc-ctrl.c b/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-index 72771e018c42e..258894ed234b3 100644
---- a/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-+++ b/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-@@ -306,10 +306,9 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)
- }
-
- lpc_ctrl->clk = devm_clk_get(dev, NULL);
-- if (IS_ERR(lpc_ctrl->clk)) {
-- dev_err(dev, "couldn't get clock\n");
-- return PTR_ERR(lpc_ctrl->clk);
-- }
-+ if (IS_ERR(lpc_ctrl->clk))
-+ return dev_err_probe(dev, PTR_ERR(lpc_ctrl->clk),
-+ "couldn't get clock\n");
- rc = clk_prepare_enable(lpc_ctrl->clk);
- if (rc) {
- dev_err(dev, "couldn't enable clock\n");
---
-2.34.1
-
-From dd7901e3f4a3e48fd0ab0ce0a57c0073404fa9e5 Mon Sep 17 00:00:00 2001
+From c66f52a7376404aa65c78b2b69392b9ed094a475 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 31 Dec 2021 20:54:03 +0100
Subject: staging: vc04_services: Fix RCU dereference check
+++ /dev/null
-From dd7901e3f4a3e48fd0ab0ce0a57c0073404fa9e5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 31 Dec 2021 20:54:03 +0100
-Subject: staging: vc04_services: Fix RCU dereference check
-
-From: Padmanabha Srinivasaiah <treasure4paddy@gmail.com>
-
-[ Upstream commit 0cea730cac824edf78ffd3302938ed5fe2b9d50d ]
-
-In service_callback path RCU dereferenced pointer struct vchiq_service
-need to be accessed inside rcu read-critical section.
-
-Also userdata/user_service part of vchiq_service is accessed around
-different synchronization mechanism, getting an extra reference to a
-pointer keeps sematics simpler and avoids prolonged graceperiod.
-
-Accessing vchiq_service with rcu_read_[lock/unlock] fixes below issue.
-
-[ 32.201659] =============================
-[ 32.201664] WARNING: suspicious RCU usage
-[ 32.201670] 5.15.11-rt24-v8+ #3 Not tainted
-[ 32.201680] -----------------------------
-[ 32.201685] drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h:529 suspicious rcu_dereference_check() usage!
-[ 32.201695]
-[ 32.201695] other info that might help us debug this:
-[ 32.201695]
-[ 32.201700]
-[ 32.201700] rcu_scheduler_active = 2, debug_locks = 1
-[ 32.201708] no locks held by vchiq-slot/0/98.
-[ 32.201715]
-[ 32.201715] stack backtrace:
-[ 32.201723] CPU: 1 PID: 98 Comm: vchiq-slot/0 Not tainted 5.15.11-rt24-v8+ #3
-[ 32.201733] Hardware name: Raspberry Pi 4 Model B Rev 1.4 (DT)
-[ 32.201739] Call trace:
-[ 32.201742] dump_backtrace+0x0/0x1b8
-[ 32.201772] show_stack+0x20/0x30
-[ 32.201784] dump_stack_lvl+0x8c/0xb8
-[ 32.201799] dump_stack+0x18/0x34
-[ 32.201808] lockdep_rcu_suspicious+0xe4/0xf8
-[ 32.201817] service_callback+0x124/0x400
-[ 32.201830] slot_handler_func+0xf60/0x1e20
-[ 32.201839] kthread+0x19c/0x1a8
-[ 32.201849] ret_from_fork+0x10/0x20
-
-Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
-Signed-off-by: Padmanabha Srinivasaiah <treasure4paddy@gmail.com>
-Link: https://lore.kernel.org/r/20211231195406.5479-1-treasure4paddy@gmail.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- .../interface/vchiq_arm/vchiq_arm.c | 20 +++++++++++++++++--
- 1 file changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-index 967f10b9582a8..ea9a53bdb4174 100644
---- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1033,15 +1033,27 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
-
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-
-+ rcu_read_lock();
- service = handle_to_service(handle);
-- if (WARN_ON(!service))
-+ if (WARN_ON(!service)) {
-+ rcu_read_unlock();
- return VCHIQ_SUCCESS;
-+ }
-
- user_service = (struct user_service *)service->base.userdata;
- instance = user_service->instance;
-
-- if (!instance || instance->closing)
-+ if (!instance || instance->closing) {
-+ rcu_read_unlock();
- return VCHIQ_SUCCESS;
-+ }
-+
-+ /*
-+ * As hopping around different synchronization mechanism,
-+ * taking an extra reference results in simpler implementation.
-+ */
-+ vchiq_service_get(service);
-+ rcu_read_unlock();
-
- vchiq_log_trace(vchiq_arm_log_level,
- "%s - service %lx(%d,%p), reason %d, header %lx, instance %lx, bulk_userdata %lx",
-@@ -1074,6 +1086,7 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
- NULL, user_service, bulk_userdata);
- if (status != VCHIQ_SUCCESS) {
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
- return status;
- }
- }
-@@ -1084,11 +1097,13 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
- vchiq_log_info(vchiq_arm_log_level,
- "%s interrupted", __func__);
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
- return VCHIQ_RETRY;
- } else if (instance->closing) {
- vchiq_log_info(vchiq_arm_log_level,
- "%s closing", __func__);
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
- return VCHIQ_ERROR;
- }
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-@@ -1117,6 +1132,7 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
- header = NULL;
- }
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
-
- if (skip_completion)
- return VCHIQ_SUCCESS;
---
-2.34.1
-
-From d3336766c0441220aaebac7277e39ec6f05f2888 Mon Sep 17 00:00:00 2001
+From 775b2be92b7b3c1ef8c7435daf11557497f00359 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 04:54:22 +0900
Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+++ /dev/null
-From d3336766c0441220aaebac7277e39ec6f05f2888 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 04:54:22 +0900
-Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
-
-From: JaeSang Yoo <js.yoo.5b@gmail.com>
-
-[ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ]
-
-The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is
-the same as another kernel parameter "tp_printk". If "tp_printk" setup is
-called before the "tp_printk_stop_on_boot", it will override the latter
-and keep it from being set.
-
-This is similar to other kernel parameter issues, such as:
- Commit 745a600cf1a6 ("um: console: Ignore console= option")
-or init/do_mounts.c:45 (setup function of "ro" kernel param)
-
-Fix it by checking for a "_" right after the "tp_printk" and if that
-exists do not process the parameter.
-
-Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com
-
-Signed-off-by: JaeSang Yoo <jsyoo5b@gmail.com>
-[ Fixed up change log and added space after if condition ]
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/trace/trace.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 51a87a67e2abe..618c20ce2479d 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -252,6 +252,10 @@ __setup("trace_clock=", set_trace_boot_clock);
-
- static int __init set_tracepoint_printk(char *str)
- {
-+ /* Ignore the "tp_printk_stop_on_boot" param */
-+ if (*str == '_')
-+ return 0;
-+
- if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
- tracepoint_printk = 1;
- return 1;
---
-2.34.1
-
-From 3c9ec63a0b584c3873d35954db9f5c7f4c03582e Mon Sep 17 00:00:00 2001
+From 12d70cad08eb45e7293022f001a0361f624bf949 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 2 Feb 2022 12:55:53 -0800
Subject: x86/bug: Merge annotate_reachable() into _BUG_FLAGS() asm
+++ /dev/null
-From 3c9ec63a0b584c3873d35954db9f5c7f4c03582e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 2 Feb 2022 12:55:53 -0800
-Subject: x86/bug: Merge annotate_reachable() into _BUG_FLAGS() asm
-
-From: Nick Desaulniers <ndesaulniers@google.com>
-
-[ Upstream commit bfb1a7c91fb7758273b4a8d735313d9cc388b502 ]
-
-In __WARN_FLAGS(), we had two asm statements (abbreviated):
-
- asm volatile("ud2");
- asm volatile(".pushsection .discard.reachable");
-
-These pair of statements are used to trigger an exception, but then help
-objtool understand that for warnings, control flow will be restored
-immediately afterwards.
-
-The problem is that volatile is not a compiler barrier. GCC explicitly
-documents this:
-
-> Note that the compiler can move even volatile asm instructions
-> relative to other code, including across jump instructions.
-
-Also, no clobbers are specified to prevent instructions from subsequent
-statements from being scheduled by compiler before the second asm
-statement. This can lead to instructions from subsequent statements
-being emitted by the compiler before the second asm statement.
-
-Providing a scheduling model such as via -march= options enables the
-compiler to better schedule instructions with known latencies to hide
-latencies from data hazards compared to inline asm statements in which
-latencies are not estimated.
-
-If an instruction gets scheduled by the compiler between the two asm
-statements, then objtool will think that it is not reachable, producing
-a warning.
-
-To prevent instructions from being scheduled in between the two asm
-statements, merge them.
-
-Also remove an unnecessary unreachable() asm annotation from BUG() in
-favor of __builtin_unreachable(). objtool is able to track that the ud2
-from BUG() terminates control flow within the function.
-
-Link: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Volatile
-Link: https://github.com/ClangBuiltLinux/linux/issues/1483
-Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
-Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
-Link: https://lore.kernel.org/r/20220202205557.2260694-1-ndesaulniers@google.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/include/asm/bug.h | 20 +++++++++++---------
- include/linux/compiler.h | 21 +++++----------------
- 2 files changed, 16 insertions(+), 25 deletions(-)
-
-diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h
-index 84b87538a15de..bab883c0b6fee 100644
---- a/arch/x86/include/asm/bug.h
-+++ b/arch/x86/include/asm/bug.h
-@@ -22,7 +22,7 @@
-
- #ifdef CONFIG_DEBUG_BUGVERBOSE
-
--#define _BUG_FLAGS(ins, flags) \
-+#define _BUG_FLAGS(ins, flags, extra) \
- do { \
- asm_inline volatile("1:\t" ins "\n" \
- ".pushsection __bug_table,\"aw\"\n" \
-@@ -31,7 +31,8 @@ do { \
- "\t.word %c1" "\t# bug_entry::line\n" \
- "\t.word %c2" "\t# bug_entry::flags\n" \
- "\t.org 2b+%c3\n" \
-- ".popsection" \
-+ ".popsection\n" \
-+ extra \
- : : "i" (__FILE__), "i" (__LINE__), \
- "i" (flags), \
- "i" (sizeof(struct bug_entry))); \
-@@ -39,14 +40,15 @@ do { \
-
- #else /* !CONFIG_DEBUG_BUGVERBOSE */
-
--#define _BUG_FLAGS(ins, flags) \
-+#define _BUG_FLAGS(ins, flags, extra) \
- do { \
- asm_inline volatile("1:\t" ins "\n" \
- ".pushsection __bug_table,\"aw\"\n" \
- "2:\t" __BUG_REL(1b) "\t# bug_entry::bug_addr\n" \
- "\t.word %c0" "\t# bug_entry::flags\n" \
- "\t.org 2b+%c1\n" \
-- ".popsection" \
-+ ".popsection\n" \
-+ extra \
- : : "i" (flags), \
- "i" (sizeof(struct bug_entry))); \
- } while (0)
-@@ -55,7 +57,7 @@ do { \
-
- #else
-
--#define _BUG_FLAGS(ins, flags) asm volatile(ins)
-+#define _BUG_FLAGS(ins, flags, extra) asm volatile(ins)
-
- #endif /* CONFIG_GENERIC_BUG */
-
-@@ -63,8 +65,8 @@ do { \
- #define BUG() \
- do { \
- instrumentation_begin(); \
-- _BUG_FLAGS(ASM_UD2, 0); \
-- unreachable(); \
-+ _BUG_FLAGS(ASM_UD2, 0, ""); \
-+ __builtin_unreachable(); \
- } while (0)
-
- /*
-@@ -75,9 +77,9 @@ do { \
- */
- #define __WARN_FLAGS(flags) \
- do { \
-+ __auto_type f = BUGFLAG_WARNING|(flags); \
- instrumentation_begin(); \
-- _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags)); \
-- annotate_reachable(); \
-+ _BUG_FLAGS(ASM_UD2, f, ASM_REACHABLE); \
- instrumentation_end(); \
- } while (0)
-
-diff --git a/include/linux/compiler.h b/include/linux/compiler.h
-index 429dcebe2b992..0f7fd205ab7ea 100644
---- a/include/linux/compiler.h
-+++ b/include/linux/compiler.h
-@@ -117,14 +117,6 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
- */
- #define __stringify_label(n) #n
-
--#define __annotate_reachable(c) ({ \
-- asm volatile(__stringify_label(c) ":\n\t" \
-- ".pushsection .discard.reachable\n\t" \
-- ".long " __stringify_label(c) "b - .\n\t" \
-- ".popsection\n\t" : : "i" (c)); \
--})
--#define annotate_reachable() __annotate_reachable(__COUNTER__)
--
- #define __annotate_unreachable(c) ({ \
- asm volatile(__stringify_label(c) ":\n\t" \
- ".pushsection .discard.unreachable\n\t" \
-@@ -133,24 +125,21 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
- })
- #define annotate_unreachable() __annotate_unreachable(__COUNTER__)
-
--#define ASM_UNREACHABLE \
-- "999:\n\t" \
-- ".pushsection .discard.unreachable\n\t" \
-- ".long 999b - .\n\t" \
-+#define ASM_REACHABLE \
-+ "998:\n\t" \
-+ ".pushsection .discard.reachable\n\t" \
-+ ".long 998b - .\n\t" \
- ".popsection\n\t"
-
- /* Annotate a C jump table to allow objtool to follow the code flow */
- #define __annotate_jump_table __section(".rodata..c_jump_table")
-
- #else
--#define annotate_reachable()
- #define annotate_unreachable()
-+# define ASM_REACHABLE
- #define __annotate_jump_table
- #endif
-
--#ifndef ASM_UNREACHABLE
--# define ASM_UNREACHABLE
--#endif
- #ifndef unreachable
- # define unreachable() do { \
- annotate_unreachable(); \
---
-2.34.1
-
-From fddf3e1dca5e60484195a2832b3083cfde88c2e8 Mon Sep 17 00:00:00 2001
+From 4a4c0bf72e10ffe781bed82978d67ec887814036 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 25 Jan 2022 22:06:46 +0200
Subject: xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
+++ /dev/null
-From fddf3e1dca5e60484195a2832b3083cfde88c2e8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 25 Jan 2022 22:06:46 +0200
-Subject: xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
-
-From: Dan Aloni <dan.aloni@vastdata.com>
-
-[ Upstream commit a9c10b5b3b67b3750a10c8b089b2e05f5e176e33 ]
-
-If there are failures then we must not leave the non-NULL pointers with
-the error value, otherwise `rpcrdma_ep_destroy` gets confused and tries
-free them, resulting in an Oops.
-
-Signed-off-by: Dan Aloni <dan.aloni@vastdata.com>
-Acked-by: Chuck Lever <chuck.lever@oracle.com>
-Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/sunrpc/xprtrdma/verbs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
-index aaec3c9be8db6..1295f9ab839fd 100644
---- a/net/sunrpc/xprtrdma/verbs.c
-+++ b/net/sunrpc/xprtrdma/verbs.c
-@@ -438,6 +438,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- IB_POLL_WORKQUEUE);
- if (IS_ERR(ep->re_attr.send_cq)) {
- rc = PTR_ERR(ep->re_attr.send_cq);
-+ ep->re_attr.send_cq = NULL;
- goto out_destroy;
- }
-
-@@ -446,6 +447,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- IB_POLL_WORKQUEUE);
- if (IS_ERR(ep->re_attr.recv_cq)) {
- rc = PTR_ERR(ep->re_attr.recv_cq);
-+ ep->re_attr.recv_cq = NULL;
- goto out_destroy;
- }
- ep->re_receive_count = 0;
-@@ -484,6 +486,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- ep->re_pd = ib_alloc_pd(device, 0);
- if (IS_ERR(ep->re_pd)) {
- rc = PTR_ERR(ep->re_pd);
-+ ep->re_pd = NULL;
- goto out_destroy;
- }
-
---
-2.34.1
-
-From 046c6862b0a9da3e59513369c890b418912e6975 Mon Sep 17 00:00:00 2001
+From b631421e6670c26c94160c8ee28a56e4794eceaf Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 14:35:03 -0600
Subject: ACPI: PM: Revert "Only mark EC GPE for wakeup on Intel systems"
+++ /dev/null
-From 046c6862b0a9da3e59513369c890b418912e6975 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 14:35:03 -0600
-Subject: ACPI: PM: Revert "Only mark EC GPE for wakeup on Intel systems"
-
-From: Mario Limonciello <mario.limonciello@amd.com>
-
-[ Upstream commit d6ebb17ccc7b37872a32bc25b4a21f1e5af8c7e3 ]
-
-Testing on various upcoming OEM systems shows commit 7b167c4cb48e ("ACPI:
-PM: Only mark EC GPE for wakeup on Intel systems") was short
-sighted and the symptoms were indicative of other problems. Some OEMs
-do have the dedicated GPIOs for the power button but also rely upon
-an interrupt to the EC SCI to let the lid work.
-
-The original commit showed spurious activity on Lenovo systems:
- * On both Lenovo T14 and P14s the keyboard wakeup doesn't work, and
- sometimes the power button event doesn't work.
-
-This was confirmed on my end at that time.
-
-However further development in the kernel showed that the issue was
-actually the IRQ for the GPIO controller was also shared with the EC SCI.
-This was actually fixed by commit 2d54067fcd23 ("pinctrl: amd: Fix
-wakeups when IRQ is shared with SCI").
-
-The original commit also showed problems with AC adapter:
- * On HP 635 G7 detaching or attaching AC during suspend will cause
- the system not to wakeup
- * On Asus vivobook to prevent detaching AC causing resume problems
- * On Lenovo 14ARE05 to prevent detaching AC causing resume problems
- * On HP ENVY x360 to prevent detaching AC causing resume problems
-
-Detaching AC adapter causing problems appears to have been a problem
-because the EC SCI went off to notify the OS of the power adapter change
-but the SCI was ignored and there was no other way to wake up this system
-since GPIO controller wasn't properly enabled. The wakeups were fixed by
-enabling the GPIO controller in commit acd47b9f28e5 ("pinctrl: amd: Handle
-wake-up interrupt").
-
-I've confirmed on a variety of OEM notebooks with the following test
-
- 1) echo 1 | sudo tee /sys/power/pm_debug_messages
- 2) sudo systemctl suspend
- 3) unplug AC adapter, make sure system is still asleep
- 4) wake system from lid (which is provided by ACPI SCI on some of them)
- 5) dmesg
- a) see the EC GPE dispatched, timekeeping for X seconds (matching ~time
- until AC adapter plug out)
- b) see timekeeping for Y seconds until woke (matching ~time from AC
- adapter until lid event)
- 6) Look at /sys/kernel/debug/amd_pmc/s0ix_stats
- "Time (in us) in S0i3" = X + Y - firmware processing time
-
-Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
-Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/acpi/x86/s2idle.c | 12 ++++--------
- 1 file changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
-index 1c48358b43ba3..e0185e841b2a3 100644
---- a/drivers/acpi/x86/s2idle.c
-+++ b/drivers/acpi/x86/s2idle.c
-@@ -424,15 +424,11 @@ static int lps0_device_attach(struct acpi_device *adev,
- mem_sleep_current = PM_SUSPEND_TO_IDLE;
-
- /*
-- * Some Intel based LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U don't
-- * use intel-hid or intel-vbtn but require the EC GPE to be enabled while
-- * suspended for certain wakeup devices to work, so mark it as wakeup-capable.
-- *
-- * Only enable on !AMD as enabling this universally causes problems for a number
-- * of AMD based systems.
-+ * Some LPS0 systems, like ASUS Zenbook UX430UNR/i7-8550U, require the
-+ * EC GPE to be enabled while suspended for certain wakeup devices to
-+ * work, so mark it as wakeup-capable.
- */
-- if (!acpi_s2idle_vendor_amd())
-- acpi_ec_mark_gpe_for_wake();
-+ acpi_ec_mark_gpe_for_wake();
-
- return 0;
- }
---
-2.34.1
-
-From 2b9833f49eddfff752f859136e82ba2caefb5a74 Mon Sep 17 00:00:00 2001
+From 98780cabe49ebf164d607b3d867bed836090d68f Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 16 Nov 2021 06:27:26 +0000
Subject: ARM: OMAP2+: adjust the location of put_device() call in
+++ /dev/null
-From 2b9833f49eddfff752f859136e82ba2caefb5a74 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Nov 2021 06:27:26 +0000
-Subject: ARM: OMAP2+: adjust the location of put_device() call in
- omapdss_init_of
-
-From: Ye Guojin <ye.guojin@zte.com.cn>
-
-[ Upstream commit 34596ba380b03d181e24efd50e2f21045bde3696 ]
-
-This was found by coccicheck:
-./arch/arm/mach-omap2/display.c, 272, 1-7, ERROR missing put_device;
-call of_find_device_by_node on line 258, but without a corresponding
-object release within this function.
-
-Move the put_device() call before the if judgment.
-
-Reported-by: Zeal Robot <zealci@zte.com.cn>
-Signed-off-by: Ye Guojin <ye.guojin@zte.com.cn>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/display.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
-index 6daaa645ae5d9..21413a9b7b6c6 100644
---- a/arch/arm/mach-omap2/display.c
-+++ b/arch/arm/mach-omap2/display.c
-@@ -263,9 +263,9 @@ static int __init omapdss_init_of(void)
- }
-
- r = of_platform_populate(node, NULL, NULL, &pdev->dev);
-+ put_device(&pdev->dev);
- if (r) {
- pr_err("Unable to populate DSS submodule devices\n");
-- put_device(&pdev->dev);
- return r;
- }
-
---
-2.34.1
-
-From 8a5bad6d22c3eab41d8056f8ece5d91c77e2256e Mon Sep 17 00:00:00 2001
+From ea9a317924022714992fd281b5fb42286aa8eac9 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 14 Oct 2021 04:57:19 -0400
Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
+++ /dev/null
-From 8a5bad6d22c3eab41d8056f8ece5d91c77e2256e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 14 Oct 2021 04:57:19 -0400
-Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 80c469a0a03763f814715f3d12b6f3964c7423e8 ]
-
-Fix following coccicheck warning:
-./arch/arm/mach-omap2/omap_hwmod.c:753:1-23: WARNING: Function
-for_each_matching_node should have of_node_put() before break
-
-Early exits from for_each_matching_node should decrement the
-node reference counter.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/omap_hwmod.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index ccb0e3732c0dc..31d1a21f60416 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -752,8 +752,10 @@ static int __init _init_clkctrl_providers(void)
-
- for_each_matching_node(np, ti_clkctrl_match_table) {
- ret = _setup_clkctrl_provider(np);
-- if (ret)
-+ if (ret) {
-+ of_node_put(np);
- break;
-+ }
- }
-
- return ret;
---
-2.34.1
-
-From 4befb25eb856f7904f8e930113c13c477e1eacbd Mon Sep 17 00:00:00 2001
+From 0ec10bd851ca25b83d537f5ed4c11a370f0a6b3f Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:53 +0000
Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
index 428449d98c0ae..a3a1ea0f21340 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -107,6 +107,12 @@ secmon_reserved: secmon@5000000 {
+@@ -107,6 +107,12 @@
no-map;
};
+++ /dev/null
-From 4befb25eb856f7904f8e930113c13c477e1eacbd Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:53 +0000
-Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 08982a1b3aa2611c9c711d24825c9002d28536f4 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-3-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-index 428449d98c0ae..a3a1ea0f21340 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -107,6 +107,12 @@ secmon_reserved: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From 1d062ff7de51c26c35fbfdf955f58822a6801bb7 Mon Sep 17 00:00:00 2001
+From f2fe9cdc5010260783bde73d927e4d88454d79ad Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:54 +0000
Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
index d8838dde0f0f4..4fb31c2ba31c4 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -157,14 +157,6 @@
regulator-always-on;
};
index 427475846fc70..a5d79f2f7c196 100644
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -203,14 +203,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -203,14 +203,6 @@
regulator-always-on;
};
+++ /dev/null
-From 1d062ff7de51c26c35fbfdf955f58822a6801bb7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:54 +0000
-Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit f26573e2bc9dfd551a0d5c6971f18cc546543312 ]
-
-The BL32/TEE reserved-memory region is now inherited from the common
-family dtsi (meson-g12-common) so we can drop it from board files.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-4-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 8 --------
- arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 8 --------
- 2 files changed, 16 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-index d8838dde0f0f4..4fb31c2ba31c4 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-index 427475846fc70..a5d79f2f7c196 100644
---- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -203,14 +203,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
---
-2.34.1
-
-From 41e612f5b6f05eb41849bd43f712cc7142eb9f46 Mon Sep 17 00:00:00 2001
+From b98c017e620f1c7b56098194165aa871aeb4801d Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:52 +0000
Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
index 6b457b2c30a4b..aa14ea017a613 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -49,6 +49,12 @@ secmon_reserved_alt: secmon@5000000 {
+@@ -49,6 +49,12 @@
no-map;
};
+++ /dev/null
-From 41e612f5b6f05eb41849bd43f712cc7142eb9f46 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:52 +0000
-Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 76577c9137456febb05b0e17d244113196a98968 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Suggested-by: Mateusz Krzak <kszaquitto@gmail.com>
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-2-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index 6b457b2c30a4b..aa14ea017a613 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -49,6 +49,12 @@ secmon_reserved_alt: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From 2fa76369e9f4d041150587036b9d52bea360ae69 Mon Sep 17 00:00:00 2001
+From 411117c7e298bf9b3355015ff9209132aa9f91cf Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 4 Feb 2022 13:57:50 +0100
Subject: ata: libata-core: Disable TRIM on M88V29
+++ /dev/null
-From 2fa76369e9f4d041150587036b9d52bea360ae69 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Feb 2022 13:57:50 +0100
-Subject: ata: libata-core: Disable TRIM on M88V29
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Zoltán Böszörményi <zboszor@gmail.com>
-
-[ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ]
-
-This device is a CF card, or possibly an SSD in CF form factor.
-It supports NCQ and high speed DMA.
-
-While it also advertises TRIM support, I/O errors are reported
-when the discard mount option fstrim is used. TRIM also fails
-when disabling NCQ and not just as an NCQ command.
-
-TRIM must be disabled for this device.
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 94bc5dbb31e1e..63666ee9de175 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -4079,6 +4079,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
-
- /* devices that don't properly handle TRIM commands */
- { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
-+ { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, },
-
- /*
- * As defined, the DRAT (Deterministic Read After Trim) and RZAT
---
-2.34.1
-
-From f354b7fa344ce4440c39e1b742be1559b10336e9 Mon Sep 17 00:00:00 2001
+From a7bb8b2c501349b65a948cf156f4c70afc1c0349 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 25 Jan 2022 15:49:47 -0600
Subject: display/amd: decrease message verbosity about watermarks table
+++ /dev/null
-From f354b7fa344ce4440c39e1b742be1559b10336e9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 25 Jan 2022 15:49:47 -0600
-Subject: display/amd: decrease message verbosity about watermarks table
- failure
-
-From: Mario Limonciello <mario.limonciello@amd.com>
-
-[ Upstream commit 03ad3093c7c069d6ab4403730009ebafeea9ee37 ]
-
-A number of BIOS versions have a problem with the watermarks table not
-being configured properly. This manifests as a very scary looking warning
-during resume from s0i3. This should be harmless in most cases and is well
-understood, so decrease the assertion to a clearer warning about the problem.
-
-Reviewed-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c
-index 162ae71861247..21d2cbc3cbb20 100644
---- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c
-+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c
-@@ -120,7 +120,11 @@ int dcn31_smu_send_msg_with_param(
- result = dcn31_smu_wait_for_response(clk_mgr, 10, 200000);
-
- if (result == VBIOSSMC_Result_Failed) {
-- ASSERT(0);
-+ if (msg_id == VBIOSSMC_MSG_TransferTableDram2Smu &&
-+ param == TABLE_WATERMARKS)
-+ DC_LOG_WARNING("Watermarks table not configured properly by SMU");
-+ else
-+ ASSERT(0);
- REG_WRITE(MP1_SMN_C2PMSG_91, VBIOSSMC_Result_OK);
- return -1;
- }
---
-2.34.1
-
-From 498bb371f6462b7ffa48ad2cacd86425852fe093 Mon Sep 17 00:00:00 2001
+From e64616cdb61eca851a689e6130f49eaa88d867bc Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 2 Feb 2022 14:30:09 -0500
Subject: drm/amd/display: Cap pflip irqs per max otg number
+++ /dev/null
-From 498bb371f6462b7ffa48ad2cacd86425852fe093 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 2 Feb 2022 14:30:09 -0500
-Subject: drm/amd/display: Cap pflip irqs per max otg number
-
-From: Roman Li <Roman.Li@amd.com>
-
-[ Upstream commit 328e34a5ad227399391891d454043e5d73e598d2 ]
-
-[Why]
-pflip interrupt order are mapped 1 to 1 to otg id.
-e.g. if irq_src=26 corresponds to otg0 then 27->otg1, 28->otg2...
-
-Linux DM registers pflip interrupts per number of crtcs.
-In fused pipe case crtc numbers can be less than otg id.
-
-e.g. if one pipe out of 3(otg#0-2) is fused adev->mode_info.num_crtc=2
-so DM only registers irq_src 26,27.
-This is a bug since if pipe#2 remains unfused DM never gets
-otg2 pflip interrupt (irq_src=28)
-That may results in gfx failure due to pflip timeout.
-
-[How]
-Register pflip interrupts per max num of otg instead of num_crtc
-
-Signed-off-by: Roman Li <Roman.Li@amd.com>
-Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
- drivers/gpu/drm/amd/display/dc/core/dc.c | 2 ++
- drivers/gpu/drm/amd/display/dc/dc.h | 1 +
- 3 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-index efcb25ef1809a..0117b00b4ed83 100644
---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -3629,7 +3629,7 @@ static int dcn10_register_irq_handlers(struct amdgpu_device *adev)
-
- /* Use GRPH_PFLIP interrupt */
- for (i = DCN_1_0__SRCID__HUBP0_FLIP_INTERRUPT;
-- i <= DCN_1_0__SRCID__HUBP0_FLIP_INTERRUPT + adev->mode_info.num_crtc - 1;
-+ i <= DCN_1_0__SRCID__HUBP0_FLIP_INTERRUPT + dc->caps.max_otg_num - 1;
- i++) {
- r = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_DCE, i, &adev->pageflip_irq);
- if (r) {
-diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
-index f0fbd8ad56229..e890e063cde31 100644
---- a/drivers/gpu/drm/amd/display/dc/core/dc.c
-+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
-@@ -1237,6 +1237,8 @@ struct dc *dc_create(const struct dc_init_data *init_params)
-
- dc->caps.max_dp_protocol_version = DP_VERSION_1_4;
-
-+ dc->caps.max_otg_num = dc->res_pool->res_cap->num_timing_generator;
-+
- if (dc->res_pool->dmcu != NULL)
- dc->versions.dmcu_version = dc->res_pool->dmcu->dmcu_version;
- }
-diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
-index 618e7989176fc..14864763a1881 100644
---- a/drivers/gpu/drm/amd/display/dc/dc.h
-+++ b/drivers/gpu/drm/amd/display/dc/dc.h
-@@ -190,6 +190,7 @@ struct dc_caps {
- #endif
- bool vbios_lttpr_aware;
- bool vbios_lttpr_enable;
-+ uint32_t max_otg_num;
- };
-
- struct dc_bug_wa {
---
-2.34.1
-
-From 7b1b422e2302968ed901084cfea2ee3d4067a256 Mon Sep 17 00:00:00 2001
+From 2c119da635a22763b4acfbfe337d6a3afcb3adcd Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 11:55:49 -0500
Subject: drm/amd/display: fix yellow carp wm clamping
+++ /dev/null
-From 7b1b422e2302968ed901084cfea2ee3d4067a256 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 11:55:49 -0500
-Subject: drm/amd/display: fix yellow carp wm clamping
-
-From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-
-[ Upstream commit 60fdf98a774eee244a4e00c34a9e7729b61d0f44 ]
-
-Fix clamping to match register field size
-
-Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
-Acked-by: Jasdeep Dhillon <jdhillon@amd.com>
-Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- .../drm/amd/display/dc/dcn31/dcn31_hubbub.c | 61 ++++++++++---------
- 1 file changed, 32 insertions(+), 29 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c
-index 90c73a1cb9861..5e3bcaf12cac4 100644
---- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c
-+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubbub.c
-@@ -138,8 +138,11 @@ static uint32_t convert_and_clamp(
- ret_val = wm_ns * refclk_mhz;
- ret_val /= 1000;
-
-- if (ret_val > clamp_value)
-+ if (ret_val > clamp_value) {
-+ /* clamping WMs is abnormal, unexpected and may lead to underflow*/
-+ ASSERT(0);
- ret_val = clamp_value;
-+ }
-
- return ret_val;
- }
-@@ -159,7 +162,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->a.urgent_ns > hubbub2->watermarks.a.urgent_ns) {
- hubbub2->watermarks.a.urgent_ns = watermarks->a.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->a.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_A, prog_wm_value);
-
-@@ -193,7 +196,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->a.urgent_latency_ns > hubbub2->watermarks.a.urgent_latency_ns) {
- hubbub2->watermarks.a.urgent_latency_ns = watermarks->a.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->a.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_A, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_A, prog_wm_value);
- } else if (watermarks->a.urgent_latency_ns < hubbub2->watermarks.a.urgent_latency_ns)
-@@ -203,7 +206,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->b.urgent_ns > hubbub2->watermarks.b.urgent_ns) {
- hubbub2->watermarks.b.urgent_ns = watermarks->b.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->b.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_B, prog_wm_value);
-
-@@ -237,7 +240,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->b.urgent_latency_ns > hubbub2->watermarks.b.urgent_latency_ns) {
- hubbub2->watermarks.b.urgent_latency_ns = watermarks->b.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->b.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_B, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_B, prog_wm_value);
- } else if (watermarks->b.urgent_latency_ns < hubbub2->watermarks.b.urgent_latency_ns)
-@@ -247,7 +250,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->c.urgent_ns > hubbub2->watermarks.c.urgent_ns) {
- hubbub2->watermarks.c.urgent_ns = watermarks->c.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->c.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_C, prog_wm_value);
-
-@@ -281,7 +284,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->c.urgent_latency_ns > hubbub2->watermarks.c.urgent_latency_ns) {
- hubbub2->watermarks.c.urgent_latency_ns = watermarks->c.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->c.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_C, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_C, prog_wm_value);
- } else if (watermarks->c.urgent_latency_ns < hubbub2->watermarks.c.urgent_latency_ns)
-@@ -291,7 +294,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->d.urgent_ns > hubbub2->watermarks.d.urgent_ns) {
- hubbub2->watermarks.d.urgent_ns = watermarks->d.urgent_ns;
- prog_wm_value = convert_and_clamp(watermarks->d.urgent_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D, 0,
- DCHUBBUB_ARB_DATA_URGENCY_WATERMARK_D, prog_wm_value);
-
-@@ -325,7 +328,7 @@ static bool hubbub31_program_urgent_watermarks(
- if (safe_to_lower || watermarks->d.urgent_latency_ns > hubbub2->watermarks.d.urgent_latency_ns) {
- hubbub2->watermarks.d.urgent_latency_ns = watermarks->d.urgent_latency_ns;
- prog_wm_value = convert_and_clamp(watermarks->d.urgent_latency_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0x3fff);
- REG_SET(DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_D, 0,
- DCHUBBUB_ARB_REFCYC_PER_TRIP_TO_MEMORY_D, prog_wm_value);
- } else if (watermarks->d.urgent_latency_ns < hubbub2->watermarks.d.urgent_latency_ns)
-@@ -351,7 +354,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_A calculated =%d\n"
-@@ -367,7 +370,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_A calculated =%d\n"
-@@ -383,7 +386,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_A calculated =%d\n"
-@@ -399,7 +402,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->a.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_A, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_A calculated =%d\n"
-@@ -416,7 +419,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_B calculated =%d\n"
-@@ -432,7 +435,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_B calculated =%d\n"
-@@ -448,7 +451,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_B calculated =%d\n"
-@@ -464,7 +467,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->b.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_B, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_B calculated =%d\n"
-@@ -481,7 +484,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_C calculated =%d\n"
-@@ -497,7 +500,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_C calculated =%d\n"
-@@ -513,7 +516,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_C calculated =%d\n"
-@@ -529,7 +532,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->c.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_C, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_C calculated =%d\n"
-@@ -546,7 +549,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_EXIT_WATERMARK_D calculated =%d\n"
-@@ -562,7 +565,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_exit_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_exit_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_D calculated =%d\n"
-@@ -578,7 +581,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_enter_plus_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_ENTER_WATERMARK_Z8_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_ENTER_WATERMARK_Z8_D calculated =%d\n"
-@@ -594,7 +597,7 @@ static bool hubbub31_program_stutter_watermarks(
- watermarks->d.cstate_pstate.cstate_exit_z8_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.cstate_exit_z8_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_D, 0,
- DCHUBBUB_ARB_ALLOW_SR_EXIT_WATERMARK_Z8_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("SR_EXIT_WATERMARK_Z8_D calculated =%d\n"
-@@ -625,7 +628,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->a.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->a.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_A, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_A calculated =%d\n"
-@@ -642,7 +645,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->b.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->b.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_B, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_B calculated =%d\n"
-@@ -659,7 +662,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->c.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->c.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_C, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_C calculated =%d\n"
-@@ -676,7 +679,7 @@ static bool hubbub31_program_pstate_watermarks(
- watermarks->d.cstate_pstate.pstate_change_ns;
- prog_wm_value = convert_and_clamp(
- watermarks->d.cstate_pstate.pstate_change_ns,
-- refclk_mhz, 0x1fffff);
-+ refclk_mhz, 0xffff);
- REG_SET(DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D, 0,
- DCHUBBUB_ARB_ALLOW_DRAM_CLK_CHANGE_WATERMARK_D, prog_wm_value);
- DC_LOG_BANDWIDTH_CALCS("DRAM_CLK_CHANGE_WATERMARK_D calculated =%d\n"
---
-2.34.1
-
-From a6bc80db0d4f6d0c8cb3703c44c5118e01e5294a Mon Sep 17 00:00:00 2001
+From 775cbba281b66c37dbb0c6f12c68bc1141acaf15 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sat, 29 Jan 2022 09:21:31 +0800
Subject: drm/amdgpu: add utcl2_harvest to gc 10.3.1
+++ /dev/null
-From a6bc80db0d4f6d0c8cb3703c44c5118e01e5294a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 29 Jan 2022 09:21:31 +0800
-Subject: drm/amdgpu: add utcl2_harvest to gc 10.3.1
-
-From: Aaron Liu <aaron.liu@amd.com>
-
-[ Upstream commit a072312f43c33ea02ad88bff3375f650684a6f24 ]
-
-Confirmed with hardware team, there is harvesting for gc 10.3.1.
-
-Signed-off-by: Aaron Liu <aaron.liu@amd.com>
-Reviewed-by: Huang Rui <ray.huang@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
-index b4eddf6e98a6a..ff738e9725ee8 100644
---- a/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
-+++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c
-@@ -543,7 +543,9 @@ static void gfxhub_v2_1_utcl2_harvest(struct amdgpu_device *adev)
- adev->gfx.config.max_sh_per_se *
- adev->gfx.config.max_shader_engines);
-
-- if (adev->ip_versions[GC_HWIP][0] == IP_VERSION(10, 3, 3)) {
-+ switch (adev->ip_versions[GC_HWIP][0]) {
-+ case IP_VERSION(10, 3, 1):
-+ case IP_VERSION(10, 3, 3):
- /* Get SA disabled bitmap from eFuse setting */
- efuse_setting = RREG32_SOC15(GC, 0, mmCC_GC_SA_UNIT_DISABLE);
- efuse_setting &= CC_GC_SA_UNIT_DISABLE__SA_DISABLE_MASK;
-@@ -566,6 +568,9 @@ static void gfxhub_v2_1_utcl2_harvest(struct amdgpu_device *adev)
- disabled_sa = tmp;
-
- WREG32_SOC15(GC, 0, mmGCUTCL2_HARVEST_BYPASS_GROUPS_YELLOW_CARP, disabled_sa);
-+ break;
-+ default:
-+ break;
- }
- }
-
---
-2.34.1
-
-From 4cc0a4681c544ed70c7e1f248e87ed7be060cec2 Mon Sep 17 00:00:00 2001
+From 37c3203f72d1397767426beccedc36c01f927bb8 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 15:55:24 +0100
Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
+++ /dev/null
-From 4cc0a4681c544ed70c7e1f248e87ed7be060cec2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 15:55:24 +0100
-Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
-
-From: Sascha Hauer <s.hauer@pengutronix.de>
-
-[ Upstream commit c0cfbb122275da1b726481de5a8cffeb24e6322b ]
-
-The driver returns an error when devm_phy_optional_get() fails leaving
-the previously enabled clock turned on. Change order and enable the
-clock only after the phy has been acquired.
-
-Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220126145549.617165-3-s.hauer@pengutronix.de
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-index 830bdd5e9b7ce..8677c82716784 100644
---- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-@@ -529,13 +529,6 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-- ret = clk_prepare_enable(hdmi->vpll_clk);
-- if (ret) {
-- DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-- ret);
-- return ret;
-- }
--
- hdmi->phy = devm_phy_optional_get(dev, "hdmi");
- if (IS_ERR(hdmi->phy)) {
- ret = PTR_ERR(hdmi->phy);
-@@ -544,6 +537,13 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-+ ret = clk_prepare_enable(hdmi->vpll_clk);
-+ if (ret) {
-+ DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-+ ret);
-+ return ret;
-+ }
-+
- drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
- drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
-
---
-2.34.1
-
-From 3b83881672550b0e567fba70502ebf0cee2c2375 Mon Sep 17 00:00:00 2001
+From c8a60563a6602461f3705ca6128e51b2cafcd9fe Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 21:56:34 +0800
Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
+++ /dev/null
-From 3b83881672550b0e567fba70502ebf0cee2c2375 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 21:56:34 +0800
-Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
-
-From: Guo Ren <guoren@linux.alibaba.com>
-
-[ Upstream commit 1d4df649cbb4b26d19bea38ecff4b65b10a1bbca ]
-
-The thead,c900-plic has been used in opensbi to distinguish
-PLIC [1]. Although PLICs have the same behaviors in Linux,
-they are different hardware with some custom initializing in
-firmware(opensbi).
-
-Qute opensbi patch commit-msg by Samuel:
-
- The T-HEAD PLIC implementation requires setting a delegation bit
- to allow access from S-mode. Now that the T-HEAD PLIC has its own
- compatible string, set this bit automatically from the PLIC driver,
- instead of reaching into the PLIC's MMIO space from another driver.
-
-[1]: https://github.com/riscv-software-src/opensbi/commit/78c2b19218bd62653b9fb31623a42ced45f38ea6
-
-Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
-Cc: Anup Patel <anup@brainfault.org>
-Cc: Marc Zyngier <maz@kernel.org>
-Cc: Palmer Dabbelt <palmer@dabbelt.com>
-Cc: Samuel Holland <samuel@sholland.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Tested-by: Samuel Holland <samuel@sholland.org>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220130135634.1213301-3-guoren@kernel.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-sifive-plic.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
-index 259065d271ef0..09cc98266d30f 100644
---- a/drivers/irqchip/irq-sifive-plic.c
-+++ b/drivers/irqchip/irq-sifive-plic.c
-@@ -398,3 +398,4 @@ static int __init plic_init(struct device_node *node,
-
- IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init);
- IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */
-+IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_init); /* for firmware driver */
---
-2.34.1
-
-From 6207d6ff477414add5af63b8fd1a277099a50fdf Mon Sep 17 00:00:00 2001
+From 36f6522a5ae11bfa4f554d2e47cda0058f07ede9 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 11 Feb 2022 17:27:36 +0800
Subject: kconfig: fix failing to generate auto.conf
+++ /dev/null
-From 6207d6ff477414add5af63b8fd1a277099a50fdf Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Feb 2022 17:27:36 +0800
-Subject: kconfig: fix failing to generate auto.conf
-
-From: Jing Leng <jleng@ambarella.com>
-
-[ Upstream commit 1b9e740a81f91ae338b29ed70455719804957b80 ]
-
-When the KCONFIG_AUTOCONFIG is specified (e.g. export \
-KCONFIG_AUTOCONFIG=output/config/auto.conf), the directory of
-include/config/ will not be created, so kconfig can't create deps
-files in it and auto.conf can't be generated.
-
-Signed-off-by: Jing Leng <jleng@ambarella.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/confdata.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
-index 00284c03da4d3..027f4c28dc320 100644
---- a/scripts/kconfig/confdata.c
-+++ b/scripts/kconfig/confdata.c
-@@ -992,14 +992,19 @@ static int conf_write_autoconf_cmd(const char *autoconf_name)
-
- static int conf_touch_deps(void)
- {
-- const char *name;
-+ const char *name, *tmp;
- struct symbol *sym;
- int res, i;
-
-- strcpy(depfile_path, "include/config/");
-- depfile_prefix_len = strlen(depfile_path);
--
- name = conf_get_autoconfig_name();
-+ tmp = strrchr(name, '/');
-+ depfile_prefix_len = tmp ? tmp - name + 1 : 0;
-+ if (depfile_prefix_len + 1 > sizeof(depfile_path))
-+ return -1;
-+
-+ strncpy(depfile_path, name, depfile_prefix_len);
-+ depfile_path[depfile_prefix_len] = 0;
-+
- conf_read_simple(name, S_DEF_AUTO);
- sym_calc_value(modules_sym);
-
---
-2.34.1
-
-From 3c6282ed0945fa3c3190d6a804e47183360e7c70 Mon Sep 17 00:00:00 2001
+From 27d27d9679cdb2e0a66b05e8408bb2fc0d0b9c82 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 16:01:28 -0600
Subject: kconfig: let 'shell' return enough output for deep path names
+++ /dev/null
-From 3c6282ed0945fa3c3190d6a804e47183360e7c70 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 16:01:28 -0600
-Subject: kconfig: let 'shell' return enough output for deep path names
-
-From: Brenda Streiff <brenda.streiff@ni.com>
-
-[ Upstream commit 8a4c5b2a6d8ea079fa36034e8167de87ab6f8880 ]
-
-The 'shell' built-in only returns the first 256 bytes of the command's
-output. In some cases, 'shell' is used to return a path; by bumping up
-the buffer size to 4096 this lets us capture up to PATH_MAX.
-
-The specific case where I ran into this was due to commit 1e860048c53e
-("gcc-plugins: simplify GCC plugin-dev capability test"). After this
-change, we now use `$(shell,$(CC) -print-file-name=plugin)` to return
-a path; if the gcc path is particularly long, then the path ends up
-truncated at the 256 byte mark, which makes the HAVE_GCC_PLUGINS
-depends test always fail.
-
-Signed-off-by: Brenda Streiff <brenda.streiff@ni.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/preprocess.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/kconfig/preprocess.c b/scripts/kconfig/preprocess.c
-index 0590f86df6e40..748da578b418c 100644
---- a/scripts/kconfig/preprocess.c
-+++ b/scripts/kconfig/preprocess.c
-@@ -141,7 +141,7 @@ static char *do_lineno(int argc, char *argv[])
- static char *do_shell(int argc, char *argv[])
- {
- FILE *p;
-- char buf[256];
-+ char buf[4096];
- char *cmd;
- size_t nread;
- int i;
---
-2.34.1
-
-From 9cf37104f4309cd7e35331d1c72b5c9a95d25a9b Mon Sep 17 00:00:00 2001
+From bf54c89aef6f22040ed54da87919adfb38ce1cbb Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 18:31:01 +0900
Subject: ksmbd: don't align last entry offset in smb2 query directory
+++ /dev/null
-From 9cf37104f4309cd7e35331d1c72b5c9a95d25a9b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 18:31:01 +0900
-Subject: ksmbd: don't align last entry offset in smb2 query directory
-
-From: Namjae Jeon <linkinjeon@kernel.org>
-
-[ Upstream commit 04e260948a160d3b7d622bf4c8a96fa4577c09bd ]
-
-When checking smb2 query directory packets from other servers,
-OutputBufferLength is different with ksmbd. Other servers add an unaligned
-next offset to OutputBufferLength for the last entry.
-
-Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ksmbd/smb2pdu.c | 7 ++++---
- fs/ksmbd/vfs.h | 1 +
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
-index 1ff1e52f398fc..cbbbccdc5a0a5 100644
---- a/fs/ksmbd/smb2pdu.c
-+++ b/fs/ksmbd/smb2pdu.c
-@@ -3423,9 +3423,9 @@ static int smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level,
- goto free_conv_name;
- }
-
-- struct_sz = readdir_info_level_struct_sz(info_level);
-- next_entry_offset = ALIGN(struct_sz - 1 + conv_len,
-- KSMBD_DIR_INFO_ALIGNMENT);
-+ struct_sz = readdir_info_level_struct_sz(info_level) - 1 + conv_len;
-+ next_entry_offset = ALIGN(struct_sz, KSMBD_DIR_INFO_ALIGNMENT);
-+ d_info->last_entry_off_align = next_entry_offset - struct_sz;
-
- if (next_entry_offset > d_info->out_buf_len) {
- d_info->out_buf_len = 0;
-@@ -3977,6 +3977,7 @@ int smb2_query_dir(struct ksmbd_work *work)
- ((struct file_directory_info *)
- ((char *)rsp->Buffer + d_info.last_entry_offset))
- ->NextEntryOffset = 0;
-+ d_info.data_count -= d_info.last_entry_off_align;
-
- rsp->StructureSize = cpu_to_le16(9);
- rsp->OutputBufferOffset = cpu_to_le16(72);
-diff --git a/fs/ksmbd/vfs.h b/fs/ksmbd/vfs.h
-index adf94a4f22fa6..8c37aaf936ab1 100644
---- a/fs/ksmbd/vfs.h
-+++ b/fs/ksmbd/vfs.h
-@@ -47,6 +47,7 @@ struct ksmbd_dir_info {
- int last_entry_offset;
- bool hide_dot_file;
- int flags;
-+ int last_entry_off_align;
- };
-
- struct ksmbd_readdir_data {
---
-2.34.1
-
-From ffca0b8b0b0be4438711ad691f31330e7c837e9b Mon Sep 17 00:00:00 2001
+From 850c466447a154c5375ec84bca3f02d5218b2d96 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 18:28:56 +0900
Subject: ksmbd: fix same UniqueId for dot and dotdot entries
+++ /dev/null
-From ffca0b8b0b0be4438711ad691f31330e7c837e9b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 18:28:56 +0900
-Subject: ksmbd: fix same UniqueId for dot and dotdot entries
-
-From: Namjae Jeon <linkinjeon@kernel.org>
-
-[ Upstream commit 97550c7478a2da93e348d8c3075d92cddd473a78 ]
-
-ksmbd sets the inode number to UniqueId. However, the same UniqueId for
-dot and dotdot entry is set to the inode number of the parent inode.
-This patch set them using the current inode and parent inode.
-
-Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/ksmbd/smb_common.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/fs/ksmbd/smb_common.c b/fs/ksmbd/smb_common.c
-index ef7f42b0290a8..9a7e211dbf4f4 100644
---- a/fs/ksmbd/smb_common.c
-+++ b/fs/ksmbd/smb_common.c
-@@ -308,14 +308,17 @@ int ksmbd_populate_dot_dotdot_entries(struct ksmbd_work *work, int info_level,
- for (i = 0; i < 2; i++) {
- struct kstat kstat;
- struct ksmbd_kstat ksmbd_kstat;
-+ struct dentry *dentry;
-
- if (!dir->dot_dotdot[i]) { /* fill dot entry info */
- if (i == 0) {
- d_info->name = ".";
- d_info->name_len = 1;
-+ dentry = dir->filp->f_path.dentry;
- } else {
- d_info->name = "..";
- d_info->name_len = 2;
-+ dentry = dir->filp->f_path.dentry->d_parent;
- }
-
- if (!match_pattern(d_info->name, d_info->name_len,
-@@ -327,7 +330,7 @@ int ksmbd_populate_dot_dotdot_entries(struct ksmbd_work *work, int info_level,
- ksmbd_kstat.kstat = &kstat;
- ksmbd_vfs_fill_dentry_attrs(work,
- user_ns,
-- dir->filp->f_path.dentry->d_parent,
-+ dentry,
- &ksmbd_kstat);
- rc = fn(conn, info_level, d_info, &ksmbd_kstat);
- if (rc)
---
-2.34.1
-
-From 9e8785938dda58176e7af4cf5a9488c24b8649c9 Mon Sep 17 00:00:00 2001
+From bd051e6168b214f3e1418456554a5caf7b53abd5 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Mon, 24 Jan 2022 21:17:36 -0800
Subject: mm: io_uring: allow oom-killer from io_uring_setup
+++ /dev/null
-From 9e8785938dda58176e7af4cf5a9488c24b8649c9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 24 Jan 2022 21:17:36 -0800
-Subject: mm: io_uring: allow oom-killer from io_uring_setup
-
-From: Shakeel Butt <shakeelb@google.com>
-
-[ Upstream commit 0a3f1e0beacf6cc8ae5f846b0641c1df476e83d6 ]
-
-On an overcommitted system which is running multiple workloads of
-varying priorities, it is preferred to trigger an oom-killer to kill a
-low priority workload than to let the high priority workload receiving
-ENOMEMs. On our memory overcommitted systems, we are seeing a lot of
-ENOMEMs instead of oom-kills because io_uring_setup callchain is using
-__GFP_NORETRY gfp flag which avoids the oom-killer. Let's remove it and
-allow the oom-killer to kill a lower priority job.
-
-Signed-off-by: Shakeel Butt <shakeelb@google.com>
-Link: https://lore.kernel.org/r/20220125051736.2981459-1-shakeelb@google.com
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/io_uring.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/fs/io_uring.c b/fs/io_uring.c
-index 698db7fb62e06..a92f276f21d9c 100644
---- a/fs/io_uring.c
-+++ b/fs/io_uring.c
-@@ -8872,10 +8872,9 @@ static void io_mem_free(void *ptr)
-
- static void *io_mem_alloc(size_t size)
- {
-- gfp_t gfp_flags = GFP_KERNEL | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP |
-- __GFP_NORETRY | __GFP_ACCOUNT;
-+ gfp_t gfp = GFP_KERNEL_ACCOUNT | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP;
-
-- return (void *) __get_free_pages(gfp_flags, get_order(size));
-+ return (void *) __get_free_pages(gfp, get_order(size));
- }
-
- static unsigned long rings_size(unsigned sq_entries, unsigned cq_entries,
---
-2.34.1
-
-From f765373a9a4fe0646cf9a6dbf2c88d5b2ba40acc Mon Sep 17 00:00:00 2001
+From 648b2c635f10edbd251e7a86c578b139549ed1c4 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 15:13:25 +0530
Subject: net: macb: Align the dma and coherent dma masks
+++ /dev/null
-From f765373a9a4fe0646cf9a6dbf2c88d5b2ba40acc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 15:13:25 +0530
-Subject: net: macb: Align the dma and coherent dma masks
-
-From: Marc St-Amand <mstamand@ciena.com>
-
-[ Upstream commit 37f7860602b5b2d99fc7465f6407f403f5941988 ]
-
-Single page and coherent memory blocks can use different DMA masks
-when the macb accesses physical memory directly. The kernel is clever
-enough to allocate pages that fit into the requested address width.
-
-When using the ARM SMMU, the DMA mask must be the same for single
-pages and big coherent memory blocks. Otherwise the translation
-tables turn into one big mess.
-
- [ 74.959909] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 74.959989] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
- [ 75.173939] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 75.173955] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
-
-Since using the same DMA mask does not hurt direct 1:1 physical
-memory mappings, this commit always aligns DMA and coherent masks.
-
-Signed-off-by: Marc St-Amand <mstamand@ciena.com>
-Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
-Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
-Tested-by: Conor Dooley <conor.dooley@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/cadence/macb_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
-index ffce528aa00e4..aac1b27bfc7bf 100644
---- a/drivers/net/ethernet/cadence/macb_main.c
-+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4749,7 +4749,7 @@ static int macb_probe(struct platform_device *pdev)
-
- #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
- if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-- dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
-+ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
- bp->hw_dma_cap |= HW_DMA_CAP_64B;
- }
- #endif
---
-2.34.1
-
-From 3f85bd6eb126103632e15241fb6a8d2b554b2b10 Mon Sep 17 00:00:00 2001
+From 9e86dce6b43cce98978f6ddd295b3e527e5eabb0 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 10:47:17 +0800
Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
+++ /dev/null
-From 3f85bd6eb126103632e15241fb6a8d2b554b2b10 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 10:47:17 +0800
-Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Slark Xiao <slark_xiao@163.com>
-
-[ Upstream commit 8ecbb179286cbc91810c16caeb3396e06305cd0c ]
-
-Dell DW5829e same as DW5821e except the CAT level.
-DW5821e supports CAT16 but DW5829e supports CAT9.
-Also, DW5829e includes normal and eSIM type.
-Please see below test evidence:
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e6 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e4 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e-eSIM Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-Signed-off-by: Slark Xiao <slark_xiao@163.com>
-Acked-by: Bjørn Mork <bjorn@mork.no>
-Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/usb/qmi_wwan.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index f510e82194705..2f2abc42cecea 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -1399,6 +1399,8 @@ static const struct usb_device_id products[] = {
- {QMI_FIXED_INTF(0x413c, 0x81d7, 0)}, /* Dell Wireless 5821e */
- {QMI_FIXED_INTF(0x413c, 0x81d7, 1)}, /* Dell Wireless 5821e preproduction config */
- {QMI_FIXED_INTF(0x413c, 0x81e0, 0)}, /* Dell Wireless 5821e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e4, 0)}, /* Dell Wireless 5829e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e6, 0)}, /* Dell Wireless 5829e */
- {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
- {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
---
-2.34.1
-
-From ad06dac9865ae39e15c4b3bc3d0e13e20023f9f3 Mon Sep 17 00:00:00 2001
+From fe78421d0ef9105902143791db94f03265533075 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 13:13:32 +0100
Subject: netfilter: conntrack: don't refresh sctp entries in closed state
+++ /dev/null
-From ad06dac9865ae39e15c4b3bc3d0e13e20023f9f3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 13:13:32 +0100
-Subject: netfilter: conntrack: don't refresh sctp entries in closed state
-
-From: Florian Westphal <fw@strlen.de>
-
-[ Upstream commit 77b337196a9d87f3d6bb9b07c0436ecafbffda1e ]
-
-Vivek Thrivikraman reported:
- An SCTP server application which is accessed continuously by client
- application.
- When the session disconnects the client retries to establish a connection.
- After restart of SCTP server application the session is not established
- because of stale conntrack entry with connection state CLOSED as below.
-
- (removing this entry manually established new connection):
-
- sctp 9 CLOSED src=10.141.189.233 [..] [ASSURED]
-
-Just skip timeout update of closed entries, we don't want them to
-stay around forever.
-
-Reported-and-tested-by: Vivek Thrivikraman <vivek.thrivikraman@est.tech>
-Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1579
-Signed-off-by: Florian Westphal <fw@strlen.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/netfilter/nf_conntrack_proto_sctp.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
-index 2394238d01c91..5a936334b517a 100644
---- a/net/netfilter/nf_conntrack_proto_sctp.c
-+++ b/net/netfilter/nf_conntrack_proto_sctp.c
-@@ -489,6 +489,15 @@ int nf_conntrack_sctp_packet(struct nf_conn *ct,
- pr_debug("Setting vtag %x for dir %d\n",
- ih->init_tag, !dir);
- ct->proto.sctp.vtag[!dir] = ih->init_tag;
-+
-+ /* don't renew timeout on init retransmit so
-+ * port reuse by client or NAT middlebox cannot
-+ * keep entry alive indefinitely (incl. nat info).
-+ */
-+ if (new_state == SCTP_CONNTRACK_CLOSED &&
-+ old_state == SCTP_CONNTRACK_CLOSED &&
-+ nf_ct_is_confirmed(ct))
-+ ignore = true;
- }
-
- ct->proto.sctp.state = new_state;
---
-2.34.1
-
-From bf8880b3bcfe1c728b4c51e33c6d966f0727f40e Mon Sep 17 00:00:00 2001
+From 6814d333f4ae654b7fb98e8917e54acb32b59eaf Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 7 Jan 2022 10:50:50 +0800
Subject: phy: phy-mtk-tphy: Fix duplicated argument in phy-mtk-tphy
+++ /dev/null
-From bf8880b3bcfe1c728b4c51e33c6d966f0727f40e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 7 Jan 2022 10:50:50 +0800
-Subject: phy: phy-mtk-tphy: Fix duplicated argument in phy-mtk-tphy
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 46e994717807f4b935c44d81dde9dd8bcd9a4f5d ]
-
-Fix following coccicheck warning:
-./drivers/phy/mediatek/phy-mtk-tphy.c:994:6-29: duplicated argument
-to && or ||
-
-The efuse_rx_imp is duplicate. Here should be efuse_tx_imp.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Acked-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
-Link: https://lore.kernel.org/r/20220107025050.787720-1-wanjiabing@vivo.com
-Signed-off-by: Vinod Koul <vkoul@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/phy/mediatek/phy-mtk-tphy.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
-index 98a942c607a67..db39b0c4649a2 100644
---- a/drivers/phy/mediatek/phy-mtk-tphy.c
-+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
-@@ -1125,7 +1125,7 @@ static int phy_efuse_get(struct mtk_tphy *tphy, struct mtk_phy_instance *instanc
- /* no efuse, ignore it */
- if (!instance->efuse_intr &&
- !instance->efuse_rx_imp &&
-- !instance->efuse_rx_imp) {
-+ !instance->efuse_tx_imp) {
- dev_warn(dev, "no u3 intr efuse, but dts enable it\n");
- instance->efuse_sw_en = 0;
- break;
---
-2.34.1
-
-From 82b2900ec8996cd651f5b444423eb218a53fc186 Mon Sep 17 00:00:00 2001
+From 1b54f73fd45a0f8db959c582c1309eebf8117ca5 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 1 Dec 2021 13:06:51 -0500
Subject: phy: usb: Leave some clocks running during suspend
+++ /dev/null
-From 82b2900ec8996cd651f5b444423eb218a53fc186 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 1 Dec 2021 13:06:51 -0500
-Subject: phy: usb: Leave some clocks running during suspend
-
-From: Al Cooper <alcooperx@gmail.com>
-
-[ Upstream commit 42fed57046fc74586d7058bd51a1c10ac9c690cb ]
-
-The PHY client driver does a phy_exit() call on suspend or rmmod and
-the PHY driver needs to know the difference because some clocks need
-to be kept running for suspend but can be shutdown on unbind/rmmod
-(or if there are no PHY clients at all).
-
-The fix is to use a PM notifier so the driver can tell if a PHY
-client is calling exit() because of a system suspend or a driver
-unbind/rmmod.
-
-Signed-off-by: Al Cooper <alcooperx@gmail.com>
-Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-Link: https://lore.kernel.org/r/20211201180653.35097-2-alcooperx@gmail.com
-Signed-off-by: Vinod Koul <vkoul@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/phy/broadcom/phy-brcm-usb.c | 38 +++++++++++++++++++++++++++++
- 1 file changed, 38 insertions(+)
-
-diff --git a/drivers/phy/broadcom/phy-brcm-usb.c b/drivers/phy/broadcom/phy-brcm-usb.c
-index 116fb23aebd99..0f1deb6e0eabf 100644
---- a/drivers/phy/broadcom/phy-brcm-usb.c
-+++ b/drivers/phy/broadcom/phy-brcm-usb.c
-@@ -18,6 +18,7 @@
- #include <linux/soc/brcmstb/brcmstb.h>
- #include <dt-bindings/phy/phy.h>
- #include <linux/mfd/syscon.h>
-+#include <linux/suspend.h>
-
- #include "phy-brcm-usb-init.h"
-
-@@ -70,12 +71,35 @@ struct brcm_usb_phy_data {
- int init_count;
- int wake_irq;
- struct brcm_usb_phy phys[BRCM_USB_PHY_ID_MAX];
-+ struct notifier_block pm_notifier;
-+ bool pm_active;
- };
-
- static s8 *node_reg_names[BRCM_REGS_MAX] = {
- "crtl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio", "bdc_ec"
- };
-
-+static int brcm_pm_notifier(struct notifier_block *notifier,
-+ unsigned long pm_event,
-+ void *unused)
-+{
-+ struct brcm_usb_phy_data *priv =
-+ container_of(notifier, struct brcm_usb_phy_data, pm_notifier);
-+
-+ switch (pm_event) {
-+ case PM_HIBERNATION_PREPARE:
-+ case PM_SUSPEND_PREPARE:
-+ priv->pm_active = true;
-+ break;
-+ case PM_POST_RESTORE:
-+ case PM_POST_HIBERNATION:
-+ case PM_POST_SUSPEND:
-+ priv->pm_active = false;
-+ break;
-+ }
-+ return NOTIFY_DONE;
-+}
-+
- static irqreturn_t brcm_usb_phy_wake_isr(int irq, void *dev_id)
- {
- struct phy *gphy = dev_id;
-@@ -91,6 +115,9 @@ static int brcm_usb_phy_init(struct phy *gphy)
- struct brcm_usb_phy_data *priv =
- container_of(phy, struct brcm_usb_phy_data, phys[phy->id]);
-
-+ if (priv->pm_active)
-+ return 0;
-+
- /*
- * Use a lock to make sure a second caller waits until
- * the base phy is inited before using it.
-@@ -120,6 +147,9 @@ static int brcm_usb_phy_exit(struct phy *gphy)
- struct brcm_usb_phy_data *priv =
- container_of(phy, struct brcm_usb_phy_data, phys[phy->id]);
-
-+ if (priv->pm_active)
-+ return 0;
-+
- dev_dbg(&gphy->dev, "EXIT\n");
- if (phy->id == BRCM_USB_PHY_2_0)
- brcm_usb_uninit_eohci(&priv->ini);
-@@ -488,6 +518,9 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
- if (err)
- return err;
-
-+ priv->pm_notifier.notifier_call = brcm_pm_notifier;
-+ register_pm_notifier(&priv->pm_notifier);
-+
- mutex_init(&priv->mutex);
-
- /* make sure invert settings are correct */
-@@ -528,7 +561,10 @@ static int brcm_usb_phy_probe(struct platform_device *pdev)
-
- static int brcm_usb_phy_remove(struct platform_device *pdev)
- {
-+ struct brcm_usb_phy_data *priv = dev_get_drvdata(&pdev->dev);
-+
- sysfs_remove_group(&pdev->dev.kobj, &brcm_usb_phy_group);
-+ unregister_pm_notifier(&priv->pm_notifier);
-
- return 0;
- }
-@@ -539,6 +575,7 @@ static int brcm_usb_phy_suspend(struct device *dev)
- struct brcm_usb_phy_data *priv = dev_get_drvdata(dev);
-
- if (priv->init_count) {
-+ dev_dbg(dev, "SUSPEND\n");
- priv->ini.wake_enabled = device_may_wakeup(dev);
- if (priv->phys[BRCM_USB_PHY_3_0].inited)
- brcm_usb_uninit_xhci(&priv->ini);
-@@ -578,6 +615,7 @@ static int brcm_usb_phy_resume(struct device *dev)
- * Uninitialize anything that wasn't previously initialized.
- */
- if (priv->init_count) {
-+ dev_dbg(dev, "RESUME\n");
- if (priv->wake_irq >= 0)
- disable_irq_wake(priv->wake_irq);
- brcm_usb_init_common(&priv->ini);
---
-2.34.1
-
-From ed7009f08f9612ed8a2522ac9c7f8e1080cd5644 Mon Sep 17 00:00:00 2001
+From 0e9b6e4366350751a53249fa913c8b69957afc42 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 13:29:51 -0800
Subject: pidfd: fix test failure due to stack overflow on some arches
+++ /dev/null
-From ed7009f08f9612ed8a2522ac9c7f8e1080cd5644 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 13:29:51 -0800
-Subject: pidfd: fix test failure due to stack overflow on some arches
-
-From: Axel Rasmussen <axelrasmussen@google.com>
-
-[ Upstream commit 4cbd93c3c110447adc66cb67c08af21f939ae2d7 ]
-
-When running the pidfd_fdinfo_test on arm64, it fails for me. After some
-digging, the reason is that the child exits due to SIGBUS, because it
-overflows the 1024 byte stack we've reserved for it.
-
-To fix the issue, increase the stack size to 8192 bytes (this number is
-somewhat arbitrary, and was arrived at through experimentation -- I kept
-doubling until the failure no longer occurred).
-
-Also, let's make the issue easier to debug. wait_for_pid() returns an
-ambiguous value: it may return -1 in all of these cases:
-
-1. waitpid() itself returned -1
-2. waitpid() returned success, but we found !WIFEXITED(status).
-3. The child process exited, but it did so with a -1 exit code.
-
-There's no way for the caller to tell the difference. So, at least log
-which occurred, so the test runner can debug things.
-
-While debugging this, I found that we had !WIFEXITED(), because the
-child exited due to a signal. This seems like a reasonably common case,
-so also print out whether or not we have WIFSIGNALED(), and the
-associated WTERMSIG() (if any). This lets us see the SIGBUS I'm fixing
-clearly when it occurs.
-
-Finally, I'm suspicious of allocating the child's stack on our stack.
-man clone(2) suggests that the correct way to do this is with mmap(),
-and in particular by setting MAP_STACK. So, switch to doing it that way
-instead.
-
-Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
-Acked-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/testing/selftests/pidfd/pidfd.h | 13 ++++++++---
- .../selftests/pidfd/pidfd_fdinfo_test.c | 22 +++++++++++++++----
- 2 files changed, 28 insertions(+), 7 deletions(-)
-
-diff --git a/tools/testing/selftests/pidfd/pidfd.h b/tools/testing/selftests/pidfd/pidfd.h
-index 01f8d3c0cf2cb..6922d6417e1cf 100644
---- a/tools/testing/selftests/pidfd/pidfd.h
-+++ b/tools/testing/selftests/pidfd/pidfd.h
-@@ -68,7 +68,7 @@
- #define PIDFD_SKIP 3
- #define PIDFD_XFAIL 4
-
--int wait_for_pid(pid_t pid)
-+static inline int wait_for_pid(pid_t pid)
- {
- int status, ret;
-
-@@ -78,13 +78,20 @@ int wait_for_pid(pid_t pid)
- if (errno == EINTR)
- goto again;
-
-+ ksft_print_msg("waitpid returned -1, errno=%d\n", errno);
- return -1;
- }
-
-- if (!WIFEXITED(status))
-+ if (!WIFEXITED(status)) {
-+ ksft_print_msg(
-+ "waitpid !WIFEXITED, WIFSIGNALED=%d, WTERMSIG=%d\n",
-+ WIFSIGNALED(status), WTERMSIG(status));
- return -1;
-+ }
-
-- return WEXITSTATUS(status);
-+ ret = WEXITSTATUS(status);
-+ ksft_print_msg("waitpid WEXITSTATUS=%d\n", ret);
-+ return ret;
- }
-
- static inline int sys_pidfd_open(pid_t pid, unsigned int flags)
-diff --git a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-index 22558524f71c3..3fd8e903118f5 100644
---- a/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-+++ b/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c
-@@ -12,6 +12,7 @@
- #include <string.h>
- #include <syscall.h>
- #include <sys/wait.h>
-+#include <sys/mman.h>
-
- #include "pidfd.h"
- #include "../kselftest.h"
-@@ -80,7 +81,10 @@ static inline int error_check(struct error *err, const char *test_name)
- return err->code;
- }
-
-+#define CHILD_STACK_SIZE 8192
-+
- struct child {
-+ char *stack;
- pid_t pid;
- int fd;
- };
-@@ -89,17 +93,22 @@ static struct child clone_newns(int (*fn)(void *), void *args,
- struct error *err)
- {
- static int flags = CLONE_PIDFD | CLONE_NEWPID | CLONE_NEWNS | SIGCHLD;
-- size_t stack_size = 1024;
-- char *stack[1024] = { 0 };
- struct child ret;
-
- if (!(flags & CLONE_NEWUSER) && geteuid() != 0)
- flags |= CLONE_NEWUSER;
-
-+ ret.stack = mmap(NULL, CHILD_STACK_SIZE, PROT_READ | PROT_WRITE,
-+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
-+ if (ret.stack == MAP_FAILED) {
-+ error_set(err, -1, "mmap of stack failed (errno %d)", errno);
-+ return ret;
-+ }
-+
- #ifdef __ia64__
-- ret.pid = __clone2(fn, stack, stack_size, flags, args, &ret.fd);
-+ ret.pid = __clone2(fn, ret.stack, CHILD_STACK_SIZE, flags, args, &ret.fd);
- #else
-- ret.pid = clone(fn, stack + stack_size, flags, args, &ret.fd);
-+ ret.pid = clone(fn, ret.stack + CHILD_STACK_SIZE, flags, args, &ret.fd);
- #endif
-
- if (ret.pid < 0) {
-@@ -129,6 +138,11 @@ static inline int child_join(struct child *child, struct error *err)
- else if (r > 0)
- error_set(err, r, "child %d reported: %d", child->pid, r);
-
-+ if (munmap(child->stack, CHILD_STACK_SIZE)) {
-+ error_set(err, -1, "munmap of child stack failed (errno %d)", errno);
-+ r = -1;
-+ }
-+
- return r;
- }
-
---
-2.34.1
-
-From e24b19429a02047169cb6e117fddf28d6648fb69 Mon Sep 17 00:00:00 2001
+From 9523942c0ebd9259b9537f069065231bc4aceec5 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 27 Jan 2022 14:11:15 -0800
Subject: selftests: fixup build warnings in pidfd / clone3 tests
+++ /dev/null
-From e24b19429a02047169cb6e117fddf28d6648fb69 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 27 Jan 2022 14:11:15 -0800
-Subject: selftests: fixup build warnings in pidfd / clone3 tests
-
-From: Axel Rasmussen <axelrasmussen@google.com>
-
-[ Upstream commit e2aa5e650b07693477dff554053605976789fd68 ]
-
-These are some trivial fixups, which were needed to build the tests with
-clang and -Werror. The following issues are fixed:
-
-- Remove various unused variables.
-- In child_poll_leader_exit_test, clang isn't smart enough to realize
- syscall(SYS_exit, 0) won't return, so it complains we never return
- from a non-void function. Add an extra exit(0) to appease it.
-- In test_pidfd_poll_leader_exit, ret may be branched on despite being
- uninitialized, if we have !use_waitpid. Initialize it to zero to get
- the right behavior in that case.
-
-Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
-Acked-by: Christian Brauner <brauner@kernel.org>
-Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/testing/selftests/clone3/clone3.c | 2 --
- tools/testing/selftests/pidfd/pidfd_test.c | 6 +++---
- tools/testing/selftests/pidfd/pidfd_wait.c | 5 ++---
- 3 files changed, 5 insertions(+), 8 deletions(-)
-
-diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c
-index 076cf4325f783..cd4582129c7d6 100644
---- a/tools/testing/selftests/clone3/clone3.c
-+++ b/tools/testing/selftests/clone3/clone3.c
-@@ -126,8 +126,6 @@ static void test_clone3(uint64_t flags, size_t size, int expected,
-
- int main(int argc, char *argv[])
- {
-- pid_t pid;
--
- uid_t uid = getuid();
-
- ksft_print_header();
-diff --git a/tools/testing/selftests/pidfd/pidfd_test.c b/tools/testing/selftests/pidfd/pidfd_test.c
-index 529eb700ac26a..9a2d64901d591 100644
---- a/tools/testing/selftests/pidfd/pidfd_test.c
-+++ b/tools/testing/selftests/pidfd/pidfd_test.c
-@@ -441,7 +441,6 @@ static void test_pidfd_poll_exec(int use_waitpid)
- {
- int pid, pidfd = 0;
- int status, ret;
-- pthread_t t1;
- time_t prog_start = time(NULL);
- const char *test_name = "pidfd_poll check for premature notification on child thread exec";
-
-@@ -500,13 +499,14 @@ static int child_poll_leader_exit_test(void *args)
- */
- *child_exit_secs = time(NULL);
- syscall(SYS_exit, 0);
-+ /* Never reached, but appeases compiler thinking we should return. */
-+ exit(0);
- }
-
- static void test_pidfd_poll_leader_exit(int use_waitpid)
- {
- int pid, pidfd = 0;
-- int status, ret;
-- time_t prog_start = time(NULL);
-+ int status, ret = 0;
- const char *test_name = "pidfd_poll check for premature notification on non-empty"
- "group leader exit";
-
-diff --git a/tools/testing/selftests/pidfd/pidfd_wait.c b/tools/testing/selftests/pidfd/pidfd_wait.c
-index be2943f072f60..17999e082aa71 100644
---- a/tools/testing/selftests/pidfd/pidfd_wait.c
-+++ b/tools/testing/selftests/pidfd/pidfd_wait.c
-@@ -39,7 +39,7 @@ static int sys_waitid(int which, pid_t pid, siginfo_t *info, int options,
-
- TEST(wait_simple)
- {
-- int pidfd = -1, status = 0;
-+ int pidfd = -1;
- pid_t parent_tid = -1;
- struct clone_args args = {
- .parent_tid = ptr_to_u64(&parent_tid),
-@@ -47,7 +47,6 @@ TEST(wait_simple)
- .flags = CLONE_PIDFD | CLONE_PARENT_SETTID,
- .exit_signal = SIGCHLD,
- };
-- int ret;
- pid_t pid;
- siginfo_t info = {
- .si_signo = 0,
-@@ -88,7 +87,7 @@ TEST(wait_simple)
-
- TEST(wait_states)
- {
-- int pidfd = -1, status = 0;
-+ int pidfd = -1;
- pid_t parent_tid = -1;
- struct clone_args args = {
- .parent_tid = ptr_to_u64(&parent_tid),
---
-2.34.1
-
net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch
net-macb-align-the-dma-and-coherent-dma-masks.patch
kconfig-fix-failing-to-generate-auto.conf.patch
-arm-omap2-hwmod-add-of_node_put-before-break.patch-3525
-arm-omap2-adjust-the-location-of-put_device-call-in-.patch-19990
-phy-usb-leave-some-clocks-running-during-suspend.patch-21382
-staging-vc04_services-fix-rcu-dereference-check.patch-11599
-phy-phy-mtk-tphy-fix-duplicated-argument-in-phy-mtk-.patch-25558
-irqchip-sifive-plic-add-missing-thead-c900-plic-matc.patch-13627
-x86-bug-merge-annotate_reachable-into-_bug_flags-asm.patch-9101
-netfilter-conntrack-don-t-refresh-sctp-entries-in-cl.patch-18476
-ksmbd-fix-same-uniqueid-for-dot-and-dotdot-entries.patch-21194
-ksmbd-don-t-align-last-entry-offset-in-smb2-query-di.patch-29174
-arm64-dts-meson-gx-add-atf-bl32-reserved-memory-regi.patch-77
-arm64-dts-meson-g12-add-atf-bl32-reserved-memory-reg.patch-17942
-arm64-dts-meson-g12-drop-bl32-region-from-sei510-sei.patch-23288
-pidfd-fix-test-failure-due-to-stack-overflow-on-some.patch-3045
-selftests-fixup-build-warnings-in-pidfd-clone3-tests.patch-2103
-mm-io_uring-allow-oom-killer-from-io_uring_setup.patch-11403
-acpi-pm-revert-only-mark-ec-gpe-for-wakeup-on-intel-.patch-12858
-kconfig-let-shell-return-enough-output-for-deep-path.patch-18292
-ata-libata-core-disable-trim-on-m88v29.patch-950
-soc-aspeed-lpc-ctrl-block-error-printing-on-probe-de.patch-13796
-xprtrdma-fix-pointer-derefs-in-error-cases-of-rpcrdm.patch-22828
-drm-rockchip-dw_hdmi-do-not-leave-clock-enabled-in-e.patch-5904
-tracing-fix-tp_printk-option-related-with-tp_printk_.patch-20573
-display-amd-decrease-message-verbosity-about-waterma.patch-30627
-drm-amdgpu-add-utcl2_harvest-to-gc-10.3.1.patch-26710
-drm-amd-display-cap-pflip-irqs-per-max-otg-number.patch-15402
-drm-amd-display-fix-yellow-carp-wm-clamping.patch-13188
-net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch-32663
-net-macb-align-the-dma-and-coherent-dma-masks.patch-4703
-kconfig-fix-failing-to-generate-auto.conf.patch-1326
-From 09f21e72eb674c77f1e8b94596e03141a83b0277 Mon Sep 17 00:00:00 2001
+From f16b6bcb1e93fda30cbe24ba364f481fef08cd8e Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 1 Feb 2022 17:31:18 +1030
Subject: soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
+++ /dev/null
-From 09f21e72eb674c77f1e8b94596e03141a83b0277 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 1 Feb 2022 17:31:18 +1030
-Subject: soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
-
-From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-
-[ Upstream commit 301a5d3ad2432d7829f59432ca0a93a6defbb9a1 ]
-
-Add a checking code when it gets -EPROBE_DEFER while getting a clock
-resource. In this case, it doesn't need to print out an error message
-because the probing will be re-visited.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
-Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
-Reviewed-by: Iwona Winiarska <iwona.winiarska@intel.com>
-Link: https://lore.kernel.org/r/20211104173709.222912-1-jae.hyun.yoo@intel.com
-Link: https://lore.kernel.org/r/20220201070118.196372-1-joel@jms.id.au'
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/soc/aspeed/aspeed-lpc-ctrl.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/soc/aspeed/aspeed-lpc-ctrl.c b/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-index 72771e018c42e..258894ed234b3 100644
---- a/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-+++ b/drivers/soc/aspeed/aspeed-lpc-ctrl.c
-@@ -306,10 +306,9 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)
- }
-
- lpc_ctrl->clk = devm_clk_get(dev, NULL);
-- if (IS_ERR(lpc_ctrl->clk)) {
-- dev_err(dev, "couldn't get clock\n");
-- return PTR_ERR(lpc_ctrl->clk);
-- }
-+ if (IS_ERR(lpc_ctrl->clk))
-+ return dev_err_probe(dev, PTR_ERR(lpc_ctrl->clk),
-+ "couldn't get clock\n");
- rc = clk_prepare_enable(lpc_ctrl->clk);
- if (rc) {
- dev_err(dev, "couldn't enable clock\n");
---
-2.34.1
-
-From d574fb45b96d7b1604065444f4b7e2686adf9920 Mon Sep 17 00:00:00 2001
+From 7c76d5fef2e69e66f2416dbc92b0d39b5e499867 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 31 Dec 2021 20:54:03 +0100
Subject: staging: vc04_services: Fix RCU dereference check
+++ /dev/null
-From d574fb45b96d7b1604065444f4b7e2686adf9920 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 31 Dec 2021 20:54:03 +0100
-Subject: staging: vc04_services: Fix RCU dereference check
-
-From: Padmanabha Srinivasaiah <treasure4paddy@gmail.com>
-
-[ Upstream commit 0cea730cac824edf78ffd3302938ed5fe2b9d50d ]
-
-In service_callback path RCU dereferenced pointer struct vchiq_service
-need to be accessed inside rcu read-critical section.
-
-Also userdata/user_service part of vchiq_service is accessed around
-different synchronization mechanism, getting an extra reference to a
-pointer keeps sematics simpler and avoids prolonged graceperiod.
-
-Accessing vchiq_service with rcu_read_[lock/unlock] fixes below issue.
-
-[ 32.201659] =============================
-[ 32.201664] WARNING: suspicious RCU usage
-[ 32.201670] 5.15.11-rt24-v8+ #3 Not tainted
-[ 32.201680] -----------------------------
-[ 32.201685] drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h:529 suspicious rcu_dereference_check() usage!
-[ 32.201695]
-[ 32.201695] other info that might help us debug this:
-[ 32.201695]
-[ 32.201700]
-[ 32.201700] rcu_scheduler_active = 2, debug_locks = 1
-[ 32.201708] no locks held by vchiq-slot/0/98.
-[ 32.201715]
-[ 32.201715] stack backtrace:
-[ 32.201723] CPU: 1 PID: 98 Comm: vchiq-slot/0 Not tainted 5.15.11-rt24-v8+ #3
-[ 32.201733] Hardware name: Raspberry Pi 4 Model B Rev 1.4 (DT)
-[ 32.201739] Call trace:
-[ 32.201742] dump_backtrace+0x0/0x1b8
-[ 32.201772] show_stack+0x20/0x30
-[ 32.201784] dump_stack_lvl+0x8c/0xb8
-[ 32.201799] dump_stack+0x18/0x34
-[ 32.201808] lockdep_rcu_suspicious+0xe4/0xf8
-[ 32.201817] service_callback+0x124/0x400
-[ 32.201830] slot_handler_func+0xf60/0x1e20
-[ 32.201839] kthread+0x19c/0x1a8
-[ 32.201849] ret_from_fork+0x10/0x20
-
-Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
-Signed-off-by: Padmanabha Srinivasaiah <treasure4paddy@gmail.com>
-Link: https://lore.kernel.org/r/20211231195406.5479-1-treasure4paddy@gmail.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- .../interface/vchiq_arm/vchiq_arm.c | 20 +++++++++++++++++--
- 1 file changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-index c650a32bcedff..b9505bb51f45c 100644
---- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
-@@ -1058,15 +1058,27 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
-
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-
-+ rcu_read_lock();
- service = handle_to_service(handle);
-- if (WARN_ON(!service))
-+ if (WARN_ON(!service)) {
-+ rcu_read_unlock();
- return VCHIQ_SUCCESS;
-+ }
-
- user_service = (struct user_service *)service->base.userdata;
- instance = user_service->instance;
-
-- if (!instance || instance->closing)
-+ if (!instance || instance->closing) {
-+ rcu_read_unlock();
- return VCHIQ_SUCCESS;
-+ }
-+
-+ /*
-+ * As hopping around different synchronization mechanism,
-+ * taking an extra reference results in simpler implementation.
-+ */
-+ vchiq_service_get(service);
-+ rcu_read_unlock();
-
- vchiq_log_trace(vchiq_arm_log_level,
- "%s - service %lx(%d,%p), reason %d, header %lx, instance %lx, bulk_userdata %lx",
-@@ -1097,6 +1109,7 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
- bulk_userdata);
- if (status != VCHIQ_SUCCESS) {
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
- return status;
- }
- }
-@@ -1105,10 +1118,12 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
- if (wait_for_completion_interruptible(&user_service->remove_event)) {
- vchiq_log_info(vchiq_arm_log_level, "%s interrupted", __func__);
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
- return VCHIQ_RETRY;
- } else if (instance->closing) {
- vchiq_log_info(vchiq_arm_log_level, "%s closing", __func__);
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
- return VCHIQ_ERROR;
- }
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-@@ -1137,6 +1152,7 @@ service_callback(enum vchiq_reason reason, struct vchiq_header *header,
- header = NULL;
- }
- DEBUG_TRACE(SERVICE_CALLBACK_LINE);
-+ vchiq_service_put(service);
-
- if (skip_completion)
- return VCHIQ_SUCCESS;
---
-2.34.1
-
-From 6f21d692d2e7a80810b2c6e40a97bb8284b1df76 Mon Sep 17 00:00:00 2001
+From c229a83b8aaaf36177ee011b4d47407465389409 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 04:54:22 +0900
Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+++ /dev/null
-From 6f21d692d2e7a80810b2c6e40a97bb8284b1df76 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 04:54:22 +0900
-Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
-
-From: JaeSang Yoo <js.yoo.5b@gmail.com>
-
-[ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ]
-
-The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is
-the same as another kernel parameter "tp_printk". If "tp_printk" setup is
-called before the "tp_printk_stop_on_boot", it will override the latter
-and keep it from being set.
-
-This is similar to other kernel parameter issues, such as:
- Commit 745a600cf1a6 ("um: console: Ignore console= option")
-or init/do_mounts.c:45 (setup function of "ro" kernel param)
-
-Fix it by checking for a "_" right after the "tp_printk" and if that
-exists do not process the parameter.
-
-Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com
-
-Signed-off-by: JaeSang Yoo <jsyoo5b@gmail.com>
-[ Fixed up change log and added space after if condition ]
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/trace/trace.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index ae9f9e4af9314..bb15059020445 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -252,6 +252,10 @@ __setup("trace_clock=", set_trace_boot_clock);
-
- static int __init set_tracepoint_printk(char *str)
- {
-+ /* Ignore the "tp_printk_stop_on_boot" param */
-+ if (*str == '_')
-+ return 0;
-+
- if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
- tracepoint_printk = 1;
- return 1;
---
-2.34.1
-
-From fb039a2e262006f33a23083afc2e2547dcf6c4e2 Mon Sep 17 00:00:00 2001
+From 9252080708ce42d9276b4a3975a6dae56d9c8082 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 2 Feb 2022 12:55:53 -0800
Subject: x86/bug: Merge annotate_reachable() into _BUG_FLAGS() asm
+++ /dev/null
-From fb039a2e262006f33a23083afc2e2547dcf6c4e2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 2 Feb 2022 12:55:53 -0800
-Subject: x86/bug: Merge annotate_reachable() into _BUG_FLAGS() asm
-
-From: Nick Desaulniers <ndesaulniers@google.com>
-
-[ Upstream commit bfb1a7c91fb7758273b4a8d735313d9cc388b502 ]
-
-In __WARN_FLAGS(), we had two asm statements (abbreviated):
-
- asm volatile("ud2");
- asm volatile(".pushsection .discard.reachable");
-
-These pair of statements are used to trigger an exception, but then help
-objtool understand that for warnings, control flow will be restored
-immediately afterwards.
-
-The problem is that volatile is not a compiler barrier. GCC explicitly
-documents this:
-
-> Note that the compiler can move even volatile asm instructions
-> relative to other code, including across jump instructions.
-
-Also, no clobbers are specified to prevent instructions from subsequent
-statements from being scheduled by compiler before the second asm
-statement. This can lead to instructions from subsequent statements
-being emitted by the compiler before the second asm statement.
-
-Providing a scheduling model such as via -march= options enables the
-compiler to better schedule instructions with known latencies to hide
-latencies from data hazards compared to inline asm statements in which
-latencies are not estimated.
-
-If an instruction gets scheduled by the compiler between the two asm
-statements, then objtool will think that it is not reachable, producing
-a warning.
-
-To prevent instructions from being scheduled in between the two asm
-statements, merge them.
-
-Also remove an unnecessary unreachable() asm annotation from BUG() in
-favor of __builtin_unreachable(). objtool is able to track that the ud2
-from BUG() terminates control flow within the function.
-
-Link: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Volatile
-Link: https://github.com/ClangBuiltLinux/linux/issues/1483
-Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
-Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
-Link: https://lore.kernel.org/r/20220202205557.2260694-1-ndesaulniers@google.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/include/asm/bug.h | 20 +++++++++++---------
- include/linux/compiler.h | 21 +++++----------------
- 2 files changed, 16 insertions(+), 25 deletions(-)
-
-diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h
-index 84b87538a15de..bab883c0b6fee 100644
---- a/arch/x86/include/asm/bug.h
-+++ b/arch/x86/include/asm/bug.h
-@@ -22,7 +22,7 @@
-
- #ifdef CONFIG_DEBUG_BUGVERBOSE
-
--#define _BUG_FLAGS(ins, flags) \
-+#define _BUG_FLAGS(ins, flags, extra) \
- do { \
- asm_inline volatile("1:\t" ins "\n" \
- ".pushsection __bug_table,\"aw\"\n" \
-@@ -31,7 +31,8 @@ do { \
- "\t.word %c1" "\t# bug_entry::line\n" \
- "\t.word %c2" "\t# bug_entry::flags\n" \
- "\t.org 2b+%c3\n" \
-- ".popsection" \
-+ ".popsection\n" \
-+ extra \
- : : "i" (__FILE__), "i" (__LINE__), \
- "i" (flags), \
- "i" (sizeof(struct bug_entry))); \
-@@ -39,14 +40,15 @@ do { \
-
- #else /* !CONFIG_DEBUG_BUGVERBOSE */
-
--#define _BUG_FLAGS(ins, flags) \
-+#define _BUG_FLAGS(ins, flags, extra) \
- do { \
- asm_inline volatile("1:\t" ins "\n" \
- ".pushsection __bug_table,\"aw\"\n" \
- "2:\t" __BUG_REL(1b) "\t# bug_entry::bug_addr\n" \
- "\t.word %c0" "\t# bug_entry::flags\n" \
- "\t.org 2b+%c1\n" \
-- ".popsection" \
-+ ".popsection\n" \
-+ extra \
- : : "i" (flags), \
- "i" (sizeof(struct bug_entry))); \
- } while (0)
-@@ -55,7 +57,7 @@ do { \
-
- #else
-
--#define _BUG_FLAGS(ins, flags) asm volatile(ins)
-+#define _BUG_FLAGS(ins, flags, extra) asm volatile(ins)
-
- #endif /* CONFIG_GENERIC_BUG */
-
-@@ -63,8 +65,8 @@ do { \
- #define BUG() \
- do { \
- instrumentation_begin(); \
-- _BUG_FLAGS(ASM_UD2, 0); \
-- unreachable(); \
-+ _BUG_FLAGS(ASM_UD2, 0, ""); \
-+ __builtin_unreachable(); \
- } while (0)
-
- /*
-@@ -75,9 +77,9 @@ do { \
- */
- #define __WARN_FLAGS(flags) \
- do { \
-+ __auto_type f = BUGFLAG_WARNING|(flags); \
- instrumentation_begin(); \
-- _BUG_FLAGS(ASM_UD2, BUGFLAG_WARNING|(flags)); \
-- annotate_reachable(); \
-+ _BUG_FLAGS(ASM_UD2, f, ASM_REACHABLE); \
- instrumentation_end(); \
- } while (0)
-
-diff --git a/include/linux/compiler.h b/include/linux/compiler.h
-index 429dcebe2b992..0f7fd205ab7ea 100644
---- a/include/linux/compiler.h
-+++ b/include/linux/compiler.h
-@@ -117,14 +117,6 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
- */
- #define __stringify_label(n) #n
-
--#define __annotate_reachable(c) ({ \
-- asm volatile(__stringify_label(c) ":\n\t" \
-- ".pushsection .discard.reachable\n\t" \
-- ".long " __stringify_label(c) "b - .\n\t" \
-- ".popsection\n\t" : : "i" (c)); \
--})
--#define annotate_reachable() __annotate_reachable(__COUNTER__)
--
- #define __annotate_unreachable(c) ({ \
- asm volatile(__stringify_label(c) ":\n\t" \
- ".pushsection .discard.unreachable\n\t" \
-@@ -133,24 +125,21 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
- })
- #define annotate_unreachable() __annotate_unreachable(__COUNTER__)
-
--#define ASM_UNREACHABLE \
-- "999:\n\t" \
-- ".pushsection .discard.unreachable\n\t" \
-- ".long 999b - .\n\t" \
-+#define ASM_REACHABLE \
-+ "998:\n\t" \
-+ ".pushsection .discard.reachable\n\t" \
-+ ".long 998b - .\n\t" \
- ".popsection\n\t"
-
- /* Annotate a C jump table to allow objtool to follow the code flow */
- #define __annotate_jump_table __section(".rodata..c_jump_table")
-
- #else
--#define annotate_reachable()
- #define annotate_unreachable()
-+# define ASM_REACHABLE
- #define __annotate_jump_table
- #endif
-
--#ifndef ASM_UNREACHABLE
--# define ASM_UNREACHABLE
--#endif
- #ifndef unreachable
- # define unreachable() do { \
- annotate_unreachable(); \
---
-2.34.1
-
-From 8186536fe7a11a692631416d0bbfff206ec38900 Mon Sep 17 00:00:00 2001
+From 28ee59c07a0079362d4b59779db4e10bb02a8db2 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 25 Jan 2022 22:06:46 +0200
Subject: xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
+++ /dev/null
-From 8186536fe7a11a692631416d0bbfff206ec38900 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 25 Jan 2022 22:06:46 +0200
-Subject: xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
-
-From: Dan Aloni <dan.aloni@vastdata.com>
-
-[ Upstream commit a9c10b5b3b67b3750a10c8b089b2e05f5e176e33 ]
-
-If there are failures then we must not leave the non-NULL pointers with
-the error value, otherwise `rpcrdma_ep_destroy` gets confused and tries
-free them, resulting in an Oops.
-
-Signed-off-by: Dan Aloni <dan.aloni@vastdata.com>
-Acked-by: Chuck Lever <chuck.lever@oracle.com>
-Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/sunrpc/xprtrdma/verbs.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
-index 3d3673ba9e1e5..2a2e1514ac79a 100644
---- a/net/sunrpc/xprtrdma/verbs.c
-+++ b/net/sunrpc/xprtrdma/verbs.c
-@@ -436,6 +436,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- IB_POLL_WORKQUEUE);
- if (IS_ERR(ep->re_attr.send_cq)) {
- rc = PTR_ERR(ep->re_attr.send_cq);
-+ ep->re_attr.send_cq = NULL;
- goto out_destroy;
- }
-
-@@ -444,6 +445,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- IB_POLL_WORKQUEUE);
- if (IS_ERR(ep->re_attr.recv_cq)) {
- rc = PTR_ERR(ep->re_attr.recv_cq);
-+ ep->re_attr.recv_cq = NULL;
- goto out_destroy;
- }
- ep->re_receive_count = 0;
-@@ -482,6 +484,7 @@ static int rpcrdma_ep_create(struct rpcrdma_xprt *r_xprt)
- ep->re_pd = ib_alloc_pd(device, 0);
- if (IS_ERR(ep->re_pd)) {
- rc = PTR_ERR(ep->re_pd);
-+ ep->re_pd = NULL;
- goto out_destroy;
- }
-
---
-2.34.1
-
-From 8973e72315f1e36a14ba8e9e3cd37b4e2699eb88 Mon Sep 17 00:00:00 2001
+From 8b6a97c05998956e04bd3e0b690527ac99e14786 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Tue, 16 Nov 2021 06:27:26 +0000
Subject: ARM: OMAP2+: adjust the location of put_device() call in
+++ /dev/null
-From 8973e72315f1e36a14ba8e9e3cd37b4e2699eb88 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Nov 2021 06:27:26 +0000
-Subject: ARM: OMAP2+: adjust the location of put_device() call in
- omapdss_init_of
-
-From: Ye Guojin <ye.guojin@zte.com.cn>
-
-[ Upstream commit 34596ba380b03d181e24efd50e2f21045bde3696 ]
-
-This was found by coccicheck:
-./arch/arm/mach-omap2/display.c, 272, 1-7, ERROR missing put_device;
-call of_find_device_by_node on line 258, but without a corresponding
-object release within this function.
-
-Move the put_device() call before the if judgment.
-
-Reported-by: Zeal Robot <zealci@zte.com.cn>
-Signed-off-by: Ye Guojin <ye.guojin@zte.com.cn>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/display.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
-index 46012ca812f48..1bd64f6ba8cfe 100644
---- a/arch/arm/mach-omap2/display.c
-+++ b/arch/arm/mach-omap2/display.c
-@@ -263,9 +263,9 @@ static int __init omapdss_init_of(void)
- }
-
- r = of_platform_populate(node, NULL, NULL, &pdev->dev);
-+ put_device(&pdev->dev);
- if (r) {
- pr_err("Unable to populate DSS submodule devices\n");
-- put_device(&pdev->dev);
- return r;
- }
-
---
-2.34.1
-
-From b5c15aeead69fed5cd1c44f219c6290b6695f65b Mon Sep 17 00:00:00 2001
+From 48bf089f3903ca1629b35bcc2496fc4b98757534 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Thu, 14 Oct 2021 04:57:19 -0400
Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
+++ /dev/null
-From b5c15aeead69fed5cd1c44f219c6290b6695f65b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 14 Oct 2021 04:57:19 -0400
-Subject: ARM: OMAP2+: hwmod: Add of_node_put() before break
-
-From: Wan Jiabing <wanjiabing@vivo.com>
-
-[ Upstream commit 80c469a0a03763f814715f3d12b6f3964c7423e8 ]
-
-Fix following coccicheck warning:
-./arch/arm/mach-omap2/omap_hwmod.c:753:1-23: WARNING: Function
-for_each_matching_node should have of_node_put() before break
-
-Early exits from for_each_matching_node should decrement the
-node reference counter.
-
-Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
-Signed-off-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm/mach-omap2/omap_hwmod.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 6289b288d60a6..202b740adee0e 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -782,8 +782,10 @@ static int __init _init_clkctrl_providers(void)
-
- for_each_matching_node(np, ti_clkctrl_match_table) {
- ret = _setup_clkctrl_provider(np);
-- if (ret)
-+ if (ret) {
-+ of_node_put(np);
- break;
-+ }
- }
-
- return ret;
---
-2.34.1
-
-From 02ab419fbbeed211b66258714e2095f6c257fdcf Mon Sep 17 00:00:00 2001
+From 641b0ad946a4cb877b01a2ece73ad57ba1fcd9b3 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:53 +0000
Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
index 9533c85fb0a30..d2d255a988a81 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -76,6 +76,12 @@ secmon_reserved: secmon@5000000 {
+@@ -76,6 +76,12 @@
no-map;
};
+++ /dev/null
-From 02ab419fbbeed211b66258714e2095f6c257fdcf Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:53 +0000
-Subject: arm64: dts: meson-g12: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 08982a1b3aa2611c9c711d24825c9002d28536f4 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-3-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-index 9533c85fb0a30..d2d255a988a81 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
-@@ -76,6 +76,12 @@ secmon_reserved: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From e3db9ac1c844370db9dd9c11d0bf5b9f2084cfba Mon Sep 17 00:00:00 2001
+From cac3cb911a0508c55373415365728187cd71243d Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:54 +0000
Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
index b8d9e92197ac8..c76bf498ee388 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -157,14 +157,6 @@
regulator-always-on;
};
index 29ac78ddc057e..85fb59060cdff 100644
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -164,14 +164,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
+@@ -164,14 +164,6 @@
regulator-always-on;
};
+++ /dev/null
-From e3db9ac1c844370db9dd9c11d0bf5b9f2084cfba Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:54 +0000
-Subject: arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit f26573e2bc9dfd551a0d5c6971f18cc546543312 ]
-
-The BL32/TEE reserved-memory region is now inherited from the common
-family dtsi (meson-g12-common) so we can drop it from board files.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-4-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts | 8 --------
- arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts | 8 --------
- 2 files changed, 16 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-index b8d9e92197ac8..c76bf498ee388 100644
---- a/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-sei510.dts
-@@ -157,14 +157,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-index 29ac78ddc057e..85fb59060cdff 100644
---- a/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts
-@@ -164,14 +164,6 @@ vddio_ao1v8: regulator-vddio_ao1v8 {
- regulator-always-on;
- };
-
-- reserved-memory {
-- /* TEE Reserved Memory */
-- bl32_reserved: bl32@5000000 {
-- reg = <0x0 0x05300000 0x0 0x2000000>;
-- no-map;
-- };
-- };
--
- sdio_pwrseq: sdio-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
---
-2.34.1
-
-From ff257614c88823ce6bb650b518cb58b0fb0922d5 Mon Sep 17 00:00:00 2001
+From fa2dc55d6f68c3421aa8689884c63af84edc896d Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 04:49:52 +0000
Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
index ce230d6ac35cd..ad7bc0eec6682 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -41,6 +41,12 @@ secmon_reserved_alt: secmon@5000000 {
+@@ -41,6 +41,12 @@
no-map;
};
+++ /dev/null
-From ff257614c88823ce6bb650b518cb58b0fb0922d5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 04:49:52 +0000
-Subject: arm64: dts: meson-gx: add ATF BL32 reserved-memory region
-
-From: Christian Hewitt <christianshewitt@gmail.com>
-
-[ Upstream commit 76577c9137456febb05b0e17d244113196a98968 ]
-
-Add an additional reserved memory region for the BL32 trusted firmware
-present in many devices that boot from Amlogic vendor u-boot.
-
-Suggested-by: Mateusz Krzak <kszaquitto@gmail.com>
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
-Reviewed-by: Kevin Hilman <khilman@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Link: https://lore.kernel.org/r/20220126044954.19069-2-christianshewitt@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index ce230d6ac35cd..ad7bc0eec6682 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -41,6 +41,12 @@ secmon_reserved_alt: secmon@5000000 {
- no-map;
- };
-
-+ /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
-+ secmon_reserved_bl32: secmon@5300000 {
-+ reg = <0x0 0x05300000 0x0 0x2000000>;
-+ no-map;
-+ };
-+
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
---
-2.34.1
-
-From f4e2a809c43a285114242d7c4a07188734c4bde9 Mon Sep 17 00:00:00 2001
+From 047d07c56e07f770202b33074698722f565ca3a1 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 4 Feb 2022 13:57:50 +0100
Subject: ata: libata-core: Disable TRIM on M88V29
+++ /dev/null
-From f4e2a809c43a285114242d7c4a07188734c4bde9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 4 Feb 2022 13:57:50 +0100
-Subject: ata: libata-core: Disable TRIM on M88V29
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Zoltán Böszörményi <zboszor@gmail.com>
-
-[ Upstream commit c8ea23d5fa59f28302d4e3370c75d9c308e64410 ]
-
-This device is a CF card, or possibly an SSD in CF form factor.
-It supports NCQ and high speed DMA.
-
-While it also advertises TRIM support, I/O errors are reported
-when the discard mount option fstrim is used. TRIM also fails
-when disabling NCQ and not just as an NCQ command.
-
-TRIM must be disabled for this device.
-
-Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
-Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/ata/libata-core.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index 92fb1f5b240e8..dca1590f295d0 100644
---- a/drivers/ata/libata-core.c
-+++ b/drivers/ata/libata-core.c
-@@ -4595,6 +4595,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
-
- /* devices that don't properly handle TRIM commands */
- { "SuperSSpeed S238*", NULL, ATA_HORKAGE_NOTRIM, },
-+ { "M88V29*", NULL, ATA_HORKAGE_NOTRIM, },
-
- /*
- * As defined, the DRAT (Deterministic Read After Trim) and RZAT
---
-2.34.1
-
-From 0795ace31e1be4754261544f06aeaf95c05c28b9 Mon Sep 17 00:00:00 2001
+From 6fd4e6bb2e9c01b5e86b41b37f8f085197f52303 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 26 Jan 2022 15:55:24 +0100
Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
+++ /dev/null
-From 0795ace31e1be4754261544f06aeaf95c05c28b9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Jan 2022 15:55:24 +0100
-Subject: drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
-
-From: Sascha Hauer <s.hauer@pengutronix.de>
-
-[ Upstream commit c0cfbb122275da1b726481de5a8cffeb24e6322b ]
-
-The driver returns an error when devm_phy_optional_get() fails leaving
-the previously enabled clock turned on. Change order and enable the
-clock only after the phy has been acquired.
-
-Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-Link: https://patchwork.freedesktop.org/patch/msgid/20220126145549.617165-3-s.hauer@pengutronix.de
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-index 906891b03a38d..7805091bac32d 100644
---- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
-@@ -528,13 +528,6 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-- ret = clk_prepare_enable(hdmi->vpll_clk);
-- if (ret) {
-- DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-- ret);
-- return ret;
-- }
--
- hdmi->phy = devm_phy_optional_get(dev, "hdmi");
- if (IS_ERR(hdmi->phy)) {
- ret = PTR_ERR(hdmi->phy);
-@@ -543,6 +536,13 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,
- return ret;
- }
-
-+ ret = clk_prepare_enable(hdmi->vpll_clk);
-+ if (ret) {
-+ DRM_DEV_ERROR(hdmi->dev, "Failed to enable HDMI vpll: %d\n",
-+ ret);
-+ return ret;
-+ }
-+
- drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs);
- drm_encoder_init(drm, encoder, &dw_hdmi_rockchip_encoder_funcs,
- DRM_MODE_ENCODER_TMDS, NULL);
---
-2.34.1
-
-From 92e5eea8ec6990eff9e7dd343109393d7362fed1 Mon Sep 17 00:00:00 2001
+From 2df8d323c3b69dda1e8de832f2007e2e13fe5675 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Sun, 30 Jan 2022 21:56:34 +0800
Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
+++ /dev/null
-From 92e5eea8ec6990eff9e7dd343109393d7362fed1 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 30 Jan 2022 21:56:34 +0800
-Subject: irqchip/sifive-plic: Add missing thead,c900-plic match string
-
-From: Guo Ren <guoren@linux.alibaba.com>
-
-[ Upstream commit 1d4df649cbb4b26d19bea38ecff4b65b10a1bbca ]
-
-The thead,c900-plic has been used in opensbi to distinguish
-PLIC [1]. Although PLICs have the same behaviors in Linux,
-they are different hardware with some custom initializing in
-firmware(opensbi).
-
-Qute opensbi patch commit-msg by Samuel:
-
- The T-HEAD PLIC implementation requires setting a delegation bit
- to allow access from S-mode. Now that the T-HEAD PLIC has its own
- compatible string, set this bit automatically from the PLIC driver,
- instead of reaching into the PLIC's MMIO space from another driver.
-
-[1]: https://github.com/riscv-software-src/opensbi/commit/78c2b19218bd62653b9fb31623a42ced45f38ea6
-
-Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
-Cc: Anup Patel <anup@brainfault.org>
-Cc: Marc Zyngier <maz@kernel.org>
-Cc: Palmer Dabbelt <palmer@dabbelt.com>
-Cc: Samuel Holland <samuel@sholland.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Tested-by: Samuel Holland <samuel@sholland.org>
-Signed-off-by: Marc Zyngier <maz@kernel.org>
-Link: https://lore.kernel.org/r/20220130135634.1213301-3-guoren@kernel.org
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/irqchip/irq-sifive-plic.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
-index 7cd7b140dfe97..9dad45d928bfe 100644
---- a/drivers/irqchip/irq-sifive-plic.c
-+++ b/drivers/irqchip/irq-sifive-plic.c
-@@ -313,3 +313,4 @@ static int __init plic_init(struct device_node *node,
-
- IRQCHIP_DECLARE(sifive_plic, "sifive,plic-1.0.0", plic_init);
- IRQCHIP_DECLARE(riscv_plic0, "riscv,plic0", plic_init); /* for legacy systems */
-+IRQCHIP_DECLARE(thead_c900_plic, "thead,c900-plic", plic_init); /* for firmware driver */
---
-2.34.1
-
-From dcf790bd5ba55e90ae21506f17baf5e1445013ca Mon Sep 17 00:00:00 2001
+From 7e45a8910bf52fb4ef96150b4357038239280ad3 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 11 Feb 2022 17:27:36 +0800
Subject: kconfig: fix failing to generate auto.conf
+++ /dev/null
-From dcf790bd5ba55e90ae21506f17baf5e1445013ca Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 11 Feb 2022 17:27:36 +0800
-Subject: kconfig: fix failing to generate auto.conf
-
-From: Jing Leng <jleng@ambarella.com>
-
-[ Upstream commit 1b9e740a81f91ae338b29ed70455719804957b80 ]
-
-When the KCONFIG_AUTOCONFIG is specified (e.g. export \
-KCONFIG_AUTOCONFIG=output/config/auto.conf), the directory of
-include/config/ will not be created, so kconfig can't create deps
-files in it and auto.conf can't be generated.
-
-Signed-off-by: Jing Leng <jleng@ambarella.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/confdata.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
-index 17298239e3633..5c2493c8e9de8 100644
---- a/scripts/kconfig/confdata.c
-+++ b/scripts/kconfig/confdata.c
-@@ -987,14 +987,19 @@ static int conf_write_dep(const char *name)
-
- static int conf_touch_deps(void)
- {
-- const char *name;
-+ const char *name, *tmp;
- struct symbol *sym;
- int res, i;
-
-- strcpy(depfile_path, "include/config/");
-- depfile_prefix_len = strlen(depfile_path);
--
- name = conf_get_autoconfig_name();
-+ tmp = strrchr(name, '/');
-+ depfile_prefix_len = tmp ? tmp - name + 1 : 0;
-+ if (depfile_prefix_len + 1 > sizeof(depfile_path))
-+ return -1;
-+
-+ strncpy(depfile_path, name, depfile_prefix_len);
-+ depfile_path[depfile_prefix_len] = 0;
-+
- conf_read_simple(name, S_DEF_AUTO);
- sym_calc_value(modules_sym);
-
---
-2.34.1
-
-From fb87457b03b9efe18b05aa0c7c9626bcc5b46a4f Mon Sep 17 00:00:00 2001
+From f14cfaa3e410eeffc93d7083580460f270306850 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 16:01:28 -0600
Subject: kconfig: let 'shell' return enough output for deep path names
+++ /dev/null
-From fb87457b03b9efe18b05aa0c7c9626bcc5b46a4f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 16:01:28 -0600
-Subject: kconfig: let 'shell' return enough output for deep path names
-
-From: Brenda Streiff <brenda.streiff@ni.com>
-
-[ Upstream commit 8a4c5b2a6d8ea079fa36034e8167de87ab6f8880 ]
-
-The 'shell' built-in only returns the first 256 bytes of the command's
-output. In some cases, 'shell' is used to return a path; by bumping up
-the buffer size to 4096 this lets us capture up to PATH_MAX.
-
-The specific case where I ran into this was due to commit 1e860048c53e
-("gcc-plugins: simplify GCC plugin-dev capability test"). After this
-change, we now use `$(shell,$(CC) -print-file-name=plugin)` to return
-a path; if the gcc path is particularly long, then the path ends up
-truncated at the 256 byte mark, which makes the HAVE_GCC_PLUGINS
-depends test always fail.
-
-Signed-off-by: Brenda Streiff <brenda.streiff@ni.com>
-Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- scripts/kconfig/preprocess.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/kconfig/preprocess.c b/scripts/kconfig/preprocess.c
-index 0590f86df6e40..748da578b418c 100644
---- a/scripts/kconfig/preprocess.c
-+++ b/scripts/kconfig/preprocess.c
-@@ -141,7 +141,7 @@ static char *do_lineno(int argc, char *argv[])
- static char *do_shell(int argc, char *argv[])
- {
- FILE *p;
-- char buf[256];
-+ char buf[4096];
- char *cmd;
- size_t nread;
- int i;
---
-2.34.1
-
-From 3f365164fe5da9f17df17693dcb57b0d4bd7c451 Mon Sep 17 00:00:00 2001
+From c61d26e9635606d147893763a8c17823e660b566 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 15:13:25 +0530
Subject: net: macb: Align the dma and coherent dma masks
+++ /dev/null
-From 3f365164fe5da9f17df17693dcb57b0d4bd7c451 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 15:13:25 +0530
-Subject: net: macb: Align the dma and coherent dma masks
-
-From: Marc St-Amand <mstamand@ciena.com>
-
-[ Upstream commit 37f7860602b5b2d99fc7465f6407f403f5941988 ]
-
-Single page and coherent memory blocks can use different DMA masks
-when the macb accesses physical memory directly. The kernel is clever
-enough to allocate pages that fit into the requested address width.
-
-When using the ARM SMMU, the DMA mask must be the same for single
-pages and big coherent memory blocks. Otherwise the translation
-tables turn into one big mess.
-
- [ 74.959909] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 74.959989] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
- [ 75.173939] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
- [ 75.173955] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
-
-Since using the same DMA mask does not hurt direct 1:1 physical
-memory mappings, this commit always aligns DMA and coherent masks.
-
-Signed-off-by: Marc St-Amand <mstamand@ciena.com>
-Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
-Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
-Tested-by: Conor Dooley <conor.dooley@microchip.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/cadence/macb_main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
-index ebd0853a6f313..0dc52cf5367e7 100644
---- a/drivers/net/ethernet/cadence/macb_main.c
-+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4284,7 +4284,7 @@ static int macb_probe(struct platform_device *pdev)
-
- #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
- if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
-- dma_set_mask(&pdev->dev, DMA_BIT_MASK(44));
-+ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
- bp->hw_dma_cap |= HW_DMA_CAP_64B;
- }
- #endif
---
-2.34.1
-
-From 924d63b693a6315b8994cad234e9cd34d32fc295 Mon Sep 17 00:00:00 2001
+From 1e17388295683dff0e22d419097512efa6a12813 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 10:47:17 +0800
Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
+++ /dev/null
-From 924d63b693a6315b8994cad234e9cd34d32fc295 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 10:47:17 +0800
-Subject: net: usb: qmi_wwan: Add support for Dell DW5829e
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Slark Xiao <slark_xiao@163.com>
-
-[ Upstream commit 8ecbb179286cbc91810c16caeb3396e06305cd0c ]
-
-Dell DW5829e same as DW5821e except the CAT level.
-DW5821e supports CAT16 but DW5829e supports CAT9.
-Also, DW5829e includes normal and eSIM type.
-Please see below test evidence:
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 5 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e6 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 7 Spd=5000 MxCh= 0
-D: Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
-P: Vendor=413c ProdID=81e4 Rev=03.18
-S: Manufacturer=Dell Inc.
-S: Product=DW5829e-eSIM Snapdragon X20 LTE
-S: SerialNumber=0123456789ABCDEF
-C: #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
-I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-I: If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
-I: If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
-I: If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-
-Signed-off-by: Slark Xiao <slark_xiao@163.com>
-Acked-by: Bjørn Mork <bjorn@mork.no>
-Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/usb/qmi_wwan.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
-index 6508d70056b3a..566ea48fd6078 100644
---- a/drivers/net/usb/qmi_wwan.c
-+++ b/drivers/net/usb/qmi_wwan.c
-@@ -1355,6 +1355,8 @@ static const struct usb_device_id products[] = {
- {QMI_FIXED_INTF(0x413c, 0x81d7, 0)}, /* Dell Wireless 5821e */
- {QMI_FIXED_INTF(0x413c, 0x81d7, 1)}, /* Dell Wireless 5821e preproduction config */
- {QMI_FIXED_INTF(0x413c, 0x81e0, 0)}, /* Dell Wireless 5821e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e4, 0)}, /* Dell Wireless 5829e with eSIM support*/
-+ {QMI_FIXED_INTF(0x413c, 0x81e6, 0)}, /* Dell Wireless 5829e */
- {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
- {QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
---
-2.34.1
-
-From 22d2568680c0c8aa3602b9bee2e462493f81f152 Mon Sep 17 00:00:00 2001
+From a0a907500277a2de341ed0c939e79ab8a0af7e61 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 28 Jan 2022 13:13:32 +0100
Subject: netfilter: conntrack: don't refresh sctp entries in closed state
+++ /dev/null
-From 22d2568680c0c8aa3602b9bee2e462493f81f152 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 28 Jan 2022 13:13:32 +0100
-Subject: netfilter: conntrack: don't refresh sctp entries in closed state
-
-From: Florian Westphal <fw@strlen.de>
-
-[ Upstream commit 77b337196a9d87f3d6bb9b07c0436ecafbffda1e ]
-
-Vivek Thrivikraman reported:
- An SCTP server application which is accessed continuously by client
- application.
- When the session disconnects the client retries to establish a connection.
- After restart of SCTP server application the session is not established
- because of stale conntrack entry with connection state CLOSED as below.
-
- (removing this entry manually established new connection):
-
- sctp 9 CLOSED src=10.141.189.233 [..] [ASSURED]
-
-Just skip timeout update of closed entries, we don't want them to
-stay around forever.
-
-Reported-and-tested-by: Vivek Thrivikraman <vivek.thrivikraman@est.tech>
-Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1579
-Signed-off-by: Florian Westphal <fw@strlen.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/netfilter/nf_conntrack_proto_sctp.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c
-index 810cca24b3990..7626f3e1c70a7 100644
---- a/net/netfilter/nf_conntrack_proto_sctp.c
-+++ b/net/netfilter/nf_conntrack_proto_sctp.c
-@@ -489,6 +489,15 @@ int nf_conntrack_sctp_packet(struct nf_conn *ct,
- pr_debug("Setting vtag %x for dir %d\n",
- ih->init_tag, !dir);
- ct->proto.sctp.vtag[!dir] = ih->init_tag;
-+
-+ /* don't renew timeout on init retransmit so
-+ * port reuse by client or NAT middlebox cannot
-+ * keep entry alive indefinitely (incl. nat info).
-+ */
-+ if (new_state == SCTP_CONNTRACK_CLOSED &&
-+ old_state == SCTP_CONNTRACK_CLOSED &&
-+ nf_ct_is_confirmed(ct))
-+ ignore = true;
- }
-
- ct->proto.sctp.state = new_state;
---
-2.34.1
-
net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch
net-macb-align-the-dma-and-coherent-dma-masks.patch
kconfig-fix-failing-to-generate-auto.conf.patch
-arm-omap2-hwmod-add-of_node_put-before-break.patch-16842
-arm-omap2-adjust-the-location-of-put_device-call-in-.patch-6515
-irqchip-sifive-plic-add-missing-thead-c900-plic-matc.patch-14951
-netfilter-conntrack-don-t-refresh-sctp-entries-in-cl.patch-11113
-arm64-dts-meson-gx-add-atf-bl32-reserved-memory-regi.patch-1924
-arm64-dts-meson-g12-add-atf-bl32-reserved-memory-reg.patch-20818
-arm64-dts-meson-g12-drop-bl32-region-from-sei510-sei.patch-31989
-kconfig-let-shell-return-enough-output-for-deep-path.patch-17862
-ata-libata-core-disable-trim-on-m88v29.patch-31131
-drm-rockchip-dw_hdmi-do-not-leave-clock-enabled-in-e.patch-11884
-tracing-fix-tp_printk-option-related-with-tp_printk_.patch-23675
-net-usb-qmi_wwan-add-support-for-dell-dw5829e.patch-27463
-net-macb-align-the-dma-and-coherent-dma-masks.patch-11520
-kconfig-fix-failing-to-generate-auto.conf.patch-15744
-From ad5789dc736fbf05dc84ff39fa73fed1feac6ac5 Mon Sep 17 00:00:00 2001
+From 6c1a0d8365149d3dd7b4adf1c23c01407fe1ac97 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Wed, 9 Feb 2022 04:54:22 +0900
Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
+++ /dev/null
-From ad5789dc736fbf05dc84ff39fa73fed1feac6ac5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 9 Feb 2022 04:54:22 +0900
-Subject: tracing: Fix tp_printk option related with tp_printk_stop_on_boot
-
-From: JaeSang Yoo <js.yoo.5b@gmail.com>
-
-[ Upstream commit 3203ce39ac0b2a57a84382ec184c7d4a0bede175 ]
-
-The kernel parameter "tp_printk_stop_on_boot" starts with "tp_printk" which is
-the same as another kernel parameter "tp_printk". If "tp_printk" setup is
-called before the "tp_printk_stop_on_boot", it will override the latter
-and keep it from being set.
-
-This is similar to other kernel parameter issues, such as:
- Commit 745a600cf1a6 ("um: console: Ignore console= option")
-or init/do_mounts.c:45 (setup function of "ro" kernel param)
-
-Fix it by checking for a "_" right after the "tp_printk" and if that
-exists do not process the parameter.
-
-Link: https://lkml.kernel.org/r/20220208195421.969326-1-jsyoo5b@gmail.com
-
-Signed-off-by: JaeSang Yoo <jsyoo5b@gmail.com>
-[ Fixed up change log and added space after if condition ]
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- kernel/trace/trace.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 5a4dfb55ba16b..615259d8fa9ad 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -236,6 +236,10 @@ __setup("trace_clock=", set_trace_boot_clock);
-
- static int __init set_tracepoint_printk(char *str)
- {
-+ /* Ignore the "tp_printk_stop_on_boot" param */
-+ if (*str == '_')
-+ return 0;
-+
- if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
- tracepoint_printk = 1;
- return 1;
---
-2.34.1
-