From: Greg Kroah-Hartman Date: Mon, 19 Feb 2018 16:44:58 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v4.15.5~44 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=eb2e893e720671b2e27a4b76c5c7c63e77e90274;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: arm-dts-nomadik-add-interrupt-parent-for-clcd.patch arm-dts-sti-add-gpio-polarity-for-hdmi-hpd-gpio-property.patch arm-lpc3250-fix-uda1380-gpio-numbers.patch arm-spear13xx-fix-dmas-cells.patch arm-spear13xx-fix-spics-gpio-controller-s-warning.patch arm-spear600-add-missing-interrupt-parent-of-rtc.patch arm64-dts-msm8916-correct-ipc-references-for-smsm.patch cpufreq-powernv-dont-assume-distinct-pstate-values-for-nominal-and-pmin.patch ocfs2-try-a-blocking-lock-before-return-aop_truncated_page.patch pm-devfreq-propagate-error-from-devfreq_add_device.patch s390-fix-handling-of-1-in-set-fs-id16-syscalls.patch --- diff --git a/queue-4.9/arm-dts-nomadik-add-interrupt-parent-for-clcd.patch b/queue-4.9/arm-dts-nomadik-add-interrupt-parent-for-clcd.patch new file mode 100644 index 00000000000..f7c1162dc3c --- /dev/null +++ b/queue-4.9/arm-dts-nomadik-add-interrupt-parent-for-clcd.patch @@ -0,0 +1,40 @@ +From e8bfa0422469cdfc86be3f525f621b1d44d2481b Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Mon, 15 Jan 2018 17:37:08 +0100 +Subject: ARM: dts: nomadik: add interrupt-parent for clcd + +From: Arnd Bergmann + +commit e8bfa0422469cdfc86be3f525f621b1d44d2481b upstream. + +The clcd device is lacking an interrupt-parent property, which makes +the interrupt unusable and shows up as a warning with the latest +dtc version: + +arch/arm/boot/dts/ste-nomadik-s8815.dtb: Warning (interrupts_property): Missing interrupt-parent for /amba/clcd@10120000 +arch/arm/boot/dts/ste-nomadik-nhk15.dtb: Warning (interrupts_property): Missing interrupt-parent for /amba/clcd@10120000 + +I looked up the old board files and found that this interrupt has +the same irqchip as all the other on-chip device, it just needs one +extra line. + +Fixes: 17470b7da11c ("ARM: dts: add the CLCD LCD display to the NHK15") +Reviewed-by: Linus Walleij +Cc: stable@vger.kernel.org +Signed-off-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi ++++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi +@@ -749,6 +749,7 @@ + reg = <0x10120000 0x1000>; + interrupt-names = "combined"; + interrupts = <14>; ++ interrupt-parent = <&vica>; + clocks = <&clcdclk>, <&hclkclcd>; + clock-names = "clcdclk", "apb_pclk"; + status = "disabled"; diff --git a/queue-4.9/arm-dts-sti-add-gpio-polarity-for-hdmi-hpd-gpio-property.patch b/queue-4.9/arm-dts-sti-add-gpio-polarity-for-hdmi-hpd-gpio-property.patch new file mode 100644 index 00000000000..bcabcac8dda --- /dev/null +++ b/queue-4.9/arm-dts-sti-add-gpio-polarity-for-hdmi-hpd-gpio-property.patch @@ -0,0 +1,73 @@ +From 7ac1f59c09a61e6af6622df6809e003b0af07f3d Mon Sep 17 00:00:00 2001 +From: Patrice Chotard +Date: Wed, 10 Jan 2018 09:21:02 +0100 +Subject: ARM: dts: STi: Add gpio polarity for "hdmi,hpd-gpio" property + +From: Patrice Chotard + +commit 7ac1f59c09a61e6af6622df6809e003b0af07f3d upstream. + +The GPIO polarity is missing in the hdmi,hpd-gpio property, this +fixes the following DT warnings: + +arch/arm/boot/dts/stih410-b2120.dtb: Warning (gpios_property): hdmi,hpd-gpio property +size (8) too small for cell size 2 in /soc/sti-display-subsystem/sti-hdmi@8d04000 + +arch/arm/boot/dts/stih407-b2120.dtb: Warning (gpios_property): hdmi,hpd-gpio property +size (8) too small for cell size 2 in /soc/sti-display-subsystem/sti-hdmi@8d04000 + +arch/arm/boot/dts/stih410-b2260.dtb: Warning (gpios_property): hdmi,hpd-gpio property +size (8) too small for cell size 2 in /soc/sti-display-subsystem/sti-hdmi@8d04000 + +[arnd: marked Cc:stable since this warning shows up with the latest dtc + by default, and is more likely to actually cause problems than the + other patches from this series] + +Cc: stable@vger.kernel.org +Signed-off-by: Patrice Chotard +Signed-off-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/stih407.dtsi | 3 ++- + arch/arm/boot/dts/stih410.dtsi | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +--- a/arch/arm/boot/dts/stih407.dtsi ++++ b/arch/arm/boot/dts/stih407.dtsi +@@ -8,6 +8,7 @@ + */ + #include "stih407-clock.dtsi" + #include "stih407-family.dtsi" ++#include + / { + soc { + sti-display-subsystem { +@@ -122,7 +123,7 @@ + <&clk_s_d2_quadfs 0>, + <&clk_s_d2_quadfs 1>; + +- hdmi,hpd-gpio = <&pio5 3>; ++ hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>; + reset-names = "hdmi"; + resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>; + ddc = <&hdmiddc>; +--- a/arch/arm/boot/dts/stih410.dtsi ++++ b/arch/arm/boot/dts/stih410.dtsi +@@ -9,6 +9,7 @@ + #include "stih410-clock.dtsi" + #include "stih407-family.dtsi" + #include "stih410-pinctrl.dtsi" ++#include + / { + aliases { + bdisp0 = &bdisp0; +@@ -213,7 +214,7 @@ + <&clk_s_d2_quadfs 0>, + <&clk_s_d2_quadfs 1>; + +- hdmi,hpd-gpio = <&pio5 3>; ++ hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>; + reset-names = "hdmi"; + resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>; + ddc = <&hdmiddc>; diff --git a/queue-4.9/arm-lpc3250-fix-uda1380-gpio-numbers.patch b/queue-4.9/arm-lpc3250-fix-uda1380-gpio-numbers.patch new file mode 100644 index 00000000000..17bcc00f3ab --- /dev/null +++ b/queue-4.9/arm-lpc3250-fix-uda1380-gpio-numbers.patch @@ -0,0 +1,59 @@ +From ca32e0c4bf9ca4b87089c5a5ce945e5f2ec890da Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Wed, 10 Jan 2018 17:22:00 +0100 +Subject: ARM: lpc3250: fix uda1380 gpio numbers + +From: Arnd Bergmann + +commit ca32e0c4bf9ca4b87089c5a5ce945e5f2ec890da upstream. + +dtc warns about obviously incorrect GPIO numbers for the audio codec +on both lpc32xx boards: + +arch/arm/boot/dts/lpc3250-phy3250.dtb: Warning (gpios_property): reset-gpio property size (12) too small for cell size 3 in /ahb/apb/i2c@400A0000/uda1380@18 +arch/arm/boot/dts/lpc3250-phy3250.dtb: Warning (gpios_property): power-gpio property size (12) too small for cell size 3 in /ahb/apb/i2c@400A0000/uda1380@18 +arch/arm/boot/dts/lpc3250-ea3250.dtb: Warning (gpios_property): reset-gpio property size (12) too small for cell size 3 in /ahb/apb/i2c@400A0000/uda1380@18 +arch/arm/boot/dts/lpc3250-ea3250.dtb: Warning (gpios_property): power-gpio property size (12) too small for cell size 3 in /ahb/apb/i2c@400A0000/uda1380@18 + +It looks like the nodes are written for a different binding that combines +the GPIO number into a single number rather than a bank/number pair. +I found the right numbers on stackexchange.com, so this patch fixes +the warning and has a reasonable chance of getting things to actually +work. + +Cc: stable@vger.kernel.org +Link: https://unix.stackexchange.com/questions/59497/alsa-asoc-how-to-correctly-load-devices-drivers/62217#62217 +Signed-off-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/lpc3250-ea3250.dts | 4 ++-- + arch/arm/boot/dts/lpc3250-phy3250.dts | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +--- a/arch/arm/boot/dts/lpc3250-ea3250.dts ++++ b/arch/arm/boot/dts/lpc3250-ea3250.dts +@@ -156,8 +156,8 @@ + uda1380: uda1380@18 { + compatible = "nxp,uda1380"; + reg = <0x18>; +- power-gpio = <&gpio 0x59 0>; +- reset-gpio = <&gpio 0x51 0>; ++ power-gpio = <&gpio 3 10 0>; ++ reset-gpio = <&gpio 3 2 0>; + dac-clk = "wspll"; + }; + +--- a/arch/arm/boot/dts/lpc3250-phy3250.dts ++++ b/arch/arm/boot/dts/lpc3250-phy3250.dts +@@ -81,8 +81,8 @@ + uda1380: uda1380@18 { + compatible = "nxp,uda1380"; + reg = <0x18>; +- power-gpio = <&gpio 0x59 0>; +- reset-gpio = <&gpio 0x51 0>; ++ power-gpio = <&gpio 3 10 0>; ++ reset-gpio = <&gpio 3 2 0>; + dac-clk = "wspll"; + }; + diff --git a/queue-4.9/arm-spear13xx-fix-dmas-cells.patch b/queue-4.9/arm-spear13xx-fix-dmas-cells.patch new file mode 100644 index 00000000000..1bc00b370d6 --- /dev/null +++ b/queue-4.9/arm-spear13xx-fix-dmas-cells.patch @@ -0,0 +1,72 @@ +From cdd10409914184c7eee5ae3e11beb890c9c16c61 Mon Sep 17 00:00:00 2001 +From: Viresh Kumar +Date: Thu, 11 Jan 2018 11:28:52 +0530 +Subject: arm: spear13xx: Fix dmas cells + +From: Viresh Kumar + +commit cdd10409914184c7eee5ae3e11beb890c9c16c61 upstream. + +The "dmas" cells for the designware DMA controller need to have only 3 +properties apart from the phandle: request line, src master and +destination master. But the commit 6e8887f60f60 updated it incorrectly +while moving from platform code to DT. Fix it. + +Cc: stable@vger.kernel.org # v3.10+ +Fixes: 6e8887f60f60 ("ARM: SPEAr13xx: Pass generic DW DMAC platform data from DT") +Reported-by: Arnd Bergmann +Signed-off-by: Viresh Kumar +Signed-off-by: Olof Johansson +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/devicetree/bindings/dma/snps-dma.txt | 2 +- + arch/arm/boot/dts/spear1340.dtsi | 4 ++-- + arch/arm/boot/dts/spear13xx.dtsi | 6 +++--- + 3 files changed, 6 insertions(+), 6 deletions(-) + +--- a/Documentation/devicetree/bindings/dma/snps-dma.txt ++++ b/Documentation/devicetree/bindings/dma/snps-dma.txt +@@ -63,6 +63,6 @@ Example: + interrupts = <0 35 0x4>; + status = "disabled"; + dmas = <&dmahost 12 0 1>, +- <&dmahost 13 0 1 0>; ++ <&dmahost 13 1 0>; + dma-names = "rx", "rx"; + }; +--- a/arch/arm/boot/dts/spear1340.dtsi ++++ b/arch/arm/boot/dts/spear1340.dtsi +@@ -141,8 +141,8 @@ + reg = <0xb4100000 0x1000>; + interrupts = <0 105 0x4>; + status = "disabled"; +- dmas = <&dwdma0 0x600 0 0 1>, /* 0xC << 11 */ +- <&dwdma0 0x680 0 1 0>; /* 0xD << 7 */ ++ dmas = <&dwdma0 12 0 1>, ++ <&dwdma0 13 1 0>; + dma-names = "tx", "rx"; + }; + +--- a/arch/arm/boot/dts/spear13xx.dtsi ++++ b/arch/arm/boot/dts/spear13xx.dtsi +@@ -100,7 +100,7 @@ + reg = <0xb2800000 0x1000>; + interrupts = <0 29 0x4>; + status = "disabled"; +- dmas = <&dwdma0 0 0 0 0>; ++ dmas = <&dwdma0 0 0 0>; + dma-names = "data"; + }; + +@@ -288,8 +288,8 @@ + #size-cells = <0>; + interrupts = <0 31 0x4>; + status = "disabled"; +- dmas = <&dwdma0 0x2000 0 0 0>, /* 0x4 << 11 */ +- <&dwdma0 0x0280 0 0 0>; /* 0x5 << 7 */ ++ dmas = <&dwdma0 4 0 0>, ++ <&dwdma0 5 0 0>; + dma-names = "tx", "rx"; + }; + diff --git a/queue-4.9/arm-spear13xx-fix-spics-gpio-controller-s-warning.patch b/queue-4.9/arm-spear13xx-fix-spics-gpio-controller-s-warning.patch new file mode 100644 index 00000000000..d858bb4761f --- /dev/null +++ b/queue-4.9/arm-spear13xx-fix-spics-gpio-controller-s-warning.patch @@ -0,0 +1,37 @@ +From f8975cb1b8a36d0839b6365235778dd9df1d04ca Mon Sep 17 00:00:00 2001 +From: Viresh Kumar +Date: Thu, 11 Jan 2018 11:28:53 +0530 +Subject: arm: spear13xx: Fix spics gpio controller's warning + +From: Viresh Kumar + +commit f8975cb1b8a36d0839b6365235778dd9df1d04ca upstream. + +This fixes the following warning by also sending the flags argument for +gpio controllers: + +Property 'cs-gpios', cell 6 is not a phandle reference in +/ahb/apb/spi@e0100000 + +Fixes: 8113ba917dfa ("ARM: SPEAr: DT: Update device nodes") +Cc: stable@vger.kernel.org # v3.8+ +Reported-by: Arnd Bergmann +Signed-off-by: Viresh Kumar +Signed-off-by: Olof Johansson +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/spear1310-evb.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/spear1310-evb.dts ++++ b/arch/arm/boot/dts/spear1310-evb.dts +@@ -349,7 +349,7 @@ + spi0: spi@e0100000 { + status = "okay"; + num-cs = <3>; +- cs-gpios = <&gpio1 7 0>, <&spics 0>, <&spics 1>; ++ cs-gpios = <&gpio1 7 0>, <&spics 0 0>, <&spics 1 0>; + + stmpe610@0 { + compatible = "st,stmpe610"; diff --git a/queue-4.9/arm-spear600-add-missing-interrupt-parent-of-rtc.patch b/queue-4.9/arm-spear600-add-missing-interrupt-parent-of-rtc.patch new file mode 100644 index 00000000000..74a39dea080 --- /dev/null +++ b/queue-4.9/arm-spear600-add-missing-interrupt-parent-of-rtc.patch @@ -0,0 +1,32 @@ +From 6ffb5b4f248fe53e0361b8cbc2a523b432566442 Mon Sep 17 00:00:00 2001 +From: Viresh Kumar +Date: Thu, 11 Jan 2018 11:28:51 +0530 +Subject: arm: spear600: Add missing interrupt-parent of rtc + +From: Viresh Kumar + +commit 6ffb5b4f248fe53e0361b8cbc2a523b432566442 upstream. + +The interrupt-parent of rtc was missing, add it. + +Fixes: 8113ba917dfa ("ARM: SPEAr: DT: Update device nodes") +Cc: stable@vger.kernel.org # v3.8+ +Reported-by: Arnd Bergmann +Signed-off-by: Viresh Kumar +Signed-off-by: Olof Johansson +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/spear600.dtsi | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/spear600.dtsi ++++ b/arch/arm/boot/dts/spear600.dtsi +@@ -194,6 +194,7 @@ + rtc@fc900000 { + compatible = "st,spear600-rtc"; + reg = <0xfc900000 0x1000>; ++ interrupt-parent = <&vic0>; + interrupts = <10>; + status = "disabled"; + }; diff --git a/queue-4.9/arm64-dts-msm8916-correct-ipc-references-for-smsm.patch b/queue-4.9/arm64-dts-msm8916-correct-ipc-references-for-smsm.patch new file mode 100644 index 00000000000..7c694ee40b9 --- /dev/null +++ b/queue-4.9/arm64-dts-msm8916-correct-ipc-references-for-smsm.patch @@ -0,0 +1,38 @@ +From 566bd8902e7fa20bd412ed753e09e89c1c96939c Mon Sep 17 00:00:00 2001 +From: Bjorn Andersson +Date: Thu, 30 Nov 2017 21:27:32 -0800 +Subject: arm64: dts: msm8916: Correct ipc references for smsm + +From: Bjorn Andersson + +commit 566bd8902e7fa20bd412ed753e09e89c1c96939c upstream. + +SMSM is not symmetrical, the incoming bits from WCNSS are available at +index 6, but the outgoing host id for WCNSS is 3. Further more, upstream +references the base of APCS (in contrast to downstream), so the register +offset of 8 must be included. + +Fixes: 1fb47e0a9ba4 ("arm64: dts: qcom: msm8916: Add smsm and smp2p nodes") +Cc: stable@vger.kernel.org +Reported-by: Ramon Fried +Signed-off-by: Bjorn Andersson +Signed-off-by: Andy Gross +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm64/boot/dts/qcom/msm8916.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi ++++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi +@@ -906,8 +906,8 @@ + #address-cells = <1>; + #size-cells = <0>; + +- qcom,ipc-1 = <&apcs 0 13>; +- qcom,ipc-6 = <&apcs 0 19>; ++ qcom,ipc-1 = <&apcs 8 13>; ++ qcom,ipc-3 = <&apcs 8 19>; + + apps_smsm: apps@0 { + reg = <0>; diff --git a/queue-4.9/cpufreq-powernv-dont-assume-distinct-pstate-values-for-nominal-and-pmin.patch b/queue-4.9/cpufreq-powernv-dont-assume-distinct-pstate-values-for-nominal-and-pmin.patch new file mode 100644 index 00000000000..e16641349d0 --- /dev/null +++ b/queue-4.9/cpufreq-powernv-dont-assume-distinct-pstate-values-for-nominal-and-pmin.patch @@ -0,0 +1,40 @@ +From 3fa4680b860bf48b437d6a2c039789c4abe202ae Mon Sep 17 00:00:00 2001 +From: Shilpasri G Bhat +Date: Fri, 12 Jan 2018 12:43:53 +0530 +Subject: cpufreq: powernv: Dont assume distinct pstate values for nominal and pmin + +From: Shilpasri G Bhat + +commit 3fa4680b860bf48b437d6a2c039789c4abe202ae upstream. + +Some OpenPOWER boxes can have same pstate values for nominal and +pmin pstates. In these boxes the current code will not initialize +'powernv_pstate_info.min' variable and result in erroneous CPU +frequency reporting. This patch fixes this problem. + +Fixes: 09ca4c9b5958 (cpufreq: powernv: Replacing pstate_id with frequency table index) +Reported-by: Alvin Wang +Signed-off-by: Shilpasri G Bhat +Acked-by: Viresh Kumar +Cc: 4.8+ # 4.8+ +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/cpufreq/powernv-cpufreq.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/cpufreq/powernv-cpufreq.c ++++ b/drivers/cpufreq/powernv-cpufreq.c +@@ -260,9 +260,9 @@ static int init_powernv_pstates(void) + + if (id == pstate_max) + powernv_pstate_info.max = i; +- else if (id == pstate_nominal) ++ if (id == pstate_nominal) + powernv_pstate_info.nominal = i; +- else if (id == pstate_min) ++ if (id == pstate_min) + powernv_pstate_info.min = i; + } + diff --git a/queue-4.9/ocfs2-try-a-blocking-lock-before-return-aop_truncated_page.patch b/queue-4.9/ocfs2-try-a-blocking-lock-before-return-aop_truncated_page.patch new file mode 100644 index 00000000000..2eb5e1ee5f5 --- /dev/null +++ b/queue-4.9/ocfs2-try-a-blocking-lock-before-return-aop_truncated_page.patch @@ -0,0 +1,137 @@ +From ff26cc10aec128c3f86b5611fd5f59c71d49c0e3 Mon Sep 17 00:00:00 2001 +From: Gang He +Date: Wed, 31 Jan 2018 16:14:48 -0800 +Subject: ocfs2: try a blocking lock before return AOP_TRUNCATED_PAGE + +From: Gang He + +commit ff26cc10aec128c3f86b5611fd5f59c71d49c0e3 upstream. + +If we can't get inode lock immediately in the function +ocfs2_inode_lock_with_page() when reading a page, we should not return +directly here, since this will lead to a softlockup problem when the +kernel is configured with CONFIG_PREEMPT is not set. The method is to +get a blocking lock and immediately unlock before returning, this can +avoid CPU resource waste due to lots of retries, and benefits fairness +in getting lock among multiple nodes, increase efficiency in case +modifying the same file frequently from multiple nodes. + +The softlockup crash (when set /proc/sys/kernel/softlockup_panic to 1) +looks like: + + Kernel panic - not syncing: softlockup: hung tasks + CPU: 0 PID: 885 Comm: multi_mmap Tainted: G L 4.12.14-6.1-default #1 + Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 + Call Trace: + + dump_stack+0x5c/0x82 + panic+0xd5/0x21e + watchdog_timer_fn+0x208/0x210 + __hrtimer_run_queues+0xcc/0x200 + hrtimer_interrupt+0xa6/0x1f0 + smp_apic_timer_interrupt+0x34/0x50 + apic_timer_interrupt+0x96/0xa0 + + RIP: 0010:unlock_page+0x17/0x30 + RSP: 0000:ffffaf154080bc88 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff10 + RAX: dead000000000100 RBX: fffff21e009f5300 RCX: 0000000000000004 + RDX: dead0000000000ff RSI: 0000000000000202 RDI: fffff21e009f5300 + RBP: 0000000000000000 R08: 0000000000000000 R09: ffffaf154080bb00 + R10: ffffaf154080bc30 R11: 0000000000000040 R12: ffff993749a39518 + R13: 0000000000000000 R14: fffff21e009f5300 R15: fffff21e009f5300 + ocfs2_inode_lock_with_page+0x25/0x30 [ocfs2] + ocfs2_readpage+0x41/0x2d0 [ocfs2] + filemap_fault+0x12b/0x5c0 + ocfs2_fault+0x29/0xb0 [ocfs2] + __do_fault+0x1a/0xa0 + __handle_mm_fault+0xbe8/0x1090 + handle_mm_fault+0xaa/0x1f0 + __do_page_fault+0x235/0x4b0 + trace_do_page_fault+0x3c/0x110 + async_page_fault+0x28/0x30 + RIP: 0033:0x7fa75ded638e + RSP: 002b:00007ffd6657db18 EFLAGS: 00010287 + RAX: 000055c7662fb700 RBX: 0000000000000001 RCX: 000055c7662fb700 + RDX: 0000000000001770 RSI: 00007fa75e909000 RDI: 000055c7662fb700 + RBP: 0000000000000003 R08: 000000000000000e R09: 0000000000000000 + R10: 0000000000000483 R11: 00007fa75ded61b0 R12: 00007fa75e90a770 + R13: 000000000000000e R14: 0000000000001770 R15: 0000000000000000 + +About performance improvement, we can see the testing time is reduced, +and CPU utilization decreases, the detailed data is as follows. I ran +multi_mmap test case in ocfs2-test package in a three nodes cluster. + +Before applying this patch: + PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND + 2754 ocfs2te+ 20 0 170248 6980 4856 D 80.73 0.341 0:18.71 multi_mmap + 1505 root rt 0 222236 123060 97224 S 2.658 6.015 0:01.44 corosync + 5 root 20 0 0 0 0 S 1.329 0.000 0:00.19 kworker/u8:0 + 95 root 20 0 0 0 0 S 1.329 0.000 0:00.25 kworker/u8:1 + 2728 root 20 0 0 0 0 S 0.997 0.000 0:00.24 jbd2/sda1-33 + 2721 root 20 0 0 0 0 S 0.664 0.000 0:00.07 ocfs2dc-3C8CFD4 + 2750 ocfs2te+ 20 0 142976 4652 3532 S 0.664 0.227 0:00.28 mpirun + + ocfs2test@tb-node2:~>multiple_run.sh -i ens3 -k ~/linux-4.4.21-69.tar.gz -o ~/ocfs2mullog -C hacluster -s pcmk -n tb-node2,tb-node1,tb-node3 -d /dev/sda1 -b 4096 -c 32768 -t multi_mmap /mnt/shared + Tests with "-b 4096 -C 32768" + Thu Dec 28 14:44:52 CST 2017 + multi_mmap..................................................Passed. + Runtime 783 seconds. + +After apply this patch: + + PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND + 2508 ocfs2te+ 20 0 170248 6804 4680 R 54.00 0.333 0:55.37 multi_mmap + 155 root 20 0 0 0 0 S 2.667 0.000 0:01.20 kworker/u8:3 + 95 root 20 0 0 0 0 S 2.000 0.000 0:01.58 kworker/u8:1 + 2504 ocfs2te+ 20 0 142976 4604 3480 R 1.667 0.225 0:01.65 mpirun + 5 root 20 0 0 0 0 S 1.000 0.000 0:01.36 kworker/u8:0 + 2482 root 20 0 0 0 0 S 1.000 0.000 0:00.86 jbd2/sda1-33 + 299 root 0 -20 0 0 0 S 0.333 0.000 0:00.13 kworker/2:1H + 335 root 0 -20 0 0 0 S 0.333 0.000 0:00.17 kworker/1:1H + 535 root 20 0 12140 7268 1456 S 0.333 0.355 0:00.34 haveged + 1282 root rt 0 222284 123108 97224 S 0.333 6.017 0:01.33 corosync + + ocfs2test@tb-node2:~>multiple_run.sh -i ens3 -k ~/linux-4.4.21-69.tar.gz -o ~/ocfs2mullog -C hacluster -s pcmk -n tb-node2,tb-node1,tb-node3 -d /dev/sda1 -b 4096 -c 32768 -t multi_mmap /mnt/shared + Tests with "-b 4096 -C 32768" + Thu Dec 28 15:04:12 CST 2017 + multi_mmap..................................................Passed. + Runtime 487 seconds. + +Link: http://lkml.kernel.org/r/1514447305-30814-1-git-send-email-ghe@suse.com +Fixes: 1cce4df04f37 ("ocfs2: do not lock/unlock() inode DLM lock") +Signed-off-by: Gang He +Reviewed-by: Eric Ren +Acked-by: alex chen +Acked-by: piaojun +Cc: Mark Fasheh +Cc: Joel Becker +Cc: Junxiao Bi +Cc: Joseph Qi +Cc: Changwei Ge +Cc: +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ocfs2/dlmglue.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/fs/ocfs2/dlmglue.c ++++ b/fs/ocfs2/dlmglue.c +@@ -2485,6 +2485,15 @@ int ocfs2_inode_lock_with_page(struct in + ret = ocfs2_inode_lock_full(inode, ret_bh, ex, OCFS2_LOCK_NONBLOCK); + if (ret == -EAGAIN) { + unlock_page(page); ++ /* ++ * If we can't get inode lock immediately, we should not return ++ * directly here, since this will lead to a softlockup problem. ++ * The method is to get a blocking lock and immediately unlock ++ * before returning, this can avoid CPU resource waste due to ++ * lots of retries, and benefits fairness in getting lock. ++ */ ++ if (ocfs2_inode_lock(inode, ret_bh, ex) == 0) ++ ocfs2_inode_unlock(inode, ex); + ret = AOP_TRUNCATED_PAGE; + } + diff --git a/queue-4.9/pm-devfreq-propagate-error-from-devfreq_add_device.patch b/queue-4.9/pm-devfreq-propagate-error-from-devfreq_add_device.patch new file mode 100644 index 00000000000..97ee9637fcd --- /dev/null +++ b/queue-4.9/pm-devfreq-propagate-error-from-devfreq_add_device.patch @@ -0,0 +1,35 @@ +From d1bf2d30728f310f72296b54f0651ecdb09cbb12 Mon Sep 17 00:00:00 2001 +From: Bjorn Andersson +Date: Sun, 5 Nov 2017 21:27:41 -0800 +Subject: PM / devfreq: Propagate error from devfreq_add_device() + +From: Bjorn Andersson + +commit d1bf2d30728f310f72296b54f0651ecdb09cbb12 upstream. + +Propagate the error of devfreq_add_device() in devm_devfreq_add_device() +rather than statically returning ENOMEM. This makes it slightly faster +to pinpoint the cause of a returned error. + +Fixes: 8cd84092d35e ("PM / devfreq: Add resource-managed function for devfreq device") +Cc: stable@vger.kernel.org +Acked-by: Chanwoo Choi +Signed-off-by: Bjorn Andersson +Signed-off-by: MyungJoo Ham +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/devfreq/devfreq.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/devfreq/devfreq.c ++++ b/drivers/devfreq/devfreq.c +@@ -684,7 +684,7 @@ struct devfreq *devm_devfreq_add_device( + devfreq = devfreq_add_device(dev, profile, governor_name, data); + if (IS_ERR(devfreq)) { + devres_free(ptr); +- return ERR_PTR(-ENOMEM); ++ return devfreq; + } + + *ptr = devfreq; diff --git a/queue-4.9/s390-fix-handling-of-1-in-set-fs-id16-syscalls.patch b/queue-4.9/s390-fix-handling-of-1-in-set-fs-id16-syscalls.patch new file mode 100644 index 00000000000..bda9348d1ab --- /dev/null +++ b/queue-4.9/s390-fix-handling-of-1-in-set-fs-id16-syscalls.patch @@ -0,0 +1,62 @@ +From 6dd0d2d22aa363fec075cb2577ba273ac8462e94 Mon Sep 17 00:00:00 2001 +From: Eugene Syromiatnikov +Date: Mon, 15 Jan 2018 20:38:17 +0100 +Subject: s390: fix handling of -1 in set{,fs}[gu]id16 syscalls + +From: Eugene Syromiatnikov + +commit 6dd0d2d22aa363fec075cb2577ba273ac8462e94 upstream. + +For some reason, the implementation of some 16-bit ID system calls +(namely, setuid16/setgid16 and setfsuid16/setfsgid16) used type cast +instead of low2highgid/low2highuid macros for converting [GU]IDs, which +led to incorrect handling of value of -1 (which ought to be considered +invalid). + +Discovered by strace test suite. + +Cc: stable@vger.kernel.org +Signed-off-by: Eugene Syromiatnikov +Signed-off-by: Heiko Carstens +Signed-off-by: Martin Schwidefsky +Signed-off-by: Greg Kroah-Hartman + +--- + arch/s390/kernel/compat_linux.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/arch/s390/kernel/compat_linux.c ++++ b/arch/s390/kernel/compat_linux.c +@@ -110,7 +110,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setregid16, + + COMPAT_SYSCALL_DEFINE1(s390_setgid16, u16, gid) + { +- return sys_setgid((gid_t)gid); ++ return sys_setgid(low2highgid(gid)); + } + + COMPAT_SYSCALL_DEFINE2(s390_setreuid16, u16, ruid, u16, euid) +@@ -120,7 +120,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setreuid16, + + COMPAT_SYSCALL_DEFINE1(s390_setuid16, u16, uid) + { +- return sys_setuid((uid_t)uid); ++ return sys_setuid(low2highuid(uid)); + } + + COMPAT_SYSCALL_DEFINE3(s390_setresuid16, u16, ruid, u16, euid, u16, suid) +@@ -173,12 +173,12 @@ COMPAT_SYSCALL_DEFINE3(s390_getresgid16, + + COMPAT_SYSCALL_DEFINE1(s390_setfsuid16, u16, uid) + { +- return sys_setfsuid((uid_t)uid); ++ return sys_setfsuid(low2highuid(uid)); + } + + COMPAT_SYSCALL_DEFINE1(s390_setfsgid16, u16, gid) + { +- return sys_setfsgid((gid_t)gid); ++ return sys_setfsgid(low2highgid(gid)); + } + + static int groups16_to_user(u16 __user *grouplist, struct group_info *group_info) diff --git a/queue-4.9/series b/queue-4.9/series index 85bdee3958c..b9ae6eba924 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -4,3 +4,14 @@ ib-qib-fix-comparison-error-with-qperf-compare-swap-test.patch ib-mlx4-fix-incorrectly-releasing-steerable-ud-qps-when-have-only-eth-ports.patch kselftest-fix-oom-in-memory-compaction-test.patch rdma-rxe-fix-a-race-condition-related-to-the-qp-error-state.patch +cpufreq-powernv-dont-assume-distinct-pstate-values-for-nominal-and-pmin.patch +pm-devfreq-propagate-error-from-devfreq_add_device.patch +ocfs2-try-a-blocking-lock-before-return-aop_truncated_page.patch +s390-fix-handling-of-1-in-set-fs-id16-syscalls.patch +arm64-dts-msm8916-correct-ipc-references-for-smsm.patch +arm-lpc3250-fix-uda1380-gpio-numbers.patch +arm-dts-sti-add-gpio-polarity-for-hdmi-hpd-gpio-property.patch +arm-dts-nomadik-add-interrupt-parent-for-clcd.patch +arm-spear600-add-missing-interrupt-parent-of-rtc.patch +arm-spear13xx-fix-dmas-cells.patch +arm-spear13xx-fix-spics-gpio-controller-s-warning.patch