From: Sasha Levin Date: Wed, 1 Feb 2023 16:41:53 +0000 (-0500) Subject: Fixes for 5.15 X-Git-Tag: v4.14.305~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8e5e67477fc2f7b3ac988114e2d17a98628c58b8;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.15 Signed-off-by: Sasha Levin --- diff --git a/queue-5.15/arm-dts-imx-fix-pca9547-i2c-mux-node-name.patch b/queue-5.15/arm-dts-imx-fix-pca9547-i2c-mux-node-name.patch new file mode 100644 index 00000000000..197c3dfc2f8 --- /dev/null +++ b/queue-5.15/arm-dts-imx-fix-pca9547-i2c-mux-node-name.patch @@ -0,0 +1,43 @@ +From 76468798932e53d5d4103b3bf9820159f8f1fcaf Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 2 Dec 2022 17:49:18 +0100 +Subject: ARM: dts: imx: Fix pca9547 i2c-mux node name + +From: Geert Uytterhoeven + +[ Upstream commit f78985f9f58380eec37f82c8a2c765aa7670fc29 ] + +"make dtbs_check": + + arch/arm/boot/dts/imx53-ppd.dtb: i2c-switch@70: $nodename:0: 'i2c-switch@70' does not match '^(i2c-?)?mux' + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + arch/arm/boot/dts/imx53-ppd.dtb: i2c-switch@70: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@0', 'i2c@1', 'i2c@2', 'i2c@3', 'i2c@4', 'i2c@5', 'i2c@6', 'i2c@7' were unexpected) + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + +Fix this by renaming the PCA9547 node to "i2c-mux", to match the I2C bus +multiplexer/switch DT bindings and the Generic Names Recommendation in +the Devicetree Specification. + +Signed-off-by: Geert Uytterhoeven +Signed-off-by: Shawn Guo +Signed-off-by: Sasha Levin +--- + arch/arm/boot/dts/imx53-ppd.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/imx53-ppd.dts b/arch/arm/boot/dts/imx53-ppd.dts +index 37d0cffea99c..70c4a4852256 100644 +--- a/arch/arm/boot/dts/imx53-ppd.dts ++++ b/arch/arm/boot/dts/imx53-ppd.dts +@@ -488,7 +488,7 @@ &i2c1 { + scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>; + status = "okay"; + +- i2c-switch@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9547"; + #address-cells = <1>; + #size-cells = <0>; +-- +2.39.0 + diff --git a/queue-5.15/arm-dts-vf610-fix-pca9548-i2c-mux-node-names.patch b/queue-5.15/arm-dts-vf610-fix-pca9548-i2c-mux-node-names.patch new file mode 100644 index 00000000000..eebc6684687 --- /dev/null +++ b/queue-5.15/arm-dts-vf610-fix-pca9548-i2c-mux-node-names.patch @@ -0,0 +1,58 @@ +From ff1a4a3a679f73df0de0dbb048616cdc28666598 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 2 Dec 2022 17:49:21 +0100 +Subject: ARM: dts: vf610: Fix pca9548 i2c-mux node names + +From: Geert Uytterhoeven + +[ Upstream commit 42825d1f269355d63554ab3c3762611e4d8053e9 ] + +"make dtbs_check": + + arch/arm/boot/dts/vf610-zii-dev-rev-b.dtb: tca9548@70: $nodename:0: 'tca9548@70' does not match '^(i2c-?)?mux' + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + arch/arm/boot/dts/vf610-zii-dev-rev-b.dtb: tca9548@70: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@0', 'i2c@1', 'i2c@2', 'i2c@3', 'i2c@4' were unexpected) + From schema: /scratch/geert/linux/linux-renesas/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + ... + +Fix this by renaming PCA9548 nodes to "i2c-mux", to match the I2C bus +multiplexer/switch DT bindings and the Generic Names Recommendation in +the Devicetree Specification. + +Signed-off-by: Geert Uytterhoeven +Signed-off-by: Shawn Guo +Signed-off-by: Sasha Levin +--- + arch/arm/boot/dts/vf610-zii-dev-rev-b.dts | 2 +- + arch/arm/boot/dts/vf610-zii-dev-rev-c.dts | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts +index 043ddd70372f..36d5299b2baa 100644 +--- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts ++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts +@@ -343,7 +343,7 @@ gpio6: io-expander@22 { + }; + + &i2c2 { +- tca9548@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9548"; + pinctrl-0 = <&pinctrl_i2c_mux_reset>; + pinctrl-names = "default"; +diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts +index de79dcfd32e6..ba2001f37315 100644 +--- a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts ++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts +@@ -340,7 +340,7 @@ eeprom@50 { + }; + + &i2c2 { +- tca9548@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9548"; + pinctrl-0 = <&pinctrl_i2c_mux_reset>; + pinctrl-names = "default"; +-- +2.39.0 + diff --git a/queue-5.15/arm64-dts-freescale-fix-pca954x-i2c-mux-node-names.patch b/queue-5.15/arm64-dts-freescale-fix-pca954x-i2c-mux-node-names.patch new file mode 100644 index 00000000000..f52e0afea0a --- /dev/null +++ b/queue-5.15/arm64-dts-freescale-fix-pca954x-i2c-mux-node-names.patch @@ -0,0 +1,207 @@ +From b444dc962be31eff3d103ddafd747223a5e85ecc Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 2 Dec 2022 17:49:22 +0100 +Subject: arm64: dts: freescale: Fix pca954x i2c-mux node names + +From: Geert Uytterhoeven + +[ Upstream commit b025b4f5c288e29bbea421613a5b4eacf9261fbb ] + +"make dtbs_check": + + arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dtb: pca9547@77: $nodename:0: 'pca9547@77' does not match '^(i2c-?)?mux' + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dtb: pca9547@77: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'i2c@4' were unexpected) + From schema: Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml + ... + +Fix this by renaming PCA954x nodes to "i2c-mux", to match the I2C bus +multiplexer/switch DT bindings and the Generic Names Recommendation in +the Devicetree Specification. + +Signed-off-by: Geert Uytterhoeven +Signed-off-by: Shawn Guo +Signed-off-by: Sasha Levin +--- + arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts | 2 +- + arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts | 2 +- + arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts | 2 +- + arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts | 2 +- + arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts | 2 +- + arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 2 +- + arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi | 2 +- + arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi | 2 +- + arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi | 2 +- + arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts | 2 +- + arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts | 4 ++-- + arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 2 +- + 12 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts +index e22c5e77fecd..9615f3b9ee60 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts ++++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts +@@ -110,7 +110,7 @@ &esdhc1 { + &i2c0 { + status = "okay"; + +- pca9547@77 { ++ i2c-mux@77 { + compatible = "nxp,pca9547"; + reg = <0x77>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts +index fea167d222cf..14856bc79b22 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts ++++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts +@@ -70,7 +70,7 @@ fpga: board-control@2,0 { + &i2c0 { + status = "okay"; + +- pca9547@77 { ++ i2c-mux@77 { + compatible = "nxp,pca9547"; + reg = <0x77>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts +index eec62c63dafe..9ee9928f71b4 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts ++++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts +@@ -76,7 +76,7 @@ &duart1 { + &i2c0 { + status = "okay"; + +- pca9547@77 { ++ i2c-mux@77 { + compatible = "nxp,pca9547"; + reg = <0x77>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts +index 41d8b15f25a5..aa52ff73ff9e 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts ++++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts +@@ -53,7 +53,7 @@ flash@2 { + &i2c0 { + status = "okay"; + +- i2c-switch@77 { ++ i2c-mux@77 { + compatible = "nxp,pca9547"; + reg = <0x77>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts +index 1bfbce69cc8b..ee8e932628d1 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts ++++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts +@@ -136,7 +136,7 @@ mdio2_aquantia_phy: ethernet-phy@0 { + &i2c0 { + status = "okay"; + +- i2c-switch@77 { ++ i2c-mux@77 { + compatible = "nxp,pca9547"; + reg = <0x77>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts +index d3f03dcbb8c3..a9c6682a3955 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts ++++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts +@@ -245,7 +245,7 @@ rx8035: rtc@32 { + &i2c3 { + status = "okay"; + +- i2c-switch@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9540"; + #address-cells = <1>; + #size-cells = <0>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi +index 10d2fe091965..8d96d18c3697 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi ++++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi +@@ -44,7 +44,7 @@ cpld@3,0 { + + &i2c0 { + status = "okay"; +- pca9547@77 { ++ i2c-mux@77 { + compatible = "nxp,pca9547"; + reg = <0x77>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi +index 4b71c4fcb35f..787e408da002 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi ++++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi +@@ -44,7 +44,7 @@ cpld@3,0 { + + &i2c0 { + status = "okay"; +- pca9547@75 { ++ i2c-mux@75 { + compatible = "nxp,pca9547"; + reg = <0x75>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi +index afb455210bd0..d32a52ab00a4 100644 +--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi ++++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-cex7.dtsi +@@ -54,7 +54,7 @@ &esdhc1 { + &i2c0 { + status = "okay"; + +- i2c-switch@77 { ++ i2c-mux@77 { + compatible = "nxp,pca9547"; + #address-cells = <1>; + #size-cells = <0>; +diff --git a/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts b/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts +index 74c09891600f..6357078185ed 100644 +--- a/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts ++++ b/arch/arm64/boot/dts/freescale/imx8mm-nitrogen-r2.dts +@@ -214,7 +214,7 @@ &i2c3 { + pinctrl-0 = <&pinctrl_i2c3>; + status = "okay"; + +- i2cmux@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9540"; + reg = <0x70>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts b/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts +index f70fb32b96b0..cf14ab5f7404 100644 +--- a/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts ++++ b/arch/arm64/boot/dts/freescale/imx8mq-nitrogen.dts +@@ -133,7 +133,7 @@ &i2c1 { + pinctrl-0 = <&pinctrl_i2c1>; + status = "okay"; + +- i2cmux@70 { ++ i2c-mux@70 { + compatible = "nxp,pca9546"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c1_pca9546>; +@@ -216,7 +216,7 @@ &i2c4 { + pinctrl-0 = <&pinctrl_i2c4>; + status = "okay"; + +- pca9546: i2cmux@70 { ++ pca9546: i2c-mux@70 { + compatible = "nxp,pca9546"; + reg = <0x70>; + #address-cells = <1>; +diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts +index 863232a47004..4497763d57cc 100644 +--- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts ++++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts +@@ -61,7 +61,7 @@ &i2c1 { + pinctrl-0 = <&pinctrl_lpi2c1 &pinctrl_ioexp_rst>; + status = "okay"; + +- i2c-switch@71 { ++ i2c-mux@71 { + compatible = "nxp,pca9646", "nxp,pca9546"; + #address-cells = <1>; + #size-cells = <0>; +-- +2.39.0 + diff --git a/queue-5.15/arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-sdhc.patch b/queue-5.15/arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-sdhc.patch new file mode 100644 index 00000000000..3cae57f6ceb --- /dev/null +++ b/queue-5.15/arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-sdhc.patch @@ -0,0 +1,44 @@ +From 621983c84f102642b1e4f66f9d67378dba396ccc Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 4 Dec 2022 10:44:17 +0100 +Subject: arm64: dts: imx8mq-thor96: fix no-mmc property for SDHCI + +From: Krzysztof Kozlowski + +[ Upstream commit ef10d57936ead5e817ef7cea6a87531085e77773 ] + +There is no "no-emmc" property, so intention for SD/SDIO only nodes was +to use "no-mmc". + +Signed-off-by: Krzysztof Kozlowski +Signed-off-by: Shawn Guo +Signed-off-by: Sasha Levin +--- + arch/arm64/boot/dts/freescale/imx8mq-thor96.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts +index 5d5aa6537225..6e6182709d22 100644 +--- a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts ++++ b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts +@@ -339,7 +339,7 @@ &usdhc1 { + bus-width = <4>; + non-removable; + no-sd; +- no-emmc; ++ no-mmc; + status = "okay"; + + brcmf: wifi@1 { +@@ -359,7 +359,7 @@ &usdhc2 { + cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; + bus-width = <4>; + no-sdio; +- no-emmc; ++ no-mmc; + disable-wp; + status = "okay"; + }; +-- +2.39.0 + diff --git a/queue-5.15/blk-cgroup-fix-missing-pd_online_fn-while-activating.patch b/queue-5.15/blk-cgroup-fix-missing-pd_online_fn-while-activating.patch new file mode 100644 index 00000000000..189f3d1252b --- /dev/null +++ b/queue-5.15/blk-cgroup-fix-missing-pd_online_fn-while-activating.patch @@ -0,0 +1,39 @@ +From 538acbab91cd5eb9318048088397030c2e49781f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 3 Jan 2023 19:28:33 +0800 +Subject: blk-cgroup: fix missing pd_online_fn() while activating policy + +From: Yu Kuai + +[ Upstream commit e3ff8887e7db757360f97634e0d6f4b8e27a8c46 ] + +If the policy defines pd_online_fn(), it should be called after +pd_init_fn(), like blkg_create(). + +Signed-off-by: Yu Kuai +Acked-by: Tejun Heo +Link: https://lore.kernel.org/r/20230103112833.2013432-1-yukuai1@huaweicloud.com +Signed-off-by: Jens Axboe +Signed-off-by: Sasha Levin +--- + block/blk-cgroup.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c +index ce5858dadca5..3ee4c1217b63 100644 +--- a/block/blk-cgroup.c ++++ b/block/blk-cgroup.c +@@ -1360,6 +1360,10 @@ int blkcg_activate_policy(struct request_queue *q, + list_for_each_entry_reverse(blkg, &q->blkg_list, q_node) + pol->pd_init_fn(blkg->pd[pol->plid]); + ++ if (pol->pd_online_fn) ++ list_for_each_entry_reverse(blkg, &q->blkg_list, q_node) ++ pol->pd_online_fn(blkg->pd[pol->plid]); ++ + __set_bit(pol->plid, q->blkcg_pols); + ret = 0; + +-- +2.39.0 + diff --git a/queue-5.15/bpf-skip-task-with-pid-1-in-send_signal_common.patch b/queue-5.15/bpf-skip-task-with-pid-1-in-send_signal_common.patch new file mode 100644 index 00000000000..672fbec5f7a --- /dev/null +++ b/queue-5.15/bpf-skip-task-with-pid-1-in-send_signal_common.patch @@ -0,0 +1,61 @@ +From 0523b7437f907e8db76e22fd5264a1fe0acdd3f1 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 6 Jan 2023 16:48:38 +0800 +Subject: bpf: Skip task with pid=1 in send_signal_common() + +From: Hao Sun + +[ Upstream commit a3d81bc1eaef48e34dd0b9b48eefed9e02a06451 ] + +The following kernel panic can be triggered when a task with pid=1 attaches +a prog that attempts to send killing signal to itself, also see [1] for more +details: + + Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b + CPU: 3 PID: 1 Comm: systemd Not tainted 6.1.0-09652-g59fe41b5255f #148 + Call Trace: + + __dump_stack lib/dump_stack.c:88 [inline] + dump_stack_lvl+0x100/0x178 lib/dump_stack.c:106 + panic+0x2c4/0x60f kernel/panic.c:275 + do_exit.cold+0x63/0xe4 kernel/exit.c:789 + do_group_exit+0xd4/0x2a0 kernel/exit.c:950 + get_signal+0x2460/0x2600 kernel/signal.c:2858 + arch_do_signal_or_restart+0x78/0x5d0 arch/x86/kernel/signal.c:306 + exit_to_user_mode_loop kernel/entry/common.c:168 [inline] + exit_to_user_mode_prepare+0x15f/0x250 kernel/entry/common.c:203 + __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline] + syscall_exit_to_user_mode+0x1d/0x50 kernel/entry/common.c:296 + do_syscall_64+0x44/0xb0 arch/x86/entry/common.c:86 + entry_SYSCALL_64_after_hwframe+0x63/0xcd + +So skip task with pid=1 in bpf_send_signal_common() to avoid the panic. + + [1] https://lore.kernel.org/bpf/20221222043507.33037-1-sunhao.th@gmail.com + +Signed-off-by: Hao Sun +Signed-off-by: Daniel Borkmann +Acked-by: Stanislav Fomichev +Link: https://lore.kernel.org/bpf/20230106084838.12690-1-sunhao.th@gmail.com +Signed-off-by: Sasha Levin +--- + kernel/trace/bpf_trace.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c +index c289010b0964..4daf1e044556 100644 +--- a/kernel/trace/bpf_trace.c ++++ b/kernel/trace/bpf_trace.c +@@ -793,6 +793,9 @@ static int bpf_send_signal_common(u32 sig, enum pid_type type) + return -EPERM; + if (unlikely(!nmi_uaccess_okay())) + return -EPERM; ++ /* Task should not be pid=1 to avoid kernel panic. */ ++ if (unlikely(is_global_init(current))) ++ return -EPERM; + + if (irqs_disabled()) { + /* Do an early check on signal validity. Otherwise, +-- +2.39.0 + diff --git a/queue-5.15/cifs-fix-return-of-uninitialized-rc-in-dfs_cache_upd.patch b/queue-5.15/cifs-fix-return-of-uninitialized-rc-in-dfs_cache_upd.patch new file mode 100644 index 00000000000..3b4637e55e8 --- /dev/null +++ b/queue-5.15/cifs-fix-return-of-uninitialized-rc-in-dfs_cache_upd.patch @@ -0,0 +1,42 @@ +From 487398989aca371318e6087feee8eb1dbe02cbfe Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 18 Jan 2023 13:36:31 -0300 +Subject: cifs: fix return of uninitialized rc in dfs_cache_update_tgthint() + +From: Paulo Alcantara + +[ Upstream commit d6a49e8c4ca4d399ed65ac219585187fc8c2e2b1 ] + +Fix this by initializing rc to 0 as cache_refresh_path() would not set +it in case of success. + +Reported-by: kernel test robot +Link: https://lore.kernel.org/all/202301190004.bEHvbKG6-lkp@intel.com/ +Signed-off-by: Paulo Alcantara (SUSE) +Signed-off-by: Steve French +Signed-off-by: Sasha Levin +--- + fs/cifs/dfs_cache.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/fs/cifs/dfs_cache.c b/fs/cifs/dfs_cache.c +index 8c98fa507768..1864bdadf3dd 100644 +--- a/fs/cifs/dfs_cache.c ++++ b/fs/cifs/dfs_cache.c +@@ -1050,10 +1050,10 @@ int dfs_cache_update_tgthint(const unsigned int xid, struct cifs_ses *ses, + const struct nls_table *cp, int remap, const char *path, + const struct dfs_cache_tgt_iterator *it) + { +- int rc; +- const char *npath; +- struct cache_entry *ce; + struct cache_dfs_tgt *t; ++ struct cache_entry *ce; ++ const char *npath; ++ int rc = 0; + + npath = dfs_cache_canonical_path(path, cp, remap); + if (IS_ERR(npath)) +-- +2.39.0 + diff --git a/queue-5.15/dmaengine-imx-sdma-fix-a-possible-memory-leak-in-sdm.patch b/queue-5.15/dmaengine-imx-sdma-fix-a-possible-memory-leak-in-sdm.patch new file mode 100644 index 00000000000..f28bf5b1dc7 --- /dev/null +++ b/queue-5.15/dmaengine-imx-sdma-fix-a-possible-memory-leak-in-sdm.patch @@ -0,0 +1,49 @@ +From 74242a4bc3c7ada59f1513d066a7e02a6a0c086c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 30 Nov 2022 17:08:00 +0800 +Subject: dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init + +From: Hui Wang + +[ Upstream commit 1417f59ac0b02130ee56c0c50794b9b257be3d17 ] + +If the function sdma_load_context() fails, the sdma_desc will be +freed, but the allocated desc->bd is forgot to be freed. + +We already met the sdma_load_context() failure case and the log as +below: +[ 450.699064] imx-sdma 30bd0000.dma-controller: Timeout waiting for CH0 ready +... + +In this case, the desc->bd will not be freed without this change. + +Signed-off-by: Hui Wang +Reviewed-by: Sascha Hauer +Link: https://lore.kernel.org/r/20221130090800.102035-1-hui.wang@canonical.com +Signed-off-by: Vinod Koul +Signed-off-by: Sasha Levin +--- + drivers/dma/imx-sdma.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c +index 5215a5e39f3c..292f4c9a963d 100644 +--- a/drivers/dma/imx-sdma.c ++++ b/drivers/dma/imx-sdma.c +@@ -1428,10 +1428,12 @@ static struct sdma_desc *sdma_transfer_init(struct sdma_channel *sdmac, + sdma_config_ownership(sdmac, false, true, false); + + if (sdma_load_context(sdmac)) +- goto err_desc_out; ++ goto err_bd_out; + + return desc; + ++err_bd_out: ++ sdma_free_bd(desc); + err_desc_out: + kfree(desc); + err_out: +-- +2.39.0 + diff --git a/queue-5.15/erofs-zmap.c-fix-incorrect-offset-calculation.patch b/queue-5.15/erofs-zmap.c-fix-incorrect-offset-calculation.patch new file mode 100644 index 00000000000..b2eeeb0ed80 --- /dev/null +++ b/queue-5.15/erofs-zmap.c-fix-incorrect-offset-calculation.patch @@ -0,0 +1,61 @@ +From 91c3e4e6d75c4d1ed52afa8759da45695cd2694c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 9 Dec 2022 15:51:51 +0530 +Subject: erofs/zmap.c: Fix incorrect offset calculation + +From: Siddh Raman Pant + +[ Upstream commit 6acd87d50998ef0afafc441613aeaf5a8f5c9eff ] + +Effective offset to add to length was being incorrectly calculated, +which resulted in iomap->length being set to 0, triggering a WARN_ON +in iomap_iter_done(). + +Fix that, and describe it in comments. + +This was reported as a crash by syzbot under an issue about a warning +encountered in iomap_iter_done(), but unrelated to erofs. + +C reproducer: https://syzkaller.appspot.com/text?tag=ReproC&x=1037a6b2880000 +Kernel config: https://syzkaller.appspot.com/text?tag=KernelConfig&x=e2021a61197ebe02 +Dashboard link: https://syzkaller.appspot.com/bug?extid=a8e049cd3abd342936b6 + +Reported-by: syzbot+a8e049cd3abd342936b6@syzkaller.appspotmail.com +Suggested-by: Gao Xiang +Signed-off-by: Siddh Raman Pant +Reviewed-by: Gao Xiang +Reviewed-by: Chao Yu +Link: https://lore.kernel.org/r/20221209102151.311049-1-code@siddh.me +Signed-off-by: Gao Xiang +Signed-off-by: Sasha Levin +--- + fs/erofs/zmap.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c +index 7a6df35fdc91..73b86b5c1a75 100644 +--- a/fs/erofs/zmap.c ++++ b/fs/erofs/zmap.c +@@ -700,12 +700,16 @@ static int z_erofs_iomap_begin_report(struct inode *inode, loff_t offset, + iomap->type = IOMAP_HOLE; + iomap->addr = IOMAP_NULL_ADDR; + /* +- * No strict rule how to describe extents for post EOF, yet +- * we need do like below. Otherwise, iomap itself will get ++ * No strict rule on how to describe extents for post EOF, yet ++ * we need to do like below. Otherwise, iomap itself will get + * into an endless loop on post EOF. ++ * ++ * Calculate the effective offset by subtracting extent start ++ * (map.m_la) from the requested offset, and add it to length. ++ * (NB: offset >= map.m_la always) + */ + if (iomap->offset >= inode->i_size) +- iomap->length = length + map.m_la - offset; ++ iomap->length = length + offset - map.m_la; + } + iomap->flags = 0; + return 0; +-- +2.39.0 + diff --git a/queue-5.15/firmware-arm_scmi-clear-stale-xfer-hdr.status.patch b/queue-5.15/firmware-arm_scmi-clear-stale-xfer-hdr.status.patch new file mode 100644 index 00000000000..dc823ac67f1 --- /dev/null +++ b/queue-5.15/firmware-arm_scmi-clear-stale-xfer-hdr.status.patch @@ -0,0 +1,37 @@ +From 1c49b8a82d82d52367f8395e47d54323b0ced135 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 22 Dec 2022 18:38:19 +0000 +Subject: firmware: arm_scmi: Clear stale xfer->hdr.status + +From: Cristian Marussi + +[ Upstream commit f6ca5059dc0d6608dc46070f48e396d611f240d6 ] + +Stale error status reported from a previous message transaction must be +cleared before starting a new transaction to avoid being confusingly +reported in the following SCMI message dump traces. + +Signed-off-by: Cristian Marussi +Link: https://lore.kernel.org/r/20221222183823.518856-2-cristian.marussi@arm.com +Signed-off-by: Sudeep Holla +Signed-off-by: Sasha Levin +--- + drivers/firmware/arm_scmi/driver.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c +index a8ff4c9508b7..11842497b226 100644 +--- a/drivers/firmware/arm_scmi/driver.c ++++ b/drivers/firmware/arm_scmi/driver.c +@@ -783,6 +783,8 @@ static int do_xfer(const struct scmi_protocol_handle *ph, + xfer->hdr.protocol_id, xfer->hdr.seq, + xfer->hdr.poll_completion); + ++ /* Clear any stale status */ ++ xfer->hdr.status = SCMI_SUCCESS; + xfer->state = SCMI_XFER_SENT_OK; + /* + * Even though spinlocking is not needed here since no race is possible +-- +2.39.0 + diff --git a/queue-5.15/hid-playstation-sanity-check-dualsense-calibration-d.patch b/queue-5.15/hid-playstation-sanity-check-dualsense-calibration-d.patch new file mode 100644 index 00000000000..f370dce43b3 --- /dev/null +++ b/queue-5.15/hid-playstation-sanity-check-dualsense-calibration-d.patch @@ -0,0 +1,87 @@ +From 1402af7599c8ff0e770facaba8217a84ec8701d5 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 5 Jan 2023 17:59:08 -0800 +Subject: HID: playstation: sanity check DualSense calibration data. + +From: Roderick Colenbrander + +[ Upstream commit ccf1e1626d37745d0a697db67407beec9ae9d4b8 ] + +Make sure calibration values are defined to prevent potential kernel +crashes. This fixes a hypothetical issue for virtual or clone devices +inspired by a similar fix for DS4. + +Signed-off-by: Roderick Colenbrander +Signed-off-by: Jiri Kosina +Signed-off-by: Sasha Levin +--- + drivers/hid/hid-playstation.c | 32 ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +diff --git a/drivers/hid/hid-playstation.c b/drivers/hid/hid-playstation.c +index bd0e0fe2f627..944e5e5ff134 100644 +--- a/drivers/hid/hid-playstation.c ++++ b/drivers/hid/hid-playstation.c +@@ -626,6 +626,7 @@ static const struct attribute_group ps_device_attribute_group = { + + static int dualsense_get_calibration_data(struct dualsense *ds) + { ++ struct hid_device *hdev = ds->base.hdev; + short gyro_pitch_bias, gyro_pitch_plus, gyro_pitch_minus; + short gyro_yaw_bias, gyro_yaw_plus, gyro_yaw_minus; + short gyro_roll_bias, gyro_roll_plus, gyro_roll_minus; +@@ -636,6 +637,7 @@ static int dualsense_get_calibration_data(struct dualsense *ds) + int speed_2x; + int range_2g; + int ret = 0; ++ int i; + uint8_t *buf; + + buf = kzalloc(DS_FEATURE_REPORT_CALIBRATION_SIZE, GFP_KERNEL); +@@ -687,6 +689,21 @@ static int dualsense_get_calibration_data(struct dualsense *ds) + ds->gyro_calib_data[2].sens_numer = speed_2x*DS_GYRO_RES_PER_DEG_S; + ds->gyro_calib_data[2].sens_denom = gyro_roll_plus - gyro_roll_minus; + ++ /* ++ * Sanity check gyro calibration data. This is needed to prevent crashes ++ * during report handling of virtual, clone or broken devices not implementing ++ * calibration data properly. ++ */ ++ for (i = 0; i < ARRAY_SIZE(ds->gyro_calib_data); i++) { ++ if (ds->gyro_calib_data[i].sens_denom == 0) { ++ hid_warn(hdev, "Invalid gyro calibration data for axis (%d), disabling calibration.", ++ ds->gyro_calib_data[i].abs_code); ++ ds->gyro_calib_data[i].bias = 0; ++ ds->gyro_calib_data[i].sens_numer = DS_GYRO_RANGE; ++ ds->gyro_calib_data[i].sens_denom = S16_MAX; ++ } ++ } ++ + /* + * Set accelerometer calibration and normalization parameters. + * Data values will be normalized to 1/DS_ACC_RES_PER_G g. +@@ -709,6 +726,21 @@ static int dualsense_get_calibration_data(struct dualsense *ds) + ds->accel_calib_data[2].sens_numer = 2*DS_ACC_RES_PER_G; + ds->accel_calib_data[2].sens_denom = range_2g; + ++ /* ++ * Sanity check accelerometer calibration data. This is needed to prevent crashes ++ * during report handling of virtual, clone or broken devices not implementing calibration ++ * data properly. ++ */ ++ for (i = 0; i < ARRAY_SIZE(ds->accel_calib_data); i++) { ++ if (ds->accel_calib_data[i].sens_denom == 0) { ++ hid_warn(hdev, "Invalid accelerometer calibration data for axis (%d), disabling calibration.", ++ ds->accel_calib_data[i].abs_code); ++ ds->accel_calib_data[i].bias = 0; ++ ds->accel_calib_data[i].sens_numer = DS_ACC_RANGE; ++ ds->accel_calib_data[i].sens_denom = S16_MAX; ++ } ++ } ++ + err_free: + kfree(buf); + return ret; +-- +2.39.0 + diff --git a/queue-5.15/series b/queue-5.15/series new file mode 100644 index 00000000000..eaf289101b4 --- /dev/null +++ b/queue-5.15/series @@ -0,0 +1,11 @@ +arm-dts-imx-fix-pca9547-i2c-mux-node-name.patch +arm-dts-vf610-fix-pca9548-i2c-mux-node-names.patch +arm64-dts-freescale-fix-pca954x-i2c-mux-node-names.patch +arm64-dts-imx8mq-thor96-fix-no-mmc-property-for-sdhc.patch +firmware-arm_scmi-clear-stale-xfer-hdr.status.patch +bpf-skip-task-with-pid-1-in-send_signal_common.patch +erofs-zmap.c-fix-incorrect-offset-calculation.patch +blk-cgroup-fix-missing-pd_online_fn-while-activating.patch +hid-playstation-sanity-check-dualsense-calibration-d.patch +dmaengine-imx-sdma-fix-a-possible-memory-leak-in-sdm.patch +cifs-fix-return-of-uninitialized-rc-in-dfs_cache_upd.patch