]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.6
authorSasha Levin <sashal@kernel.org>
Fri, 29 May 2020 15:05:00 +0000 (11:05 -0400)
committerSasha Levin <sashal@kernel.org>
Fri, 29 May 2020 15:05:00 +0000 (11:05 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
41 files changed:
queue-5.6/alsa-usb-audio-add-mapping-for-asrock-trx40-creator.patch [new file with mode: 0644]
queue-5.6/arm-dts-omap4-droid4-fix-flakey-wlan-by-disabling-in.patch [new file with mode: 0644]
queue-5.6/arm-dts-omap4-droid4-fix-occasional-lost-wakeirq-for.patch [new file with mode: 0644]
queue-5.6/arm-dts-rockchip-fix-phy-nodename-for-rk3228-evb.patch [new file with mode: 0644]
queue-5.6/arm-dts-rockchip-fix-phy-nodename-for-rk3229-xms6.patch [new file with mode: 0644]
queue-5.6/arm-dts-rockchip-fix-pinctrl-sub-nodename-for-spi-in.patch [new file with mode: 0644]
queue-5.6/arm-dts-rockchip-swap-clock-names-of-gpu-nodes.patch [new file with mode: 0644]
queue-5.6/arm64-dts-qcom-db820c-fix-audio-configuration.patch [new file with mode: 0644]
queue-5.6/arm64-dts-rockchip-fix-status-for-gmac2phy-in-rk3328.patch [new file with mode: 0644]
queue-5.6/arm64-dts-rockchip-swap-interrupts-interrupt-names-r.patch [new file with mode: 0644]
queue-5.6/cachefiles-fix-race-between-read_waiter-and-read_cop.patch [new file with mode: 0644]
queue-5.6/cifs-fix-null-pointer-check-in-cifs_read.patch [new file with mode: 0644]
queue-5.6/clk-ti-am33xx-fix-rtc-clock-parent.patch [new file with mode: 0644]
queue-5.6/csky-fixup-msa-highest-3-bits-mask.patch [new file with mode: 0644]
queue-5.6/csky-fixup-perf-callchain-unwind.patch [new file with mode: 0644]
queue-5.6/csky-fixup-raw_copy_from_user.patch [new file with mode: 0644]
queue-5.6/csky-fixup-remove-duplicate-irq_disable.patch [new file with mode: 0644]
queue-5.6/drivers-net-hamradio-fix-suspicious-rcu-usage-warnin.patch [new file with mode: 0644]
queue-5.6/drm-amd-amdgpu-update-update_config-logic.patch [new file with mode: 0644]
queue-5.6/drm-amd-powerplay-perform-pg-ungate-prior-to-cg-unga.patch [new file with mode: 0644]
queue-5.6/drm-amdgpu-drop-unnecessary-cancel_delayed_work_sync.patch [new file with mode: 0644]
queue-5.6/drm-amdgpu-use-gem-obj-reference-for-kfd-bos.patch [new file with mode: 0644]
queue-5.6/drm-meson-pm-resume-add-return-errno-branch.patch [new file with mode: 0644]
queue-5.6/gfs2-don-t-call-quota_unhold-if-quotas-are-not-locke.patch [new file with mode: 0644]
queue-5.6/gfs2-grab-glock-reference-sooner-in-gfs2_add_revoke.patch [new file with mode: 0644]
queue-5.6/gfs2-move-privileged-user-check-to-gfs2_quota_lock_c.patch [new file with mode: 0644]
queue-5.6/gpio-tegra-mask-gpio-irqs-during-irq-shutdown.patch [new file with mode: 0644]
queue-5.6/hwmon-nct7904-fix-incorrect-range-of-temperature-lim.patch [new file with mode: 0644]
queue-5.6/ib-i40iw-remove-bogus-call-to-netdev_master_upper_de.patch [new file with mode: 0644]
queue-5.6/kselftests-dmabuf-heaps-fix-confused-return-value-on.patch [new file with mode: 0644]
queue-5.6/net-freescale-select-config_fixed_phy-where-needed.patch [new file with mode: 0644]
queue-5.6/net-microchip-encx24j600-add-missed-kthread_stop.patch [new file with mode: 0644]
queue-5.6/riscv-add-pgprot_writecombine-device-and-page_shared.patch [new file with mode: 0644]
queue-5.6/riscv-fix-unmet-direct-dependencies-built-based-on-s.patch [new file with mode: 0644]
queue-5.6/riscv-pgtable-fix-__kernel_map_pages-build-error-if-.patch [new file with mode: 0644]
queue-5.6/riscv-stacktrace-fix-undefined-reference-to-walk_sta.patch [new file with mode: 0644]
queue-5.6/samples-bpf-fix-build-error.patch [new file with mode: 0644]
queue-5.6/series
queue-5.6/usb-dwc3-pci-enable-extcon-driver-for-intel-merrifie.patch [new file with mode: 0644]
queue-5.6/usb-gadget-legacy-fix-redundant-initialization-warni.patch [new file with mode: 0644]
queue-5.6/usb-phy-twl6030-usb-fix-a-resource-leak-in-an-error-.patch [new file with mode: 0644]

diff --git a/queue-5.6/alsa-usb-audio-add-mapping-for-asrock-trx40-creator.patch b/queue-5.6/alsa-usb-audio-add-mapping-for-asrock-trx40-creator.patch
new file mode 100644 (file)
index 0000000..469c3a8
--- /dev/null
@@ -0,0 +1,60 @@
+From 1cd2aa22e66967ede8719d0286278ad58f12af11 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 3 May 2020 15:16:39 +0100
+Subject: ALSA: usb-audio: add mapping for ASRock TRX40 Creator
+
+From: Andrew Oakley <andrew@adoakley.name>
+
+[ Upstream commit da7a8f1a8fc3e14c6dcc52b4098bddb8f20390be ]
+
+This is another TRX40 based motherboard with ALC1220-VB USB-audio
+that requires a static mapping table.
+
+This motherboard also has a PCI device which advertises no codecs.  The
+PCI ID is 1022:1487 and PCI SSID is 1022:d102.  As this is using the AMD
+vendor ID, don't blacklist for now in case other boards have a working
+audio device with the same ssid.
+
+alsa-info.sh report for this board:
+http://alsa-project.org/db/?f=0a742f89066527497b77ce16bca486daccf8a70c
+
+Signed-off-by: Andrew Oakley <andrew@adoakley.name>
+Link: https://lore.kernel.org/r/20200503141639.35519-1-andrew@adoakley.name
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/usb/mixer_maps.c   | 5 +++++
+ sound/usb/quirks-table.h | 1 +
+ 2 files changed, 6 insertions(+)
+
+diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c
+index 0260c750e156..bfdc6ad52785 100644
+--- a/sound/usb/mixer_maps.c
++++ b/sound/usb/mixer_maps.c
+@@ -549,6 +549,11 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = {
+               .map = trx40_mobo_map,
+               .connector_map = trx40_mobo_connector_map,
+       },
++      {       /* Asrock TRX40 Creator */
++              .id = USB_ID(0x26ce, 0x0a01),
++              .map = trx40_mobo_map,
++              .connector_map = trx40_mobo_connector_map,
++      },
+       { 0 } /* terminator */
+ };
+diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
+index 8c2f5c23e1b4..aa4c16ce0e57 100644
+--- a/sound/usb/quirks-table.h
++++ b/sound/usb/quirks-table.h
+@@ -3647,6 +3647,7 @@ AU0828_DEVICE(0x2040, 0x7270, "Hauppauge", "HVR-950Q"),
+ ALC1220_VB_DESKTOP(0x0414, 0xa002), /* Gigabyte TRX40 Aorus Pro WiFi */
+ ALC1220_VB_DESKTOP(0x0db0, 0x0d64), /* MSI TRX40 Creator */
+ ALC1220_VB_DESKTOP(0x0db0, 0x543d), /* MSI TRX40 */
++ALC1220_VB_DESKTOP(0x26ce, 0x0a01), /* Asrock TRX40 Creator */
+ #undef ALC1220_VB_DESKTOP
+ #undef USB_DEVICE_VENDOR_SPEC
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm-dts-omap4-droid4-fix-flakey-wlan-by-disabling-in.patch b/queue-5.6/arm-dts-omap4-droid4-fix-flakey-wlan-by-disabling-in.patch
new file mode 100644 (file)
index 0000000..ee1cce6
--- /dev/null
@@ -0,0 +1,80 @@
+From bc93e7b82462cf3aa375f4b5eeacc8aaa1338590 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 18 Apr 2020 10:52:48 -0700
+Subject: ARM: dts: omap4-droid4: Fix flakey wlan by disabling internal pull
+ for gpio
+
+From: Tony Lindgren <tony@atomide.com>
+
+[ Upstream commit 30fa60c678eaa27b8f2a531920d77f7184658f73 ]
+
+The wlan on droid4 is flakey on some devices, and experiments have shown this
+gets fixed if we disable the internal pull for wlan gpio interrupt line.
+
+The symptoms are that the wlan connection is very slow and almost useless
+with lots of wlcore firmware reboot warnings in the dmesg.
+
+In addition to configuring the wlan gpio pulls, let's also configure the rest
+of the wlan sd pins. We have not configured those eariler as we're booting
+using kexec.
+
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ .../boot/dts/motorola-mapphone-common.dtsi    | 33 +++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/arch/arm/boot/dts/motorola-mapphone-common.dtsi b/arch/arm/boot/dts/motorola-mapphone-common.dtsi
+index 9067e0ef4240..01ea9a1e2c86 100644
+--- a/arch/arm/boot/dts/motorola-mapphone-common.dtsi
++++ b/arch/arm/boot/dts/motorola-mapphone-common.dtsi
+@@ -367,6 +367,8 @@
+ };
+ &mmc3 {
++      pinctrl-names = "default";
++      pinctrl-0 = <&mmc3_pins>;
+       vmmc-supply = <&wl12xx_vmmc>;
+       /* uart2_tx.sdmmc3_dat1 pad as wakeirq */
+       interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
+@@ -472,6 +474,37 @@
+               >;
+       };
++      /*
++       * Android uses PIN_OFF_INPUT_PULLDOWN | PIN_INPUT_PULLUP | MUX_MODE3
++       * for gpio_100, but the internal pull makes wlan flakey on some
++       * devices. Off mode value should be tested if we have off mode working
++       * later on.
++       */
++      mmc3_pins: pinmux_mmc3_pins {
++              pinctrl-single,pins = <
++              /* 0x4a10008e gpmc_wait2.gpio_100 d23 */
++              OMAP4_IOPAD(0x08e, PIN_INPUT | MUX_MODE3)
++
++              /* 0x4a100102 abe_mcbsp1_dx.sdmmc3_dat2 ab25 */
++              OMAP4_IOPAD(0x102, PIN_INPUT_PULLUP | MUX_MODE1)
++
++              /* 0x4a100104 abe_mcbsp1_fsx.sdmmc3_dat3 ac27 */
++              OMAP4_IOPAD(0x104, PIN_INPUT_PULLUP | MUX_MODE1)
++
++              /* 0x4a100118 uart2_cts.sdmmc3_clk ab26 */
++              OMAP4_IOPAD(0x118, PIN_INPUT | MUX_MODE1)
++
++              /* 0x4a10011a uart2_rts.sdmmc3_cmd ab27 */
++              OMAP4_IOPAD(0x11a, PIN_INPUT_PULLUP | MUX_MODE1)
++
++              /* 0x4a10011c uart2_rx.sdmmc3_dat0 aa25 */
++              OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE1)
++
++              /* 0x4a10011e uart2_tx.sdmmc3_dat1 aa26 */
++              OMAP4_IOPAD(0x11e, PIN_INPUT_PULLUP | MUX_MODE1)
++              >;
++      };
++
+       /* gpmc_ncs0.gpio_50 */
+       poweroff_gpio: pinmux_poweroff_pins {
+               pinctrl-single,pins = <
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm-dts-omap4-droid4-fix-occasional-lost-wakeirq-for.patch b/queue-5.6/arm-dts-omap4-droid4-fix-occasional-lost-wakeirq-for.patch
new file mode 100644 (file)
index 0000000..4745aa5
--- /dev/null
@@ -0,0 +1,65 @@
+From 58b43c229cd771ba32dab2a768ae3582da79cece Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 30 Apr 2020 09:52:33 -0700
+Subject: ARM: dts: omap4-droid4: Fix occasional lost wakeirq for uart1
+
+From: Tony Lindgren <tony@atomide.com>
+
+[ Upstream commit 738b150ecefbffb6e55cfa8a3b66a844f777d8fb ]
+
+Looks like using the UART CTS pin does not always trigger for a wake-up
+when the SoC is idle.
+
+This is probably because the modem first uses gpio_149 to signal the SoC
+that data will be sent, and the CTS will only get used later when the
+data transfer is starting.
+
+Let's fix the issue by configuring the gpio_149 pad as the wakeirq for
+UART. We have gpio_149 managed by the USB PHY for powering up the right
+USB mode, and after that, the gpio gets recycled as the modem wake-up
+pin. If needeed, the USB PHY can also later on be configured to use
+gpio_149 pad as the wakeirq as a shared irq.
+
+Let's also configure the missing properties for uart-has-rtscts and
+current-speed for the modem port while at it. We already configure the
+hardware flow control pins with uart1_pins pinctrl setting.
+
+Cc: maemo-leste@lists.dyne.org
+Cc: Merlijn Wajer <merlijn@wizzup.org>
+Cc: Pavel Machek <pavel@ucw.cz>
+Cc: Sebastian Reichel <sre@kernel.org>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/motorola-mapphone-common.dtsi | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/boot/dts/motorola-mapphone-common.dtsi b/arch/arm/boot/dts/motorola-mapphone-common.dtsi
+index 01ea9a1e2c86..06fbffa81636 100644
+--- a/arch/arm/boot/dts/motorola-mapphone-common.dtsi
++++ b/arch/arm/boot/dts/motorola-mapphone-common.dtsi
+@@ -723,14 +723,18 @@
+ };
+ /*
+- * As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for
+- * uart1 wakeirq.
++ * The uart1 port is wired to mdm6600 with rts and cts. The modem uses gpio_149
++ * for wake-up events for both the USB PHY and the UART. We can use gpio_149
++ * pad as the shared wakeirq for the UART rather than the RX or CTS pad as we
++ * have gpio_149 trigger before the UART transfer starts.
+  */
+ &uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+       interrupts-extended = <&wakeupgen GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH
+-                             &omap4_pmx_core 0xfc>;
++                             &omap4_pmx_core 0x110>;
++      uart-has-rtscts;
++      current-speed = <115200>;
+ };
+ &uart3 {
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm-dts-rockchip-fix-phy-nodename-for-rk3228-evb.patch b/queue-5.6/arm-dts-rockchip-fix-phy-nodename-for-rk3228-evb.patch
new file mode 100644 (file)
index 0000000..3d3e1f5
--- /dev/null
@@ -0,0 +1,49 @@
+From 4b292d3dd84a32ac1236d3a2beba0ecf14bc0190 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 16 Apr 2020 19:03:20 +0200
+Subject: ARM: dts: rockchip: fix phy nodename for rk3228-evb
+
+From: Johan Jonker <jbx6244@gmail.com>
+
+[ Upstream commit 287e0d538fcec2f6e8eb1e565bf0749f3b90186d ]
+
+A test with the command below gives for example this error:
+
+arch/arm/boot/dts/rk3228-evb.dt.yaml: phy@0:
+'#phy-cells' is a required property
+
+The phy nodename is normally used by a phy-handle.
+This node is however compatible with
+"ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22"
+which is just been added to 'ethernet-phy.yaml'.
+So change nodename to 'ethernet-phy' for which '#phy-cells'
+is not a required property
+
+make ARCH=arm dtbs_check
+DT_SCHEMA_FILES=~/.local/lib/python3.5/site-packages/dtschema/schemas/
+phy/phy-provider.yaml
+
+Signed-off-by: Johan Jonker <jbx6244@gmail.com>
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Link: https://lore.kernel.org/r/20200416170321.4216-1-jbx6244@gmail.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/rk3228-evb.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/rk3228-evb.dts b/arch/arm/boot/dts/rk3228-evb.dts
+index 5670b33fd1bd..aed879db6c15 100644
+--- a/arch/arm/boot/dts/rk3228-evb.dts
++++ b/arch/arm/boot/dts/rk3228-evb.dts
+@@ -46,7 +46,7 @@
+               #address-cells = <1>;
+               #size-cells = <0>;
+-              phy: phy@0 {
++              phy: ethernet-phy@0 {
+                       compatible = "ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       clocks = <&cru SCLK_MAC_PHY>;
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm-dts-rockchip-fix-phy-nodename-for-rk3229-xms6.patch b/queue-5.6/arm-dts-rockchip-fix-phy-nodename-for-rk3229-xms6.patch
new file mode 100644 (file)
index 0000000..2d1ac72
--- /dev/null
@@ -0,0 +1,49 @@
+From 8b2782ede8a052260074b56fb2deb25e1f91915a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 16 Apr 2020 19:03:21 +0200
+Subject: ARM: dts: rockchip: fix phy nodename for rk3229-xms6
+
+From: Johan Jonker <jbx6244@gmail.com>
+
+[ Upstream commit 621c8d0c233e260232278a4cfd3380caa3c1da29 ]
+
+A test with the command below gives for example this error:
+
+arch/arm/boot/dts/rk3229-xms6.dt.yaml: phy@0:
+'#phy-cells' is a required property
+
+The phy nodename is normally used by a phy-handle.
+This node is however compatible with
+"ethernet-phy-id1234.d400", "ethernet-phy-ieee802.3-c22"
+which is just been added to 'ethernet-phy.yaml'.
+So change nodename to 'ethernet-phy' for which '#phy-cells'
+is not a required property
+
+make ARCH=arm dtbs_check
+DT_SCHEMA_FILES=~/.local/lib/python3.5/site-packages/dtschema/schemas/
+phy/phy-provider.yaml
+
+Signed-off-by: Johan Jonker <jbx6244@gmail.com>
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Link: https://lore.kernel.org/r/20200416170321.4216-2-jbx6244@gmail.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/rk3229-xms6.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/rk3229-xms6.dts b/arch/arm/boot/dts/rk3229-xms6.dts
+index 679fc2b00e5a..933ef69da32a 100644
+--- a/arch/arm/boot/dts/rk3229-xms6.dts
++++ b/arch/arm/boot/dts/rk3229-xms6.dts
+@@ -150,7 +150,7 @@
+               #address-cells = <1>;
+               #size-cells = <0>;
+-              phy: phy@0 {
++              phy: ethernet-phy@0 {
+                       compatible = "ethernet-phy-id1234.d400",
+                                    "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm-dts-rockchip-fix-pinctrl-sub-nodename-for-spi-in.patch b/queue-5.6/arm-dts-rockchip-fix-pinctrl-sub-nodename-for-spi-in.patch
new file mode 100644 (file)
index 0000000..e7b5939
--- /dev/null
@@ -0,0 +1,61 @@
+From 776383df535dcdecd7dab9a08a5bfd6423b4ff87 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 24 Apr 2020 14:39:23 +0200
+Subject: ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi
+
+From: Johan Jonker <jbx6244@gmail.com>
+
+[ Upstream commit 855bdca1781c79eb661f89c8944c4a719ce720e8 ]
+
+A test with the command below gives these errors:
+
+arch/arm/boot/dts/rk3229-evb.dt.yaml: spi-0:
+'#address-cells' is a required property
+arch/arm/boot/dts/rk3229-evb.dt.yaml: spi-1:
+'#address-cells' is a required property
+arch/arm/boot/dts/rk3229-xms6.dt.yaml: spi-0:
+'#address-cells' is a required property
+arch/arm/boot/dts/rk3229-xms6.dt.yaml: spi-1:
+'#address-cells' is a required property
+
+The $nodename pattern for spi nodes is
+"^spi(@.*|-[0-9a-f])*$". To prevent warnings rename
+'spi-0' and 'spi-1' pinctrl sub nodenames to
+'spi0' and 'spi1' in 'rk322x.dtsi'.
+
+make ARCH=arm dtbs_check
+DT_SCHEMA_FILES=Documentation/devicetree/bindings/spi/spi-controller.yaml
+
+Signed-off-by: Johan Jonker <jbx6244@gmail.com>
+Link: https://lore.kernel.org/r/20200424123923.8192-1-jbx6244@gmail.com
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/rk322x.dtsi | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
+index 729119952c68..a83f65486ad4 100644
+--- a/arch/arm/boot/dts/rk322x.dtsi
++++ b/arch/arm/boot/dts/rk322x.dtsi
+@@ -1033,7 +1033,7 @@
+                       };
+               };
+-              spi-0 {
++              spi0 {
+                       spi0_clk: spi0-clk {
+                               rockchip,pins = <0 RK_PB1 2 &pcfg_pull_up>;
+                       };
+@@ -1051,7 +1051,7 @@
+                       };
+               };
+-              spi-1 {
++              spi1 {
+                       spi1_clk: spi1-clk {
+                               rockchip,pins = <0 RK_PC7 2 &pcfg_pull_up>;
+                       };
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm-dts-rockchip-swap-clock-names-of-gpu-nodes.patch b/queue-5.6/arm-dts-rockchip-swap-clock-names-of-gpu-nodes.patch
new file mode 100644 (file)
index 0000000..061508b
--- /dev/null
@@ -0,0 +1,67 @@
+From 3c5ff83eb37ec308fc980a164ed9b0aa61a51907 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 25 Apr 2020 21:25:00 +0200
+Subject: ARM: dts: rockchip: swap clock-names of gpu nodes
+
+From: Johan Jonker <jbx6244@gmail.com>
+
+[ Upstream commit b14f3898d2c25a9b47a61fb879d0b1f3af92c59b ]
+
+Dts files with Rockchip 'gpu' nodes were manually verified.
+In order to automate this process arm,mali-utgard.txt
+has been converted to yaml. In the new setup dtbs_check with
+arm,mali-utgard.yaml expects clock-names values
+in the same order, so fix that.
+
+Signed-off-by: Johan Jonker <jbx6244@gmail.com>
+Link: https://lore.kernel.org/r/20200425192500.1808-1-jbx6244@gmail.com
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/boot/dts/rk3036.dtsi | 2 +-
+ arch/arm/boot/dts/rk322x.dtsi | 2 +-
+ arch/arm/boot/dts/rk3xxx.dtsi | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
+index cf36e25195b4..8c4b8f56c9e0 100644
+--- a/arch/arm/boot/dts/rk3036.dtsi
++++ b/arch/arm/boot/dts/rk3036.dtsi
+@@ -128,7 +128,7 @@
+               assigned-clocks = <&cru SCLK_GPU>;
+               assigned-clock-rates = <100000000>;
+               clocks = <&cru SCLK_GPU>, <&cru SCLK_GPU>;
+-              clock-names = "core", "bus";
++              clock-names = "bus", "core";
+               resets = <&cru SRST_GPU>;
+               status = "disabled";
+       };
+diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
+index 4e90efdc9630..729119952c68 100644
+--- a/arch/arm/boot/dts/rk322x.dtsi
++++ b/arch/arm/boot/dts/rk322x.dtsi
+@@ -561,7 +561,7 @@
+                                 "pp1",
+                                 "ppmmu1";
+               clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
+-              clock-names = "core", "bus";
++              clock-names = "bus", "core";
+               resets = <&cru SRST_GPU_A>;
+               status = "disabled";
+       };
+diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
+index 241f43e29c77..bb5ff10b9110 100644
+--- a/arch/arm/boot/dts/rk3xxx.dtsi
++++ b/arch/arm/boot/dts/rk3xxx.dtsi
+@@ -84,7 +84,7 @@
+               compatible = "arm,mali-400";
+               reg = <0x10090000 0x10000>;
+               clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>;
+-              clock-names = "core", "bus";
++              clock-names = "bus", "core";
+               assigned-clocks = <&cru ACLK_GPU>;
+               assigned-clock-rates = <100000000>;
+               resets = <&cru SRST_GPU>;
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm64-dts-qcom-db820c-fix-audio-configuration.patch b/queue-5.6/arm64-dts-qcom-db820c-fix-audio-configuration.patch
new file mode 100644 (file)
index 0000000..bac056f
--- /dev/null
@@ -0,0 +1,75 @@
+From 38c546b2491105b69026317a251bc16dbd1f8005 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 22 Apr 2020 11:19:22 +0100
+Subject: arm64: dts: qcom: db820c: fix audio configuration
+
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+
+[ Upstream commit 7710f80ecd9c74544a22557ab581cf603e713f51 ]
+
+After patch f864edff110d ("ASoC: qdsp6: q6routing: remove default routing")
+and 9b60441692d9 ("ASoC: qdsp6: q6asm-dai: only enable dais from device tree")
+asm dais and routing needs to be properly specified at device tree level.
+
+This patch fixes this.
+
+Tested-by: Vinod Koul <vkoul@kernel.org>
+Reviewed-by: Vinod Koul <vkoul@kernel.org>
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Link: https://lore.kernel.org/r/20200422101922.8894-1-srinivas.kandagatla@linaro.org
+Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 19 ++++++++++++++++++-
+ arch/arm64/boot/dts/qcom/msm8996.dtsi        |  2 ++
+ 2 files changed, 20 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
+index a85b85d85a5f..3c7c9b52623c 100644
+--- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
++++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
+@@ -908,10 +908,27 @@
+       status = "okay";
+ };
++&q6asmdai {
++      dai@0 {
++              reg = <0>;
++      };
++
++      dai@1 {
++              reg = <1>;
++      };
++
++      dai@2 {
++              reg = <2>;
++      };
++};
++
+ &sound {
+       compatible = "qcom,apq8096-sndcard";
+       model = "DB820c";
+-      audio-routing = "RX_BIAS", "MCLK";
++      audio-routing = "RX_BIAS", "MCLK",
++              "MM_DL1",  "MultiMedia1 Playback",
++              "MM_DL2",  "MultiMedia2 Playback",
++              "MultiMedia3 Capture", "MM_UL3";
+       mm1-dai-link {
+               link-name = "MultiMedia1";
+diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
+index 7ae082ea14ea..f925a6c7d293 100644
+--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
++++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
+@@ -2053,6 +2053,8 @@
+                                               reg = <APR_SVC_ASM>;
+                                               q6asmdai: dais {
+                                                       compatible = "qcom,q6asm-dais";
++                                                      #address-cells = <1>;
++                                                      #size-cells = <0>;
+                                                       #sound-dai-cells = <1>;
+                                                       iommus = <&lpass_q6_smmu 1>;
+                                               };
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm64-dts-rockchip-fix-status-for-gmac2phy-in-rk3328.patch b/queue-5.6/arm64-dts-rockchip-fix-status-for-gmac2phy-in-rk3328.patch
new file mode 100644 (file)
index 0000000..01c8af2
--- /dev/null
@@ -0,0 +1,37 @@
+From a0b2c1427547d601bec8dbc775141fb9e1eb4d25 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 25 Apr 2020 14:23:45 +0200
+Subject: arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
+
+From: Johan Jonker <jbx6244@gmail.com>
+
+[ Upstream commit c617ed88502d0b05149e7f32f3b3fd8a0663f7e2 ]
+
+The status was removed of the '&gmac2phy' node with the apply
+of a patch long time ago, so fix status for '&gmac2phy'
+in 'rk3328-evb.dts'.
+
+Signed-off-by: Johan Jonker <jbx6244@gmail.com>
+Link: https://lore.kernel.org/r/20200425122345.12902-2-jbx6244@gmail.com
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm64/boot/dts/rockchip/rk3328-evb.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
+index 6abc6f4a86cf..05265b38cc02 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3328-evb.dts
+@@ -86,7 +86,7 @@
+       assigned-clock-rate = <50000000>;
+       assigned-clocks = <&cru SCLK_MAC2PHY>;
+       assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
+-
++      status = "okay";
+ };
+ &i2c1 {
+-- 
+2.25.1
+
diff --git a/queue-5.6/arm64-dts-rockchip-swap-interrupts-interrupt-names-r.patch b/queue-5.6/arm64-dts-rockchip-swap-interrupts-interrupt-names-r.patch
new file mode 100644 (file)
index 0000000..059310a
--- /dev/null
@@ -0,0 +1,49 @@
+From 3d54f70254ba918494caf83278b35d97ebf8c784 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 25 Apr 2020 16:38:37 +0200
+Subject: arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
+
+From: Johan Jonker <jbx6244@gmail.com>
+
+[ Upstream commit c604fd810bda667bdc20b2c041917baa7803e0fb ]
+
+Dts files with Rockchip rk3399 'gpu' nodes were manually verified.
+In order to automate this process arm,mali-midgard.txt
+has been converted to yaml. In the new setup dtbs_check with
+arm,mali-midgard.yaml expects interrupts and interrupt-names values
+in the same order. Fix this for rk3399.
+
+make ARCH=arm64 dtbs_check
+DT_SCHEMA_FILES=Documentation/devicetree/bindings/gpu/
+arm,mali-midgard.yaml
+
+Signed-off-by: Johan Jonker <jbx6244@gmail.com>
+Link: https://lore.kernel.org/r/20200425143837.18706-1-jbx6244@gmail.com
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm64/boot/dts/rockchip/rk3399.dtsi | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+index 5c4238a80144..c341172ec208 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+@@ -1890,10 +1890,10 @@
+       gpu: gpu@ff9a0000 {
+               compatible = "rockchip,rk3399-mali", "arm,mali-t860";
+               reg = <0x0 0xff9a0000 0x0 0x10000>;
+-              interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
+-                           <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+-                           <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
+-              interrupt-names = "gpu", "job", "mmu";
++              interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
++                           <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>,
++                           <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
++              interrupt-names = "job", "mmu", "gpu";
+               clocks = <&cru ACLK_GPU>;
+               #cooling-cells = <2>;
+               power-domains = <&power RK3399_PD_GPU>;
+-- 
+2.25.1
+
diff --git a/queue-5.6/cachefiles-fix-race-between-read_waiter-and-read_cop.patch b/queue-5.6/cachefiles-fix-race-between-read_waiter-and-read_cop.patch
new file mode 100644 (file)
index 0000000..b3f7af6
--- /dev/null
@@ -0,0 +1,126 @@
+From dec290944d273ca8db25c1e3c87aac24b495c831 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 7 May 2020 08:50:22 -0400
+Subject: cachefiles: Fix race between read_waiter and read_copier involving
+ op->to_do
+
+From: Lei Xue <carmark.dlut@gmail.com>
+
+[ Upstream commit 7bb0c5338436dae953622470d52689265867f032 ]
+
+There is a potential race in fscache operation enqueuing for reading and
+copying multiple pages from cachefiles to netfs.  The problem can be seen
+easily on a heavy loaded system (for example many processes reading files
+continually on an NFS share covered by fscache triggered this problem within
+a few minutes).
+
+The race is due to cachefiles_read_waiter() adding the op to the monitor
+to_do list and then then drop the object->work_lock spinlock before
+completing fscache_enqueue_operation().  Once the lock is dropped,
+cachefiles_read_copier() grabs the op, completes processing it, and
+makes it through fscache_retrieval_complete() which sets the op->state to
+the final state of FSCACHE_OP_ST_COMPLETE(4).  When cachefiles_read_waiter()
+finally gets through the remainder of fscache_enqueue_operation()
+it sees the invalid state, and hits the ASSERTCMP and the following
+oops is seen:
+[ 2259.612361] FS-Cache:
+[ 2259.614785] FS-Cache: Assertion failed
+[ 2259.618639] FS-Cache: 4 == 5 is false
+[ 2259.622456] ------------[ cut here ]------------
+[ 2259.627190] kernel BUG at fs/fscache/operation.c:70!
+...
+[ 2259.791675] RIP: 0010:[<ffffffffc061b4cf>]  [<ffffffffc061b4cf>] fscache_enqueue_operation+0xff/0x170 [fscache]
+[ 2259.802059] RSP: 0000:ffffa0263d543be0  EFLAGS: 00010046
+[ 2259.807521] RAX: 0000000000000019 RBX: ffffa01a4d390480 RCX: 0000000000000006
+[ 2259.814847] RDX: 0000000000000000 RSI: 0000000000000046 RDI: ffffa0263d553890
+[ 2259.822176] RBP: ffffa0263d543be8 R08: 0000000000000000 R09: ffffa0263c2d8708
+[ 2259.829502] R10: 0000000000001e7f R11: 0000000000000000 R12: ffffa01a4d390480
+[ 2259.844483] R13: ffff9fa9546c5920 R14: ffffa0263d543c80 R15: ffffa0293ff9bf10
+[ 2259.859554] FS:  00007f4b6efbd700(0000) GS:ffffa0263d540000(0000) knlGS:0000000000000000
+[ 2259.875571] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+[ 2259.889117] CR2: 00007f49e1624ff0 CR3: 0000012b38b38000 CR4: 00000000007607e0
+[ 2259.904015] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+[ 2259.918764] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
+[ 2259.933449] PKRU: 55555554
+[ 2259.943654] Call Trace:
+[ 2259.953592]  <IRQ>
+[ 2259.955577]  [<ffffffffc03a7c12>] cachefiles_read_waiter+0x92/0xf0 [cachefiles]
+[ 2259.978039]  [<ffffffffa34d3942>] __wake_up_common+0x82/0x120
+[ 2259.991392]  [<ffffffffa34d3a63>] __wake_up_common_lock+0x83/0xc0
+[ 2260.004930]  [<ffffffffa34d3510>] ? task_rq_unlock+0x20/0x20
+[ 2260.017863]  [<ffffffffa34d3ab3>] __wake_up+0x13/0x20
+[ 2260.030230]  [<ffffffffa34c72a0>] __wake_up_bit+0x50/0x70
+[ 2260.042535]  [<ffffffffa35bdcdb>] unlock_page+0x2b/0x30
+[ 2260.054495]  [<ffffffffa35bdd09>] page_endio+0x29/0x90
+[ 2260.066184]  [<ffffffffa368fc81>] mpage_end_io+0x51/0x80
+
+CPU1
+cachefiles_read_waiter()
+ 20 static int cachefiles_read_waiter(wait_queue_entry_t *wait, unsigned mode,
+ 21                                   int sync, void *_key)
+ 22 {
+...
+ 61         spin_lock(&object->work_lock);
+ 62         list_add_tail(&monitor->op_link, &op->to_do);
+ 63         spin_unlock(&object->work_lock);
+<begin race window>
+ 64
+ 65         fscache_enqueue_retrieval(op);
+182 static inline void fscache_enqueue_retrieval(struct fscache_retrieval *op)
+183 {
+184         fscache_enqueue_operation(&op->op);
+185 }
+ 58 void fscache_enqueue_operation(struct fscache_operation *op)
+ 59 {
+ 60         struct fscache_cookie *cookie = op->object->cookie;
+ 61
+ 62         _enter("{OBJ%x OP%x,%u}",
+ 63                op->object->debug_id, op->debug_id, atomic_read(&op->usage));
+ 64
+ 65         ASSERT(list_empty(&op->pend_link));
+ 66         ASSERT(op->processor != NULL);
+ 67         ASSERT(fscache_object_is_available(op->object));
+ 68         ASSERTCMP(atomic_read(&op->usage), >, 0);
+<end race window>
+
+CPU2
+cachefiles_read_copier()
+168         while (!list_empty(&op->to_do)) {
+...
+202                 fscache_end_io(op, monitor->netfs_page, error);
+203                 put_page(monitor->netfs_page);
+204                 fscache_retrieval_complete(op, 1);
+
+CPU1
+ 58 void fscache_enqueue_operation(struct fscache_operation *op)
+ 59 {
+...
+ 69         ASSERTIFCMP(op->state != FSCACHE_OP_ST_IN_PROGRESS,
+ 70                     op->state, ==,  FSCACHE_OP_ST_CANCELLED);
+
+Signed-off-by: Lei Xue <carmark.dlut@gmail.com>
+Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/cachefiles/rdwr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c
+index d3d78176b23c..e7726f5f1241 100644
+--- a/fs/cachefiles/rdwr.c
++++ b/fs/cachefiles/rdwr.c
+@@ -60,9 +60,9 @@ static int cachefiles_read_waiter(wait_queue_entry_t *wait, unsigned mode,
+       object = container_of(op->op.object, struct cachefiles_object, fscache);
+       spin_lock(&object->work_lock);
+       list_add_tail(&monitor->op_link, &op->to_do);
++      fscache_enqueue_retrieval(op);
+       spin_unlock(&object->work_lock);
+-      fscache_enqueue_retrieval(op);
+       fscache_put_retrieval(op);
+       return 0;
+ }
+-- 
+2.25.1
+
diff --git a/queue-5.6/cifs-fix-null-pointer-check-in-cifs_read.patch b/queue-5.6/cifs-fix-null-pointer-check-in-cifs_read.patch
new file mode 100644 (file)
index 0000000..f14aeac
--- /dev/null
@@ -0,0 +1,36 @@
+From e32b477fc78ce11706974fc8a49a56a7c3276340 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 13 May 2020 10:27:16 -0500
+Subject: cifs: Fix null pointer check in cifs_read
+
+From: Steve French <stfrench@microsoft.com>
+
+[ Upstream commit 9bd21d4b1a767c3abebec203342f3820dcb84662 ]
+
+Coverity scan noted a redundant null check
+
+Coverity-id: 728517
+Reported-by: Coverity <scan-admin@coverity.com>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Reviewed-by: Shyam Prasad N <nspmangalore@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/cifs/file.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fs/cifs/file.c b/fs/cifs/file.c
+index 5920820bfbd0..b30b03747dd6 100644
+--- a/fs/cifs/file.c
++++ b/fs/cifs/file.c
+@@ -4060,7 +4060,7 @@ cifs_read(struct file *file, char *read_data, size_t read_size, loff_t *offset)
+                        * than it negotiated since it will refuse the read
+                        * then.
+                        */
+-                      if ((tcon->ses) && !(tcon->ses->capabilities &
++                      if (!(tcon->ses->capabilities &
+                               tcon->ses->server->vals->cap_large_files)) {
+                               current_read_size = min_t(uint,
+                                       current_read_size, CIFSMaxBufSize);
+-- 
+2.25.1
+
diff --git a/queue-5.6/clk-ti-am33xx-fix-rtc-clock-parent.patch b/queue-5.6/clk-ti-am33xx-fix-rtc-clock-parent.patch
new file mode 100644 (file)
index 0000000..deaed87
--- /dev/null
@@ -0,0 +1,41 @@
+From 98cf165b0cc22648bbc916ed6ad76ee6e82562c1 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 24 Apr 2020 18:23:01 +0300
+Subject: clk: ti: am33xx: fix RTC clock parent
+
+From: Tero Kristo <t-kristo@ti.com>
+
+[ Upstream commit dc6dbd51009fc412729c307161f442c0a08618f4 ]
+
+Right now, trying to use RTC purely with the ti-sysc / clkctrl framework
+fails to enable the RTC module properly. Based on experimentation, this
+appears to be because RTC is sourced from the clkdiv32k optional clock.
+TRM is not very clear on this topic, but fix the RTC to use the proper
+source clock nevertheless.
+
+Reported-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Tero Kristo <t-kristo@ti.com>
+Link: https://lkml.kernel.org/r/20200424152301.4018-1-t-kristo@ti.com
+Acked-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/clk/ti/clk-33xx.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/clk/ti/clk-33xx.c b/drivers/clk/ti/clk-33xx.c
+index e001b9bcb6bf..7dc30dd6c8d5 100644
+--- a/drivers/clk/ti/clk-33xx.c
++++ b/drivers/clk/ti/clk-33xx.c
+@@ -212,7 +212,7 @@ static const struct omap_clkctrl_reg_data am3_mpu_clkctrl_regs[] __initconst = {
+ };
+ static const struct omap_clkctrl_reg_data am3_l4_rtc_clkctrl_regs[] __initconst = {
+-      { AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk_32768_ck" },
++      { AM3_L4_RTC_RTC_CLKCTRL, NULL, CLKF_SW_SUP, "clk-24mhz-clkctrl:0000:0" },
+       { 0 },
+ };
+-- 
+2.25.1
+
diff --git a/queue-5.6/csky-fixup-msa-highest-3-bits-mask.patch b/queue-5.6/csky-fixup-msa-highest-3-bits-mask.patch
new file mode 100644 (file)
index 0000000..65cfd20
--- /dev/null
@@ -0,0 +1,58 @@
+From 8428fbf47288b09f939d1496bdbe126e16c7b7d3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 21 Apr 2020 15:56:28 +0800
+Subject: csky: Fixup msa highest 3 bits mask
+
+From: Liu Yibin <jiulong@linux.alibaba.com>
+
+[ Upstream commit 165f2d2858013253042809df082b8df7e34e86d7 ]
+
+Just as comment mentioned, the msa format:
+
+ cr<30/31, 15> MSA register format:
+ 31 - 29 | 28 - 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
+   BA     Reserved  SH  WA  B   SO SEC  C   D   V
+
+So we should shift 29 bits not 28 bits for mask
+
+Signed-off-by: Liu Yibin <jiulong@linux.alibaba.com>
+Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/csky/abiv1/inc/abi/entry.h | 4 ++--
+ arch/csky/abiv2/inc/abi/entry.h | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/csky/abiv1/inc/abi/entry.h b/arch/csky/abiv1/inc/abi/entry.h
+index 5056ebb902d1..61d94ec7dd16 100644
+--- a/arch/csky/abiv1/inc/abi/entry.h
++++ b/arch/csky/abiv1/inc/abi/entry.h
+@@ -167,8 +167,8 @@
+        *   BA     Reserved  C   D   V
+        */
+       cprcr   r6, cpcr30
+-      lsri    r6, 28
+-      lsli    r6, 28
++      lsri    r6, 29
++      lsli    r6, 29
+       addi    r6, 0xe
+       cpwcr   r6, cpcr30
+diff --git a/arch/csky/abiv2/inc/abi/entry.h b/arch/csky/abiv2/inc/abi/entry.h
+index 111973c6c713..9023828ede97 100644
+--- a/arch/csky/abiv2/inc/abi/entry.h
++++ b/arch/csky/abiv2/inc/abi/entry.h
+@@ -225,8 +225,8 @@
+        */
+       mfcr    r6, cr<30, 15> /* Get MSA0 */
+ 2:
+-      lsri    r6, 28
+-      lsli    r6, 28
++      lsri    r6, 29
++      lsli    r6, 29
+       addi    r6, 0x1ce
+       mtcr    r6, cr<30, 15> /* Set MSA0 */
+-- 
+2.25.1
+
diff --git a/queue-5.6/csky-fixup-perf-callchain-unwind.patch b/queue-5.6/csky-fixup-perf-callchain-unwind.patch
new file mode 100644 (file)
index 0000000..958f967
--- /dev/null
@@ -0,0 +1,93 @@
+From 1703c67ab2fa5da9d0f0cb05b219b4c3eca55c2d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 20 Apr 2020 12:55:23 +0800
+Subject: csky: Fixup perf callchain unwind
+
+From: Mao Han <han_mao@linux.alibaba.com>
+
+[ Upstream commit 229a0ddee1108a3f82a873e6cbbe35c92c540444 ]
+
+ [ 5221.974084] Unable to handle kernel paging request at virtual address 0xfffff000, pc: 0x8002c18e
+ [ 5221.985929] Oops: 00000000
+ [ 5221.989488]
+ [ 5221.989488] CURRENT PROCESS:
+ [ 5221.989488]
+ [ 5221.992877] COMM=callchain_test PID=11962
+ [ 5221.995213] TEXT=00008000-000087e0 DATA=00009f1c-0000a018 BSS=0000a018-0000b000
+ [ 5221.999037] USER-STACK=7fc18e20  KERNEL-STACK=be204680
+ [ 5221.999037]
+ [ 5222.003292] PC: 0x8002c18e (perf_callchain_kernel+0x3e/0xd4)
+ [ 5222.007957] LR: 0x8002c198 (perf_callchain_kernel+0x48/0xd4)
+ [ 5222.074873] Call Trace:
+ [ 5222.074873] [<800a248e>] get_perf_callchain+0x20a/0x29c
+ [ 5222.074873] [<8009d964>] perf_callchain+0x64/0x80
+ [ 5222.074873] [<8009dc1c>] perf_prepare_sample+0x29c/0x4b8
+ [ 5222.074873] [<8009de6e>] perf_event_output_forward+0x36/0x98
+ [ 5222.074873] [<800497e0>] search_exception_tables+0x20/0x44
+ [ 5222.074873] [<8002cbb6>] do_page_fault+0x92/0x378
+ [ 5222.074873] [<80098608>] __perf_event_overflow+0x54/0xdc
+ [ 5222.074873] [<80098778>] perf_swevent_hrtimer+0xe8/0x164
+ [ 5222.074873] [<8002ddd0>] update_mmu_cache+0x0/0xd8
+ [ 5222.074873] [<8002c014>] user_backtrace+0x58/0xc4
+ [ 5222.074873] [<8002c0b4>] perf_callchain_user+0x34/0xd0
+ [ 5222.074873] [<800a2442>] get_perf_callchain+0x1be/0x29c
+ [ 5222.074873] [<8009d964>] perf_callchain+0x64/0x80
+ [ 5222.074873] [<8009d834>] perf_output_sample+0x78c/0x858
+ [ 5222.074873] [<8009dc1c>] perf_prepare_sample+0x29c/0x4b8
+ [ 5222.074873] [<8009de94>] perf_event_output_forward+0x5c/0x98
+ [ 5222.097846]
+ [ 5222.097846] [<800a0300>] perf_event_exit_task+0x58/0x43c
+ [ 5222.097846] [<8006c874>] hrtimer_interrupt+0x104/0x2ec
+ [ 5222.097846] [<800a0300>] perf_event_exit_task+0x58/0x43c
+ [ 5222.097846] [<80437bb6>] dw_apb_clockevent_irq+0x2a/0x4c
+ [ 5222.097846] [<8006c770>] hrtimer_interrupt+0x0/0x2ec
+ [ 5222.097846] [<8005f2e4>] __handle_irq_event_percpu+0xac/0x19c
+ [ 5222.097846] [<80437bb6>] dw_apb_clockevent_irq+0x2a/0x4c
+ [ 5222.097846] [<8005f408>] handle_irq_event_percpu+0x34/0x88
+ [ 5222.097846] [<8005f480>] handle_irq_event+0x24/0x64
+ [ 5222.097846] [<8006218c>] handle_level_irq+0x68/0xdc
+ [ 5222.097846] [<8005ec76>] __handle_domain_irq+0x56/0xa8
+ [ 5222.097846] [<80450e90>] ck_irq_handler+0xac/0xe4
+ [ 5222.097846] [<80029012>] csky_do_IRQ+0x12/0x24
+ [ 5222.097846] [<8002a3a0>] csky_irq+0x70/0x80
+ [ 5222.097846] [<800ca612>] alloc_set_pte+0xd2/0x238
+ [ 5222.097846] [<8002ddd0>] update_mmu_cache+0x0/0xd8
+ [ 5222.097846] [<800a0340>] perf_event_exit_task+0x98/0x43c
+
+The original fp check doesn't base on the real kernal stack region.
+Invalid fp address may cause kernel panic.
+
+Signed-off-by: Mao Han <han_mao@linux.alibaba.com>
+Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/csky/kernel/perf_callchain.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/arch/csky/kernel/perf_callchain.c b/arch/csky/kernel/perf_callchain.c
+index e68ff375c8f8..ab55e98ee8f6 100644
+--- a/arch/csky/kernel/perf_callchain.c
++++ b/arch/csky/kernel/perf_callchain.c
+@@ -12,12 +12,17 @@ struct stackframe {
+ static int unwind_frame_kernel(struct stackframe *frame)
+ {
+-      if (kstack_end((void *)frame->fp))
++      unsigned long low = (unsigned long)task_stack_page(current);
++      unsigned long high = low + THREAD_SIZE;
++
++      if (unlikely(frame->fp < low || frame->fp > high))
+               return -EPERM;
+-      if (frame->fp & 0x3 || frame->fp < TASK_SIZE)
++
++      if (kstack_end((void *)frame->fp) || frame->fp & 0x3)
+               return -EPERM;
+       *frame = *(struct stackframe *)frame->fp;
++
+       if (__kernel_text_address(frame->lr)) {
+               int graph = 0;
+-- 
+2.25.1
+
diff --git a/queue-5.6/csky-fixup-raw_copy_from_user.patch b/queue-5.6/csky-fixup-raw_copy_from_user.patch
new file mode 100644 (file)
index 0000000..1b54c63
--- /dev/null
@@ -0,0 +1,237 @@
+From 51445ca58c4e839888b0f65d3891f1893369c4da Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 7 Apr 2020 02:40:11 +0100
+Subject: csky: Fixup raw_copy_from_user()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Al Viro <viro@zeniv.linux.org.uk>
+
+[ Upstream commit 51bb38cb78363fdad1f89e87357b7bc73e39ba88 ]
+
+If raw_copy_from_user(to, from, N) returns K, callers expect
+the first N - K bytes starting at to to have been replaced with
+the contents of corresponding area starting at from and the last
+K bytes of destination *left* *unmodified*.
+
+What arch/sky/lib/usercopy.c is doing is broken - it can lead to e.g.
+data corruption on write(2).
+
+raw_copy_to_user() is inaccurate about return value, which is a bug,
+but consequences are less drastic than for raw_copy_from_user().
+And just what are those access_ok() doing in there?  I mean, look into
+linux/uaccess.h; that's where we do that check (as well as zero tail
+on failure in the callers that need zeroing).
+
+AFAICS, all of that shouldn't be hard to fix; something like a patch
+below might make a useful starting point.
+
+I would suggest moving these macros into usercopy.c (they are never
+used anywhere else) and possibly expanding them there; if you leave
+them alive, please at least rename __copy_user_zeroing(). Again,
+it must not zero anything on failed read.
+
+Said that, I'm not sure we won't be better off simply turning
+usercopy.c into usercopy.S - all that is left there is a couple of
+functions, each consisting only of inline asm.
+
+Guo Ren reply:
+
+Yes, raw_copy_from_user is wrong, it's no need zeroing code.
+
+unsigned long _copy_from_user(void *to, const void __user *from,
+unsigned long n)
+{
+        unsigned long res = n;
+        might_fault();
+        if (likely(access_ok(from, n))) {
+                kasan_check_write(to, n);
+                res = raw_copy_from_user(to, from, n);
+        }
+        if (unlikely(res))
+                memset(to + (n - res), 0, res);
+        return res;
+}
+EXPORT_SYMBOL(_copy_from_user);
+
+You are right and access_ok() should be removed.
+
+but, how about:
+do {
+...
+        "2:     stw     %3, (%1, 0)     \n"             \
++       "       subi    %0, 4          \n"               \
+        "9:     stw     %4, (%1, 4)     \n"             \
++       "       subi    %0, 4          \n"               \
+        "10:    stw     %5, (%1, 8)     \n"             \
++       "       subi    %0, 4          \n"               \
+        "11:    stw     %6, (%1, 12)    \n"             \
++       "       subi    %0, 4          \n"               \
+        "       addi    %2, 16          \n"             \
+        "       addi    %1, 16          \n"             \
+
+Don't expand __ex_table
+
+AI Viro reply:
+
+Hey, I've no idea about the instruction scheduling on csky -
+if that doesn't slow the things down, all the better.  It's just
+that copy_to_user() and friends are on fairly hot codepaths,
+and in quite a few situations they will dominate the speed of
+e.g. read(2).  So I tried to keep the fast path unchanged.
+Up to the architecture maintainers, obviously.  Which would be
+you...
+
+As for the fixups size increase (__ex_table size is unchanged)...
+You have each of those macros expanded exactly once.
+So the size is not a serious argument, IMO - useless complexity
+would be, if it is, in fact, useless; the size... not really,
+especially since those extra subi will at least offset it.
+
+Again, up to you - asm optimizations of (essentially)
+memcpy()-style loops are tricky and can depend upon the
+fairly subtle details of architecture.  So even on something
+I know reasonably well I would resort to direct experiments
+if I can't pass the buck to architecture maintainers.
+
+It *is* worth optimizing - this is where read() from a file
+that is already in page cache spends most of the time, etc.
+
+Guo Ren reply:
+
+Thx, after fixup some typo “sub %0, 4”, apply the patch.
+
+TODO:
+ - user copy/from codes are still need optimizing.
+
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/csky/include/asm/uaccess.h | 49 +++++++++++++++++----------------
+ arch/csky/lib/usercopy.c        |  8 ++----
+ 2 files changed, 28 insertions(+), 29 deletions(-)
+
+diff --git a/arch/csky/include/asm/uaccess.h b/arch/csky/include/asm/uaccess.h
+index eaa1c3403a42..60f8a4112588 100644
+--- a/arch/csky/include/asm/uaccess.h
++++ b/arch/csky/include/asm/uaccess.h
+@@ -254,7 +254,7 @@ do {                                                               \
+ extern int __get_user_bad(void);
+-#define __copy_user(to, from, n)                      \
++#define ___copy_to_user(to, from, n)                  \
+ do {                                                  \
+       int w0, w1, w2, w3;                             \
+       asm volatile(                                   \
+@@ -289,31 +289,34 @@ do {                                                     \
+       "       subi    %0, 4           \n"             \
+       "       br      3b              \n"             \
+       "5:     cmpnei  %0, 0           \n"  /* 1B */   \
+-      "       bf      8f              \n"             \
++      "       bf      13f             \n"             \
+       "       ldb     %3, (%2, 0)     \n"             \
+       "6:     stb     %3, (%1, 0)     \n"             \
+       "       addi    %2,  1          \n"             \
+       "       addi    %1,  1          \n"             \
+       "       subi    %0,  1          \n"             \
+       "       br      5b              \n"             \
+-      "7:     br      8f              \n"             \
++      "7:     subi    %0,  4          \n"             \
++      "8:     subi    %0,  4          \n"             \
++      "12:    subi    %0,  4          \n"             \
++      "       br      13f             \n"             \
+       ".section __ex_table, \"a\"     \n"             \
+       ".align   2                     \n"             \
+-      ".long    2b, 7b                \n"             \
+-      ".long    9b, 7b                \n"             \
+-      ".long   10b, 7b                \n"             \
++      ".long    2b, 13f               \n"             \
++      ".long    4b, 13f               \n"             \
++      ".long    6b, 13f               \n"             \
++      ".long    9b, 12b               \n"             \
++      ".long   10b, 8b                \n"             \
+       ".long   11b, 7b                \n"             \
+-      ".long    4b, 7b                \n"             \
+-      ".long    6b, 7b                \n"             \
+       ".previous                      \n"             \
+-      "8:                             \n"             \
++      "13:                            \n"             \
+       : "=r"(n), "=r"(to), "=r"(from), "=r"(w0),      \
+         "=r"(w1), "=r"(w2), "=r"(w3)                  \
+       : "0"(n), "1"(to), "2"(from)                    \
+       : "memory");                                    \
+ } while (0)
+-#define __copy_user_zeroing(to, from, n)              \
++#define ___copy_from_user(to, from, n)                        \
+ do {                                                  \
+       int tmp;                                        \
+       int nsave;                                      \
+@@ -356,22 +359,22 @@ do {                                                     \
+       "       addi    %1,  1          \n"             \
+       "       subi    %0,  1          \n"             \
+       "       br      5b              \n"             \
+-      "8:     mov     %3, %0          \n"             \
+-      "       movi    %4, 0           \n"             \
+-      "9:     stb     %4, (%1, 0)     \n"             \
+-      "       addi    %1, 1           \n"             \
+-      "       subi    %3, 1           \n"             \
+-      "       cmpnei  %3, 0           \n"             \
+-      "       bt      9b              \n"             \
+-      "       br      7f              \n"             \
++      "8:     stw     %3, (%1, 0)     \n"             \
++      "       subi    %0, 4           \n"             \
++      "       bf      7f              \n"             \
++      "9:     subi    %0, 8           \n"             \
++      "       bf      7f              \n"             \
++      "13:    stw     %3, (%1, 8)     \n"             \
++      "       subi    %0, 12          \n"             \
++      "       bf      7f              \n"             \
+       ".section __ex_table, \"a\"     \n"             \
+       ".align   2                     \n"             \
+-      ".long    2b, 8b                \n"             \
++      ".long    2b, 7f                \n"             \
++      ".long    4b, 7f                \n"             \
++      ".long    6b, 7f                \n"             \
+       ".long   10b, 8b                \n"             \
+-      ".long   11b, 8b                \n"             \
+-      ".long   12b, 8b                \n"             \
+-      ".long    4b, 8b                \n"             \
+-      ".long    6b, 8b                \n"             \
++      ".long   11b, 9b                \n"             \
++      ".long   12b,13b                \n"             \
+       ".previous                      \n"             \
+       "7:                             \n"             \
+       : "=r"(n), "=r"(to), "=r"(from), "=r"(nsave),   \
+diff --git a/arch/csky/lib/usercopy.c b/arch/csky/lib/usercopy.c
+index 647a23986fb5..3c9bd645e643 100644
+--- a/arch/csky/lib/usercopy.c
++++ b/arch/csky/lib/usercopy.c
+@@ -7,10 +7,7 @@
+ unsigned long raw_copy_from_user(void *to, const void *from,
+                       unsigned long n)
+ {
+-      if (access_ok(from, n))
+-              __copy_user_zeroing(to, from, n);
+-      else
+-              memset(to, 0, n);
++      ___copy_from_user(to, from, n);
+       return n;
+ }
+ EXPORT_SYMBOL(raw_copy_from_user);
+@@ -18,8 +15,7 @@ EXPORT_SYMBOL(raw_copy_from_user);
+ unsigned long raw_copy_to_user(void *to, const void *from,
+                       unsigned long n)
+ {
+-      if (access_ok(to, n))
+-              __copy_user(to, from, n);
++      ___copy_to_user(to, from, n);
+       return n;
+ }
+ EXPORT_SYMBOL(raw_copy_to_user);
+-- 
+2.25.1
+
diff --git a/queue-5.6/csky-fixup-remove-duplicate-irq_disable.patch b/queue-5.6/csky-fixup-remove-duplicate-irq_disable.patch
new file mode 100644 (file)
index 0000000..afe5149
--- /dev/null
@@ -0,0 +1,36 @@
+From 9d30ad586239f8507ee4791b4d485f19124499ab Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 13 May 2020 15:54:15 +0800
+Subject: csky: Fixup remove duplicate irq_disable
+
+From: Liu Yibin <jiulong@linux.alibaba.com>
+
+[ Upstream commit 6633a5aa8eb6bda70eb3a9837efd28a67ccc6e0a ]
+
+Interrupt has been disabled in __schedule() with local_irq_disable()
+and enabled in finish_task_switch->finish_lock_switch() with
+local_irq_enabled(), So needn't to disable irq here.
+
+Signed-off-by: Liu Yibin <jiulong@linux.alibaba.com>
+Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/csky/kernel/entry.S | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/arch/csky/kernel/entry.S b/arch/csky/kernel/entry.S
+index 007706328000..9718388448a4 100644
+--- a/arch/csky/kernel/entry.S
++++ b/arch/csky/kernel/entry.S
+@@ -318,8 +318,6 @@ ENTRY(__switch_to)
+       mfcr    a2, psr                 /* Save PSR value */
+       stw     a2, (a3, THREAD_SR)     /* Save PSR in task struct */
+-      bclri   a2, 6                   /* Disable interrupts */
+-      mtcr    a2, psr
+       SAVE_SWITCH_STACK
+-- 
+2.25.1
+
diff --git a/queue-5.6/drivers-net-hamradio-fix-suspicious-rcu-usage-warnin.patch b/queue-5.6/drivers-net-hamradio-fix-suspicious-rcu-usage-warnin.patch
new file mode 100644 (file)
index 0000000..a5f44e1
--- /dev/null
@@ -0,0 +1,44 @@
+From d5a02e631bd59975e3a098e29ce4304b80fabc7e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 14 May 2020 19:41:15 +0530
+Subject: drivers: net: hamradio: Fix suspicious RCU usage warning in
+ bpqether.c
+
+From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
+
+[ Upstream commit 95f59bf88bb75281cc626e283ecefdd5d5641427 ]
+
+This patch fixes the following warning:
+=============================
+WARNING: suspicious RCU usage
+5.7.0-rc5-next-20200514-syzkaller #0 Not tainted
+-----------------------------
+drivers/net/hamradio/bpqether.c:149 RCU-list traversed in non-reader section!!
+
+Since rtnl lock is held, pass this cond in list_for_each_entry_rcu().
+
+Reported-by: syzbot+bb82cafc737c002d11ca@syzkaller.appspotmail.com
+Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/hamradio/bpqether.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c
+index fbea6f232819..e2ad3c2e8df5 100644
+--- a/drivers/net/hamradio/bpqether.c
++++ b/drivers/net/hamradio/bpqether.c
+@@ -127,7 +127,8 @@ static inline struct net_device *bpq_get_ax25_dev(struct net_device *dev)
+ {
+       struct bpqdev *bpq;
+-      list_for_each_entry_rcu(bpq, &bpq_devices, bpq_list) {
++      list_for_each_entry_rcu(bpq, &bpq_devices, bpq_list,
++                              lockdep_rtnl_is_held()) {
+               if (bpq->ethdev == dev)
+                       return bpq->axdev;
+       }
+-- 
+2.25.1
+
diff --git a/queue-5.6/drm-amd-amdgpu-update-update_config-logic.patch b/queue-5.6/drm-amd-amdgpu-update-update_config-logic.patch
new file mode 100644 (file)
index 0000000..1f271c0
--- /dev/null
@@ -0,0 +1,54 @@
+From c9c9e497ab72c34c7afa2e99f488dd381a3c5726 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 8 May 2020 14:18:07 -0400
+Subject: drm/amd/amdgpu: Update update_config() logic
+
+From: Leo (Hanghong) Ma <hanghong.ma@amd.com>
+
+[ Upstream commit 650e723cecf2738dee828564396f3239829aba83 ]
+
+[Why]
+For MST case: when update_config is called to disable a stream,
+this clears the settings for all the streams on that link.
+We should only clear the settings for the stream that was disabled.
+
+[How]
+Clear the settings after the call to remove display is called.
+
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Reviewed-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Signed-off-by: Leo (Hanghong) Ma <hanghong.ma@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_hdcp.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
+index 3abeff7722e3..e80371542622 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c
+@@ -316,15 +316,15 @@ static void update_config(void *handle, struct cp_psp_stream_config *config)
+       struct mod_hdcp_display *display = &hdcp_work[link_index].display;
+       struct mod_hdcp_link *link = &hdcp_work[link_index].link;
+-      memset(display, 0, sizeof(*display));
+-      memset(link, 0, sizeof(*link));
+-
+-      display->index = aconnector->base.index;
+-
+       if (config->dpms_off) {
+               hdcp_remove_display(hdcp_work, link_index, aconnector);
+               return;
+       }
++
++      memset(display, 0, sizeof(*display));
++      memset(link, 0, sizeof(*link));
++
++      display->index = aconnector->base.index;
+       display->state = MOD_HDCP_DISPLAY_ACTIVE;
+       if (aconnector->dc_sink != NULL)
+-- 
+2.25.1
+
diff --git a/queue-5.6/drm-amd-powerplay-perform-pg-ungate-prior-to-cg-unga.patch b/queue-5.6/drm-amd-powerplay-perform-pg-ungate-prior-to-cg-unga.patch
new file mode 100644 (file)
index 0000000..d345a00
--- /dev/null
@@ -0,0 +1,64 @@
+From 99a3deb3866068f13d459aecbc84088bdc1e2d32 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 30 Apr 2020 14:38:39 +0800
+Subject: drm/amd/powerplay: perform PG ungate prior to CG ungate
+
+From: Evan Quan <evan.quan@amd.com>
+
+[ Upstream commit f4fcfa4282c1a1bf51475ebb0ffda623eebf1191 ]
+
+Since gfxoff should be disabled first before trying to access those
+GC registers.
+
+Signed-off-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 6 +++---
+ drivers/gpu/drm/amd/powerplay/amdgpu_smu.c    | 6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+index e4e5a53b2b4e..8e2acb4df860 100644
+--- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
++++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+@@ -319,12 +319,12 @@ static void pp_dpm_en_umd_pstate(struct pp_hwmgr  *hwmgr,
+               if (*level & profile_mode_mask) {
+                       hwmgr->saved_dpm_level = hwmgr->dpm_level;
+                       hwmgr->en_umd_pstate = true;
+-                      amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
+-                                              AMD_IP_BLOCK_TYPE_GFX,
+-                                              AMD_CG_STATE_UNGATE);
+                       amdgpu_device_ip_set_powergating_state(hwmgr->adev,
+                                       AMD_IP_BLOCK_TYPE_GFX,
+                                       AMD_PG_STATE_UNGATE);
++                      amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
++                                              AMD_IP_BLOCK_TYPE_GFX,
++                                              AMD_CG_STATE_UNGATE);
+               }
+       } else {
+               /* exit umd pstate, restore level, enable gfx cg*/
+diff --git a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+index 96e81c7bc266..e2565967db07 100644
+--- a/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
++++ b/drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
+@@ -1675,12 +1675,12 @@ static int smu_enable_umd_pstate(void *handle,
+               if (*level & profile_mode_mask) {
+                       smu_dpm_ctx->saved_dpm_level = smu_dpm_ctx->dpm_level;
+                       smu_dpm_ctx->enable_umd_pstate = true;
+-                      amdgpu_device_ip_set_clockgating_state(smu->adev,
+-                                                             AMD_IP_BLOCK_TYPE_GFX,
+-                                                             AMD_CG_STATE_UNGATE);
+                       amdgpu_device_ip_set_powergating_state(smu->adev,
+                                                              AMD_IP_BLOCK_TYPE_GFX,
+                                                              AMD_PG_STATE_UNGATE);
++                      amdgpu_device_ip_set_clockgating_state(smu->adev,
++                                                             AMD_IP_BLOCK_TYPE_GFX,
++                                                             AMD_CG_STATE_UNGATE);
+               }
+       } else {
+               /* exit umd pstate, restore level, enable gfx cg*/
+-- 
+2.25.1
+
diff --git a/queue-5.6/drm-amdgpu-drop-unnecessary-cancel_delayed_work_sync.patch b/queue-5.6/drm-amdgpu-drop-unnecessary-cancel_delayed_work_sync.patch
new file mode 100644 (file)
index 0000000..d6f029c
--- /dev/null
@@ -0,0 +1,73 @@
+From 7a76a0d5800c4461da6ab24a4a1d264b2a2426f2 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 30 Apr 2020 11:24:02 +0800
+Subject: drm/amdgpu: drop unnecessary cancel_delayed_work_sync on PG ungate
+
+From: Evan Quan <evan.quan@amd.com>
+
+[ Upstream commit 1fe48ec08d9f2e26d893a6c05bd6c99a3490f9ef ]
+
+As this is already properly handled in amdgpu_gfx_off_ctrl(). In fact,
+this unnecessary cancel_delayed_work_sync may leave a small time window
+for race condition and is dangerous.
+
+Signed-off-by: Evan Quan <evan.quan@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c |  6 +-----
+ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c  | 12 +++---------
+ 2 files changed, 4 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+index 02702597ddeb..012df3d574bf 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+@@ -4241,11 +4241,7 @@ static int gfx_v10_0_set_powergating_state(void *handle,
+       switch (adev->asic_type) {
+       case CHIP_NAVI10:
+       case CHIP_NAVI14:
+-              if (!enable) {
+-                      amdgpu_gfx_off_ctrl(adev, false);
+-                      cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
+-              } else
+-                      amdgpu_gfx_off_ctrl(adev, true);
++              amdgpu_gfx_off_ctrl(adev, enable);
+               break;
+       default:
+               break;
+diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+index 906648fca9ef..914dbd901b98 100644
+--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+@@ -4734,10 +4734,9 @@ static int gfx_v9_0_set_powergating_state(void *handle,
+       switch (adev->asic_type) {
+       case CHIP_RAVEN:
+       case CHIP_RENOIR:
+-              if (!enable) {
++              if (!enable)
+                       amdgpu_gfx_off_ctrl(adev, false);
+-                      cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
+-              }
++
+               if (adev->pg_flags & AMD_PG_SUPPORT_RLC_SMU_HS) {
+                       gfx_v9_0_enable_sck_slow_down_on_power_up(adev, true);
+                       gfx_v9_0_enable_sck_slow_down_on_power_down(adev, true);
+@@ -4761,12 +4760,7 @@ static int gfx_v9_0_set_powergating_state(void *handle,
+                       amdgpu_gfx_off_ctrl(adev, true);
+               break;
+       case CHIP_VEGA12:
+-              if (!enable) {
+-                      amdgpu_gfx_off_ctrl(adev, false);
+-                      cancel_delayed_work_sync(&adev->gfx.gfx_off_delay_work);
+-              } else {
+-                      amdgpu_gfx_off_ctrl(adev, true);
+-              }
++              amdgpu_gfx_off_ctrl(adev, enable);
+               break;
+       default:
+               break;
+-- 
+2.25.1
+
diff --git a/queue-5.6/drm-amdgpu-use-gem-obj-reference-for-kfd-bos.patch b/queue-5.6/drm-amdgpu-use-gem-obj-reference-for-kfd-bos.patch
new file mode 100644 (file)
index 0000000..202448c
--- /dev/null
@@ -0,0 +1,55 @@
+From 5617ef7b659167e7390b550b8ab16a007f4fa5b3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 5 May 2020 14:02:43 -0400
+Subject: drm/amdgpu: Use GEM obj reference for KFD BOs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Felix Kuehling <Felix.Kuehling@amd.com>
+
+[ Upstream commit 39b3128d7ffd44e400e581e6f49e88cb42bef9a1 ]
+
+Releasing the AMDGPU BO ref directly leads to problems when BOs were
+exported as DMA bufs. Releasing the GEM reference makes sure that the
+AMDGPU/TTM BO is not freed too early.
+
+Also take a GEM reference when importing BOs from DMABufs to keep
+references to imported BOs balances properly.
+
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Tested-by: Alex Sierra <alex.sierra@amd.com>
+Acked-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Alex Sierra <alex.sierra@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+index fa8ac9d19a7a..6326c1792270 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+@@ -1304,7 +1304,7 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
+       }
+       /* Free the BO*/
+-      amdgpu_bo_unref(&mem->bo);
++      drm_gem_object_put_unlocked(&mem->bo->tbo.base);
+       mutex_destroy(&mem->lock);
+       kfree(mem);
+@@ -1647,7 +1647,8 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd,
+                ALLOC_MEM_FLAGS_VRAM : ALLOC_MEM_FLAGS_GTT) |
+               ALLOC_MEM_FLAGS_WRITABLE | ALLOC_MEM_FLAGS_EXECUTABLE;
+-      (*mem)->bo = amdgpu_bo_ref(bo);
++      drm_gem_object_get(&bo->tbo.base);
++      (*mem)->bo = bo;
+       (*mem)->va = va;
+       (*mem)->domain = (bo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM) ?
+               AMDGPU_GEM_DOMAIN_VRAM : AMDGPU_GEM_DOMAIN_GTT;
+-- 
+2.25.1
+
diff --git a/queue-5.6/drm-meson-pm-resume-add-return-errno-branch.patch b/queue-5.6/drm-meson-pm-resume-add-return-errno-branch.patch
new file mode 100644 (file)
index 0000000..2304e66
--- /dev/null
@@ -0,0 +1,40 @@
+From 25009ea9d81a0e8ae955112840a9e16039268926 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 28 Apr 2020 06:17:47 -0700
+Subject: drm/meson: pm resume add return errno branch
+
+From: Bernard Zhao <bernard@vivo.com>
+
+[ Upstream commit c54a8f1f329197d83d941ad84c4aa38bf282cbbd ]
+
+pm_resump api did not handle drm_mode_config_helper_resume error.
+This change add handle to return drm_mode_config_helper_resume`s
+error number. This code logic is aligned with api pm_suspend.
+After this change, the code maybe a bit readable.
+
+Signed-off-by: Bernard Zhao <bernard@vivo.com>
+Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20200428131747.2099-1-bernard@vivo.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/meson/meson_drv.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
+index b5f5eb7b4bb9..8c2e1b47e81a 100644
+--- a/drivers/gpu/drm/meson/meson_drv.c
++++ b/drivers/gpu/drm/meson/meson_drv.c
+@@ -412,9 +412,7 @@ static int __maybe_unused meson_drv_pm_resume(struct device *dev)
+       if (priv->afbcd.ops)
+               priv->afbcd.ops->init(priv);
+-      drm_mode_config_helper_resume(priv->drm);
+-
+-      return 0;
++      return drm_mode_config_helper_resume(priv->drm);
+ }
+ static int compare_of(struct device *dev, void *data)
+-- 
+2.25.1
+
diff --git a/queue-5.6/gfs2-don-t-call-quota_unhold-if-quotas-are-not-locke.patch b/queue-5.6/gfs2-don-t-call-quota_unhold-if-quotas-are-not-locke.patch
new file mode 100644 (file)
index 0000000..8229815
--- /dev/null
@@ -0,0 +1,46 @@
+From 519355aaf1d00f657783d2940196622889d4cacb Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 5 May 2020 11:55:03 -0500
+Subject: gfs2: don't call quota_unhold if quotas are not locked
+
+From: Bob Peterson <rpeterso@redhat.com>
+
+[ Upstream commit c9cb9e381985bbbe8acd2695bbe6bd24bf06b81c ]
+
+Before this patch, function gfs2_quota_unlock checked if quotas are
+turned off, and if so, it branched to label out, which called
+gfs2_quota_unhold. With the new system of gfs2_qa_get and put, we
+no longer want to call gfs2_quota_unhold or we won't balance our
+gets and puts.
+
+Signed-off-by: Bob Peterson <rpeterso@redhat.com>
+Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/gfs2/quota.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
+index 832d44782f74..a80b638b582e 100644
+--- a/fs/gfs2/quota.c
++++ b/fs/gfs2/quota.c
+@@ -1113,7 +1113,7 @@ void gfs2_quota_unlock(struct gfs2_inode *ip)
+       int found;
+       if (!test_and_clear_bit(GIF_QD_LOCKED, &ip->i_flags))
+-              goto out;
++              return;
+       for (x = 0; x < ip->i_qadata->qa_qd_num; x++) {
+               struct gfs2_quota_data *qd;
+@@ -1150,7 +1150,6 @@ void gfs2_quota_unlock(struct gfs2_inode *ip)
+                       qd_unlock(qda[x]);
+       }
+-out:
+       gfs2_quota_unhold(ip);
+ }
+-- 
+2.25.1
+
diff --git a/queue-5.6/gfs2-grab-glock-reference-sooner-in-gfs2_add_revoke.patch b/queue-5.6/gfs2-grab-glock-reference-sooner-in-gfs2_add_revoke.patch
new file mode 100644 (file)
index 0000000..49c2a50
--- /dev/null
@@ -0,0 +1,44 @@
+From 89414d2bba137894be2586ed5db43515cb4d787a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 5 May 2020 11:56:46 -0500
+Subject: gfs2: Grab glock reference sooner in gfs2_add_revoke
+
+From: Andreas Gruenbacher <agruenba@redhat.com>
+
+[ Upstream commit f4e2f5e1a527ce58fc9f85145b03704779a3123e ]
+
+This patch rearranges gfs2_add_revoke so that the extra glock
+reference is added earlier on in the function to avoid races in which
+the glock is freed before the new reference is taken.
+
+Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
+Signed-off-by: Bob Peterson <rpeterso@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/gfs2/log.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
+index 60d911e293e6..2674feda1d7a 100644
+--- a/fs/gfs2/log.c
++++ b/fs/gfs2/log.c
+@@ -603,13 +603,13 @@ void gfs2_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd)
+       struct buffer_head *bh = bd->bd_bh;
+       struct gfs2_glock *gl = bd->bd_gl;
++      sdp->sd_log_num_revoke++;
++      if (atomic_inc_return(&gl->gl_revokes) == 1)
++              gfs2_glock_hold(gl);
+       bh->b_private = NULL;
+       bd->bd_blkno = bh->b_blocknr;
+       gfs2_remove_from_ail(bd); /* drops ref on bh */
+       bd->bd_bh = NULL;
+-      sdp->sd_log_num_revoke++;
+-      if (atomic_inc_return(&gl->gl_revokes) == 1)
+-              gfs2_glock_hold(gl);
+       set_bit(GLF_LFLUSH, &gl->gl_flags);
+       list_add(&bd->bd_list, &sdp->sd_log_revokes);
+ }
+-- 
+2.25.1
+
diff --git a/queue-5.6/gfs2-move-privileged-user-check-to-gfs2_quota_lock_c.patch b/queue-5.6/gfs2-move-privileged-user-check-to-gfs2_quota_lock_c.patch
new file mode 100644 (file)
index 0000000..5400a60
--- /dev/null
@@ -0,0 +1,57 @@
+From 54178bac79ddac898c66015439d894242d7c91ab Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 5 May 2020 11:53:21 -0500
+Subject: gfs2: move privileged user check to gfs2_quota_lock_check
+
+From: Bob Peterson <rpeterso@redhat.com>
+
+[ Upstream commit 4ed0c30811cb4d30ef89850b787a53a84d5d2bcb ]
+
+Before this patch, function gfs2_quota_lock checked if it was called
+from a privileged user, and if so, it bypassed the quota check:
+superuser can operate outside the quotas.
+That's the wrong place for the check because the lock/unlock functions
+are separate from the lock_check function, and you can do lock and
+unlock without actually checking the quotas.
+
+This patch moves the check to gfs2_quota_lock_check.
+
+Signed-off-by: Bob Peterson <rpeterso@redhat.com>
+Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/gfs2/quota.c | 3 +--
+ fs/gfs2/quota.h | 3 ++-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
+index e9f93045eb01..832d44782f74 100644
+--- a/fs/gfs2/quota.c
++++ b/fs/gfs2/quota.c
+@@ -1040,8 +1040,7 @@ int gfs2_quota_lock(struct gfs2_inode *ip, kuid_t uid, kgid_t gid)
+       u32 x;
+       int error = 0;
+-      if (capable(CAP_SYS_RESOURCE) ||
+-          sdp->sd_args.ar_quota != GFS2_QUOTA_ON)
++      if (sdp->sd_args.ar_quota != GFS2_QUOTA_ON)
+               return 0;
+       error = gfs2_quota_hold(ip, uid, gid);
+diff --git a/fs/gfs2/quota.h b/fs/gfs2/quota.h
+index 765627d9a91e..fe68a91dc16f 100644
+--- a/fs/gfs2/quota.h
++++ b/fs/gfs2/quota.h
+@@ -44,7 +44,8 @@ static inline int gfs2_quota_lock_check(struct gfs2_inode *ip,
+       int ret;
+       ap->allowed = UINT_MAX; /* Assume we are permitted a whole lot */
+-      if (sdp->sd_args.ar_quota == GFS2_QUOTA_OFF)
++      if (capable(CAP_SYS_RESOURCE) ||
++          sdp->sd_args.ar_quota == GFS2_QUOTA_OFF)
+               return 0;
+       ret = gfs2_quota_lock(ip, NO_UID_QUOTA_CHANGE, NO_GID_QUOTA_CHANGE);
+       if (ret)
+-- 
+2.25.1
+
diff --git a/queue-5.6/gpio-tegra-mask-gpio-irqs-during-irq-shutdown.patch b/queue-5.6/gpio-tegra-mask-gpio-irqs-during-irq-shutdown.patch
new file mode 100644 (file)
index 0000000..e6ac3aa
--- /dev/null
@@ -0,0 +1,39 @@
+From cc543ead35a0326c3e2e1a3bfb9581b1f812869a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 27 Apr 2020 17:26:05 -0600
+Subject: gpio: tegra: mask GPIO IRQs during IRQ shutdown
+
+From: Stephen Warren <swarren@nvidia.com>
+
+[ Upstream commit 0cf253eed5d2bdf7bb3152457b38f39b012955f7 ]
+
+The driver currently leaves GPIO IRQs unmasked even when the GPIO IRQ
+client has released the GPIO IRQ. This allows the HW to raise IRQs, and
+SW to process them, after shutdown. Fix this by masking the IRQ when it's
+shut down. This is usually taken care of by the irqchip core, but since
+this driver has a custom irq_shutdown implementation, it must do this
+explicitly itself.
+
+Signed-off-by: Stephen Warren <swarren@nvidia.com>
+Link: https://lore.kernel.org/r/20200427232605.11608-1-swarren@wwwdotorg.org
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/gpio-tegra.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
+index acb99eff9939..86568154cdb3 100644
+--- a/drivers/gpio/gpio-tegra.c
++++ b/drivers/gpio/gpio-tegra.c
+@@ -368,6 +368,7 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
+       struct tegra_gpio_info *tgi = bank->tgi;
+       unsigned int gpio = d->hwirq;
++      tegra_gpio_irq_mask(d);
+       gpiochip_unlock_as_irq(&tgi->gc, gpio);
+ }
+-- 
+2.25.1
+
diff --git a/queue-5.6/hwmon-nct7904-fix-incorrect-range-of-temperature-lim.patch b/queue-5.6/hwmon-nct7904-fix-incorrect-range-of-temperature-lim.patch
new file mode 100644 (file)
index 0000000..fe8d0da
--- /dev/null
@@ -0,0 +1,46 @@
+From ca0e2b9464fef7ede3dcf572ab6dab3146acff17 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 12 May 2020 09:38:06 +0000
+Subject: hwmon: (nct7904) Fix incorrect range of temperature limit registers
+
+From: Amy Shih <amy.shih@advantech.com.tw>
+
+[ Upstream commit 7b2fd270af27edaf02acb41a7babe805a9441914 ]
+
+The format of temperature limitation registers are 8-bit 2's complement
+and the range is -128~127.
+Converts the reading value to signed char to fix the incorrect range
+of temperature limitation registers.
+
+Signed-off-by: Amy Shih <amy.shih@advantech.com.tw>
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hwmon/nct7904.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/hwmon/nct7904.c b/drivers/hwmon/nct7904.c
+index 281c81edabc6..dfb122b5e1b7 100644
+--- a/drivers/hwmon/nct7904.c
++++ b/drivers/hwmon/nct7904.c
+@@ -356,6 +356,7 @@ static int nct7904_read_temp(struct device *dev, u32 attr, int channel,
+       struct nct7904_data *data = dev_get_drvdata(dev);
+       int ret, temp;
+       unsigned int reg1, reg2, reg3;
++      s8 temps;
+       switch (attr) {
+       case hwmon_temp_input:
+@@ -461,7 +462,8 @@ static int nct7904_read_temp(struct device *dev, u32 attr, int channel,
+       if (ret < 0)
+               return ret;
+-      *val = ret * 1000;
++      temps = ret;
++      *val = temps * 1000;
+       return 0;
+ }
+-- 
+2.25.1
+
diff --git a/queue-5.6/ib-i40iw-remove-bogus-call-to-netdev_master_upper_de.patch b/queue-5.6/ib-i40iw-remove-bogus-call-to-netdev_master_upper_de.patch
new file mode 100644 (file)
index 0000000..1bf82d4
--- /dev/null
@@ -0,0 +1,92 @@
+From c8836ad3ff4d075b42f1a9997d3ae0cfb5075d59 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 28 Apr 2020 16:15:11 +0300
+Subject: IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()
+
+From: Denis V. Lunev <den@openvz.org>
+
+[ Upstream commit 856ec7f64688387b100b7083cdf480ce3ac41227 ]
+
+Local variable netdev is not used in these calls.
+
+It should be noted, that this change is required to work in bonded mode.
+Otherwise we would get the following assert:
+
+ "RTNL: assertion failed at net/core/dev.c (5665)"
+
+With the calltrace as follows:
+       dump_stack+0x19/0x1b
+       netdev_master_upper_dev_get+0x61/0x70
+       i40iw_addr_resolve_neigh+0x1e8/0x220
+       i40iw_make_cm_node+0x296/0x700
+       ? i40iw_find_listener.isra.10+0xcc/0x110
+       i40iw_receive_ilq+0x3d4/0x810
+       i40iw_puda_poll_completion+0x341/0x420
+       i40iw_process_ceq+0xa5/0x280
+       i40iw_ceq_dpc+0x1e/0x40
+       tasklet_action+0x83/0x140
+       __do_softirq+0x125/0x2bb
+       call_softirq+0x1c/0x30
+       do_softirq+0x65/0xa0
+       irq_exit+0x105/0x110
+       do_IRQ+0x56/0xf0
+       common_interrupt+0x16a/0x16a
+       ? cpuidle_enter_state+0x57/0xd0
+       cpuidle_idle_call+0xde/0x230
+       arch_cpu_idle+0xe/0xc0
+       cpu_startup_entry+0x14a/0x1e0
+       start_secondary+0x1f7/0x270
+       start_cpu+0x5/0x14
+
+Link: https://lore.kernel.org/r/20200428131511.11049-1-den@openvz.org
+Signed-off-by: Denis V. Lunev <den@openvz.org>
+Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
+Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/infiniband/hw/i40iw/i40iw_cm.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/drivers/infiniband/hw/i40iw/i40iw_cm.c b/drivers/infiniband/hw/i40iw/i40iw_cm.c
+index bb78d3280acc..fa7a5ff498c7 100644
+--- a/drivers/infiniband/hw/i40iw/i40iw_cm.c
++++ b/drivers/infiniband/hw/i40iw/i40iw_cm.c
+@@ -1987,7 +1987,6 @@ static int i40iw_addr_resolve_neigh(struct i40iw_device *iwdev,
+       struct rtable *rt;
+       struct neighbour *neigh;
+       int rc = arpindex;
+-      struct net_device *netdev = iwdev->netdev;
+       __be32 dst_ipaddr = htonl(dst_ip);
+       __be32 src_ipaddr = htonl(src_ip);
+@@ -1997,9 +1996,6 @@ static int i40iw_addr_resolve_neigh(struct i40iw_device *iwdev,
+               return rc;
+       }
+-      if (netif_is_bond_slave(netdev))
+-              netdev = netdev_master_upper_dev_get(netdev);
+-
+       neigh = dst_neigh_lookup(&rt->dst, &dst_ipaddr);
+       rcu_read_lock();
+@@ -2065,7 +2061,6 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
+ {
+       struct neighbour *neigh;
+       int rc = arpindex;
+-      struct net_device *netdev = iwdev->netdev;
+       struct dst_entry *dst;
+       struct sockaddr_in6 dst_addr;
+       struct sockaddr_in6 src_addr;
+@@ -2086,9 +2081,6 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
+               return rc;
+       }
+-      if (netif_is_bond_slave(netdev))
+-              netdev = netdev_master_upper_dev_get(netdev);
+-
+       neigh = dst_neigh_lookup(dst, dst_addr.sin6_addr.in6_u.u6_addr32);
+       rcu_read_lock();
+-- 
+2.25.1
+
diff --git a/queue-5.6/kselftests-dmabuf-heaps-fix-confused-return-value-on.patch b/queue-5.6/kselftests-dmabuf-heaps-fix-confused-return-value-on.patch
new file mode 100644 (file)
index 0000000..3960410
--- /dev/null
@@ -0,0 +1,45 @@
+From 8ca4ee761cccfa210fdcf50f4c01c30c4a492f3a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 8 May 2020 04:56:10 +0000
+Subject: kselftests: dmabuf-heaps: Fix confused return value on expected error
+ testing
+
+From: John Stultz <john.stultz@linaro.org>
+
+[ Upstream commit 4bb9d46d47b105a774f9dca642f5271375bca4b2 ]
+
+When I added the expected error testing, I forgot I need to set
+the return to zero when we successfully see an error.
+
+Without this change we only end up testing a single heap
+before the test quits.
+
+Cc: Shuah Khan <shuah@kernel.org>
+Cc: Sumit Semwal <sumit.semwal@linaro.org>
+Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
+Cc: Brian Starkey <brian.starkey@arm.com>
+Cc: Laura Abbott <labbott@redhat.com>
+Cc: "Andrew F. Davis" <afd@ti.com>
+Cc: linux-kselftest@vger.kernel.org
+Signed-off-by: John Stultz <john.stultz@linaro.org>
+Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c b/tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c
+index cd5e1f602ac9..909da9cdda97 100644
+--- a/tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c
++++ b/tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c
+@@ -351,6 +351,7 @@ static int test_alloc_errors(char *heap_name)
+       }
+       printf("Expected error checking passed\n");
++      ret = 0;
+ out:
+       if (dmabuf_fd >= 0)
+               close(dmabuf_fd);
+-- 
+2.25.1
+
diff --git a/queue-5.6/net-freescale-select-config_fixed_phy-where-needed.patch b/queue-5.6/net-freescale-select-config_fixed_phy-where-needed.patch
new file mode 100644 (file)
index 0000000..3744353
--- /dev/null
@@ -0,0 +1,66 @@
+From a9dbd73691904b4a75effc27fdd53a49aa511dbe Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 9 May 2020 14:04:52 +0200
+Subject: net: freescale: select CONFIG_FIXED_PHY where needed
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+[ Upstream commit 99352c79af3e5f2e4724abf37fa5a2a3299b1c81 ]
+
+I ran into a randconfig build failure with CONFIG_FIXED_PHY=m
+and CONFIG_GIANFAR=y:
+
+x86_64-linux-ld: drivers/net/ethernet/freescale/gianfar.o:(.rodata+0x418): undefined reference to `fixed_phy_change_carrier'
+
+It seems the same thing can happen with dpaa and ucc_geth, so change
+all three to do an explicit 'select FIXED_PHY'.
+
+The fixed-phy driver actually has an alternative stub function that
+theoretically allows building network drivers when fixed-phy is
+disabled, but I don't see how that would help here, as the drivers
+presumably would not work then.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Acked-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/freescale/Kconfig      | 2 ++
+ drivers/net/ethernet/freescale/dpaa/Kconfig | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/drivers/net/ethernet/freescale/Kconfig b/drivers/net/ethernet/freescale/Kconfig
+index 2bd7ace0a953..bfc6bfe94d0a 100644
+--- a/drivers/net/ethernet/freescale/Kconfig
++++ b/drivers/net/ethernet/freescale/Kconfig
+@@ -77,6 +77,7 @@ config UCC_GETH
+       depends on QUICC_ENGINE && PPC32
+       select FSL_PQ_MDIO
+       select PHYLIB
++      select FIXED_PHY
+       ---help---
+         This driver supports the Gigabit Ethernet mode of the QUICC Engine,
+         which is available on some Freescale SOCs.
+@@ -90,6 +91,7 @@ config GIANFAR
+       depends on HAS_DMA
+       select FSL_PQ_MDIO
+       select PHYLIB
++      select FIXED_PHY
+       select CRC32
+       ---help---
+         This driver supports the Gigabit TSEC on the MPC83xx, MPC85xx,
+diff --git a/drivers/net/ethernet/freescale/dpaa/Kconfig b/drivers/net/ethernet/freescale/dpaa/Kconfig
+index 3b325733a4f8..0a54c7e0e4ae 100644
+--- a/drivers/net/ethernet/freescale/dpaa/Kconfig
++++ b/drivers/net/ethernet/freescale/dpaa/Kconfig
+@@ -3,6 +3,7 @@ menuconfig FSL_DPAA_ETH
+       tristate "DPAA Ethernet"
+       depends on FSL_DPAA && FSL_FMAN
+       select PHYLIB
++      select FIXED_PHY
+       select FSL_FMAN_MAC
+       ---help---
+         Data Path Acceleration Architecture Ethernet driver,
+-- 
+2.25.1
+
diff --git a/queue-5.6/net-microchip-encx24j600-add-missed-kthread_stop.patch b/queue-5.6/net-microchip-encx24j600-add-missed-kthread_stop.patch
new file mode 100644 (file)
index 0000000..5327bc2
--- /dev/null
@@ -0,0 +1,53 @@
+From daa97e8ed9292dbb5f52041ae2d6829d4b914945 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 7 May 2020 23:13:20 +0800
+Subject: net: microchip: encx24j600: add missed kthread_stop
+
+From: Chuhong Yuan <hslester96@gmail.com>
+
+[ Upstream commit ff8ce319e9c25e920d994cc35236f0bb32dfc8f3 ]
+
+This driver calls kthread_run() in probe, but forgets to call
+kthread_stop() in probe failure and remove.
+Add the missed kthread_stop() to fix it.
+
+Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/microchip/encx24j600.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethernet/microchip/encx24j600.c
+index 39925e4bf2ec..b25a13da900a 100644
+--- a/drivers/net/ethernet/microchip/encx24j600.c
++++ b/drivers/net/ethernet/microchip/encx24j600.c
+@@ -1070,7 +1070,7 @@ static int encx24j600_spi_probe(struct spi_device *spi)
+       if (unlikely(ret)) {
+               netif_err(priv, probe, ndev, "Error %d initializing card encx24j600 card\n",
+                         ret);
+-              goto out_free;
++              goto out_stop;
+       }
+       eidled = encx24j600_read_reg(priv, EIDLED);
+@@ -1088,6 +1088,8 @@ static int encx24j600_spi_probe(struct spi_device *spi)
+ out_unregister:
+       unregister_netdev(priv->ndev);
++out_stop:
++      kthread_stop(priv->kworker_task);
+ out_free:
+       free_netdev(ndev);
+@@ -1100,6 +1102,7 @@ static int encx24j600_spi_remove(struct spi_device *spi)
+       struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
+       unregister_netdev(priv->ndev);
++      kthread_stop(priv->kworker_task);
+       free_netdev(priv->ndev);
+-- 
+2.25.1
+
diff --git a/queue-5.6/riscv-add-pgprot_writecombine-device-and-page_shared.patch b/queue-5.6/riscv-add-pgprot_writecombine-device-and-page_shared.patch
new file mode 100644 (file)
index 0000000..28f2bef
--- /dev/null
@@ -0,0 +1,50 @@
+From 8ced9946a259923f34fff73a229b9117a585e745 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 11 May 2020 10:19:54 +0800
+Subject: riscv: Add pgprot_writecombine/device and PAGE_SHARED defination if
+ NOMMU
+
+From: Kefeng Wang <wangkefeng.wang@huawei.com>
+
+[ Upstream commit fa8174aa225fe3d53b37552e5066e6f0301dbabd ]
+
+Some drivers use PAGE_SHARED, pgprot_writecombine()/pgprot_device(),
+add the defination to fix build error if NOMMU.
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
+Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/riscv/include/asm/mmio.h    | 2 ++
+ arch/riscv/include/asm/pgtable.h | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/arch/riscv/include/asm/mmio.h b/arch/riscv/include/asm/mmio.h
+index a2c809df2733..56053c9838b2 100644
+--- a/arch/riscv/include/asm/mmio.h
++++ b/arch/riscv/include/asm/mmio.h
+@@ -16,6 +16,8 @@
+ #ifndef CONFIG_MMU
+ #define pgprot_noncached(x)   (x)
++#define pgprot_writecombine(x)        (x)
++#define pgprot_device(x)      (x)
+ #endif /* CONFIG_MMU */
+ /* Generic IO read/write.  These perform native-endian accesses. */
+diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
+index 393f2014dfee..05b92987f500 100644
+--- a/arch/riscv/include/asm/pgtable.h
++++ b/arch/riscv/include/asm/pgtable.h
+@@ -460,6 +460,7 @@ static inline int ptep_clear_flush_young(struct vm_area_struct *vma,
+ #else /* CONFIG_MMU */
++#define PAGE_SHARED           __pgprot(0)
+ #define PAGE_KERNEL           __pgprot(0)
+ #define swapper_pg_dir                NULL
+ #define VMALLOC_START         0
+-- 
+2.25.1
+
diff --git a/queue-5.6/riscv-fix-unmet-direct-dependencies-built-based-on-s.patch b/queue-5.6/riscv-fix-unmet-direct-dependencies-built-based-on-s.patch
new file mode 100644 (file)
index 0000000..3712724
--- /dev/null
@@ -0,0 +1,64 @@
+From ea538f93b43f2df4724ba7ee0bf7dcce791fe381 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 11 May 2020 10:19:52 +0800
+Subject: riscv: Fix unmet direct dependencies built based on SOC_VIRT
+
+From: Kefeng Wang <wangkefeng.wang@huawei.com>
+
+[ Upstream commit ab7fbad0c7d7a4f9b320a059a171a92a34b6d409 ]
+
+Fix unmet direct dependencies Warning and fix Kconfig indent.
+
+WARNING: unmet direct dependencies detected for POWER_RESET_SYSCON
+  Depends on [n]: POWER_RESET [=n] && OF [=y] && HAS_IOMEM [=y]
+  Selected by [y]:
+  - SOC_VIRT [=y]
+
+WARNING: unmet direct dependencies detected for POWER_RESET_SYSCON_POWEROFF
+  Depends on [n]: POWER_RESET [=n] && OF [=y] && HAS_IOMEM [=y]
+  Selected by [y]:
+  - SOC_VIRT [=y]
+
+WARNING: unmet direct dependencies detected for RTC_DRV_GOLDFISH
+  Depends on [n]: RTC_CLASS [=n] && OF [=y] && HAS_IOMEM [=y] && (GOLDFISH [=y] || COMPILE_TEST [=n])
+  Selected by [y]:
+  - SOC_VIRT [=y]
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
+Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/riscv/Kconfig.socs | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
+index a131174a0a77..f310ad8ffcf7 100644
+--- a/arch/riscv/Kconfig.socs
++++ b/arch/riscv/Kconfig.socs
+@@ -11,13 +11,14 @@ config SOC_SIFIVE
+         This enables support for SiFive SoC platform hardware.
+ config SOC_VIRT
+-       bool "QEMU Virt Machine"
+-       select POWER_RESET_SYSCON
+-       select POWER_RESET_SYSCON_POWEROFF
+-       select GOLDFISH
+-       select RTC_DRV_GOLDFISH
+-       select SIFIVE_PLIC
+-       help
+-         This enables support for QEMU Virt Machine.
++      bool "QEMU Virt Machine"
++      select POWER_RESET
++      select POWER_RESET_SYSCON
++      select POWER_RESET_SYSCON_POWEROFF
++      select GOLDFISH
++      select RTC_DRV_GOLDFISH if RTC_CLASS
++      select SIFIVE_PLIC
++      help
++        This enables support for QEMU Virt Machine.
+ endmenu
+-- 
+2.25.1
+
diff --git a/queue-5.6/riscv-pgtable-fix-__kernel_map_pages-build-error-if-.patch b/queue-5.6/riscv-pgtable-fix-__kernel_map_pages-build-error-if-.patch
new file mode 100644 (file)
index 0000000..f6d024c
--- /dev/null
@@ -0,0 +1,39 @@
+From 9921246cf71a2744c3b1b835ee2d60f71c285c9c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 11 May 2020 10:19:59 +0800
+Subject: riscv: pgtable: Fix __kernel_map_pages build error if NOMMU
+
+From: Kefeng Wang <wangkefeng.wang@huawei.com>
+
+[ Upstream commit 9a6630aef93394ac54494c7e273e9bc026509375 ]
+
+riscv64-none-linux-gnu-ld: mm/page_alloc.o: in function `.L0 ':
+page_alloc.c:(.text+0xd34): undefined reference to `__kernel_map_pages'
+riscv64-none-linux-gnu-ld: page_alloc.c:(.text+0x104a): undefined reference to `__kernel_map_pages'
+riscv64-none-linux-gnu-ld: mm/page_alloc.o: in function `__pageblock_pfn_to_page':
+page_alloc.c:(.text+0x145e): undefined reference to `__kernel_map_pages'
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
+Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/riscv/include/asm/pgtable.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
+index 05b92987f500..31d912944d8d 100644
+--- a/arch/riscv/include/asm/pgtable.h
++++ b/arch/riscv/include/asm/pgtable.h
+@@ -467,6 +467,8 @@ static inline int ptep_clear_flush_young(struct vm_area_struct *vma,
+ #define TASK_SIZE 0xffffffffUL
++static inline void __kernel_map_pages(struct page *page, int numpages, int enable) {}
++
+ #endif /* !CONFIG_MMU */
+ #define kern_addr_valid(addr)   (1) /* FIXME */
+-- 
+2.25.1
+
diff --git a/queue-5.6/riscv-stacktrace-fix-undefined-reference-to-walk_sta.patch b/queue-5.6/riscv-stacktrace-fix-undefined-reference-to-walk_sta.patch
new file mode 100644 (file)
index 0000000..0d81e56
--- /dev/null
@@ -0,0 +1,37 @@
+From 42346baeac502dbcfec7d1888bc58d4c457585f9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 11 May 2020 10:19:53 +0800
+Subject: riscv: stacktrace: Fix undefined reference to `walk_stackframe'
+
+From: Kefeng Wang <wangkefeng.wang@huawei.com>
+
+[ Upstream commit 0502bee37cdef755d63eee60236562e5605e2480 ]
+
+Drop static declaration to fix following build error if FRAME_POINTER disabled,
+  riscv64-linux-ld: arch/riscv/kernel/perf_callchain.o: in function `.L0':
+  perf_callchain.c:(.text+0x2b8): undefined reference to `walk_stackframe'
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
+Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/riscv/kernel/stacktrace.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/riscv/kernel/stacktrace.c b/arch/riscv/kernel/stacktrace.c
+index 0940681d2f68..19e46f4160cc 100644
+--- a/arch/riscv/kernel/stacktrace.c
++++ b/arch/riscv/kernel/stacktrace.c
+@@ -63,7 +63,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
+ #else /* !CONFIG_FRAME_POINTER */
+-static void notrace walk_stackframe(struct task_struct *task,
++void notrace walk_stackframe(struct task_struct *task,
+       struct pt_regs *regs, bool (*fn)(unsigned long, void *), void *arg)
+ {
+       unsigned long sp, pc;
+-- 
+2.25.1
+
diff --git a/queue-5.6/samples-bpf-fix-build-error.patch b/queue-5.6/samples-bpf-fix-build-error.patch
new file mode 100644 (file)
index 0000000..937375e
--- /dev/null
@@ -0,0 +1,42 @@
+From 769edbb0d57e08eee880a42b0963ad7d2c116bc1 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 11 May 2020 13:32:34 +0200
+Subject: samples: bpf: Fix build error
+
+From: Matteo Croce <mcroce@redhat.com>
+
+[ Upstream commit 23ad04669f81f958e9a4121b0266228d2eb3c357 ]
+
+GCC 10 is very strict about symbol clash, and lwt_len_hist_user contains
+a symbol which clashes with libbpf:
+
+/usr/bin/ld: samples/bpf/lwt_len_hist_user.o:(.bss+0x0): multiple definition of `bpf_log_buf'; samples/bpf/bpf_load.o:(.bss+0x8c0): first defined here
+collect2: error: ld returned 1 exit status
+
+bpf_log_buf here seems to be a leftover, so removing it.
+
+Signed-off-by: Matteo Croce <mcroce@redhat.com>
+Signed-off-by: Alexei Starovoitov <ast@kernel.org>
+Acked-by: Yonghong Song <yhs@fb.com>
+Link: https://lore.kernel.org/bpf/20200511113234.80722-1-mcroce@redhat.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ samples/bpf/lwt_len_hist_user.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/samples/bpf/lwt_len_hist_user.c b/samples/bpf/lwt_len_hist_user.c
+index 587b68b1f8dd..430a4b7e353e 100644
+--- a/samples/bpf/lwt_len_hist_user.c
++++ b/samples/bpf/lwt_len_hist_user.c
+@@ -15,8 +15,6 @@
+ #define MAX_INDEX 64
+ #define MAX_STARS 38
+-char bpf_log_buf[BPF_LOG_BUF_SIZE];
+-
+ static void stars(char *str, long val, long max, int width)
+ {
+       int i;
+-- 
+2.25.1
+
index 63a564ef1352a2b179374e27f51d7b84bd25153b..7a12b53182dec7764a867f0faaf3083ccc1d60e1 100644 (file)
@@ -41,3 +41,43 @@ net-mlx4_core-fix-a-memory-leak-bug.patch
 net-sgi-ioc3-eth-fix-return-value-check-in-ioc3eth_probe.patch
 mlxsw-spectrum-fix-use-after-free-of-split-unsplit-type_set-in-case-reload-fails.patch
 net-mscc-ocelot-fix-address-ageing-time-again.patch
+arm64-dts-qcom-db820c-fix-audio-configuration.patch
+arm-dts-rockchip-fix-phy-nodename-for-rk3228-evb.patch
+arm-dts-rockchip-fix-phy-nodename-for-rk3229-xms6.patch
+arm64-dts-rockchip-fix-status-for-gmac2phy-in-rk3328.patch
+arm64-dts-rockchip-swap-interrupts-interrupt-names-r.patch
+arm-dts-rockchip-swap-clock-names-of-gpu-nodes.patch
+arm-dts-rockchip-fix-pinctrl-sub-nodename-for-spi-in.patch
+gpio-tegra-mask-gpio-irqs-during-irq-shutdown.patch
+alsa-usb-audio-add-mapping-for-asrock-trx40-creator.patch
+arm-dts-omap4-droid4-fix-flakey-wlan-by-disabling-in.patch
+arm-dts-omap4-droid4-fix-occasional-lost-wakeirq-for.patch
+net-microchip-encx24j600-add-missed-kthread_stop.patch
+kselftests-dmabuf-heaps-fix-confused-return-value-on.patch
+gfs2-move-privileged-user-check-to-gfs2_quota_lock_c.patch
+gfs2-don-t-call-quota_unhold-if-quotas-are-not-locke.patch
+gfs2-grab-glock-reference-sooner-in-gfs2_add_revoke.patch
+drm-amdgpu-drop-unnecessary-cancel_delayed_work_sync.patch
+drm-amd-powerplay-perform-pg-ungate-prior-to-cg-unga.patch
+drm-amdgpu-use-gem-obj-reference-for-kfd-bos.patch
+cachefiles-fix-race-between-read_waiter-and-read_cop.patch
+usb-dwc3-pci-enable-extcon-driver-for-intel-merrifie.patch
+usb-phy-twl6030-usb-fix-a-resource-leak-in-an-error-.patch
+usb-gadget-legacy-fix-redundant-initialization-warni.patch
+net-freescale-select-config_fixed_phy-where-needed.patch
+drm-amd-amdgpu-update-update_config-logic.patch
+ib-i40iw-remove-bogus-call-to-netdev_master_upper_de.patch
+riscv-fix-unmet-direct-dependencies-built-based-on-s.patch
+riscv-stacktrace-fix-undefined-reference-to-walk_sta.patch
+riscv-add-pgprot_writecombine-device-and-page_shared.patch
+clk-ti-am33xx-fix-rtc-clock-parent.patch
+csky-fixup-msa-highest-3-bits-mask.patch
+csky-fixup-perf-callchain-unwind.patch
+csky-fixup-remove-duplicate-irq_disable.patch
+drm-meson-pm-resume-add-return-errno-branch.patch
+hwmon-nct7904-fix-incorrect-range-of-temperature-lim.patch
+riscv-pgtable-fix-__kernel_map_pages-build-error-if-.patch
+cifs-fix-null-pointer-check-in-cifs_read.patch
+csky-fixup-raw_copy_from_user.patch
+samples-bpf-fix-build-error.patch
+drivers-net-hamradio-fix-suspicious-rcu-usage-warnin.patch
diff --git a/queue-5.6/usb-dwc3-pci-enable-extcon-driver-for-intel-merrifie.patch b/queue-5.6/usb-dwc3-pci-enable-extcon-driver-for-intel-merrifie.patch
new file mode 100644 (file)
index 0000000..e1ff910
--- /dev/null
@@ -0,0 +1,36 @@
+From 4ad0303112887217c6685ac809781c3bb87d1ea0 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 4 May 2020 12:33:52 +0300
+Subject: usb: dwc3: pci: Enable extcon driver for Intel Merrifield
+
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+
+[ Upstream commit 066c09593454e89bc605ffdff1c9810061f9b1e1 ]
+
+Intel Merrifield provides a DR support via PMIC which has its own
+extcon driver.
+
+Add a property string to link to that driver.
+
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Felipe Balbi <balbi@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/usb/dwc3/dwc3-pci.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/usb/dwc3/dwc3-pci.c b/drivers/usb/dwc3/dwc3-pci.c
+index 7051611229c9..b67372737dc9 100644
+--- a/drivers/usb/dwc3/dwc3-pci.c
++++ b/drivers/usb/dwc3/dwc3-pci.c
+@@ -114,6 +114,7 @@ static const struct property_entry dwc3_pci_intel_properties[] = {
+ static const struct property_entry dwc3_pci_mrfld_properties[] = {
+       PROPERTY_ENTRY_STRING("dr_mode", "otg"),
++      PROPERTY_ENTRY_STRING("linux,extcon-name", "mrfld_bcove_pwrsrc"),
+       PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
+       {}
+ };
+-- 
+2.25.1
+
diff --git a/queue-5.6/usb-gadget-legacy-fix-redundant-initialization-warni.patch b/queue-5.6/usb-gadget-legacy-fix-redundant-initialization-warni.patch
new file mode 100644 (file)
index 0000000..f152883
--- /dev/null
@@ -0,0 +1,63 @@
+From 3d50b384df0d8f3167e0d6590a9b862659515f50 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 3 Apr 2020 22:16:51 +0900
+Subject: usb: gadget: legacy: fix redundant initialization warnings
+
+From: Masahiro Yamada <masahiroy@kernel.org>
+
+[ Upstream commit d13cce757954fa663c69845611957396843ed87a ]
+
+Fix the following cppcheck warnings:
+
+drivers/usb/gadget/legacy/inode.c:1364:8: style: Redundant initialization for 'value'. The initialized value is overwritten$
+ value = -EOPNOTSUPP;
+       ^
+drivers/usb/gadget/legacy/inode.c:1331:15: note: value is initialized
+ int    value = -EOPNOTSUPP;
+              ^
+drivers/usb/gadget/legacy/inode.c:1364:8: note: value is overwritten
+ value = -EOPNOTSUPP;
+       ^
+drivers/usb/gadget/legacy/inode.c:1817:8: style: Redundant initialization for 'value'. The initialized value is overwritten$
+ value = -EINVAL;
+       ^
+drivers/usb/gadget/legacy/inode.c:1787:18: note: value is initialized
+ ssize_t   value = len, length = len;
+                 ^
+drivers/usb/gadget/legacy/inode.c:1817:8: note: value is overwritten
+ value = -EINVAL;
+       ^
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Reported-by: kbuild test robot <lkp@intel.com>
+Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
+Signed-off-by: Felipe Balbi <balbi@kernel.org>
+
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/usb/gadget/legacy/inode.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/drivers/usb/gadget/legacy/inode.c b/drivers/usb/gadget/legacy/inode.c
+index b47938dff1a2..238f555fe494 100644
+--- a/drivers/usb/gadget/legacy/inode.c
++++ b/drivers/usb/gadget/legacy/inode.c
+@@ -1361,7 +1361,6 @@ gadgetfs_setup (struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
+       req->buf = dev->rbuf;
+       req->context = NULL;
+-      value = -EOPNOTSUPP;
+       switch (ctrl->bRequest) {
+       case USB_REQ_GET_DESCRIPTOR:
+@@ -1784,7 +1783,7 @@ static ssize_t
+ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
+ {
+       struct dev_data         *dev = fd->private_data;
+-      ssize_t                 value = len, length = len;
++      ssize_t                 value, length = len;
+       unsigned                total;
+       u32                     tag;
+       char                    *kbuf;
+-- 
+2.25.1
+
diff --git a/queue-5.6/usb-phy-twl6030-usb-fix-a-resource-leak-in-an-error-.patch b/queue-5.6/usb-phy-twl6030-usb-fix-a-resource-leak-in-an-error-.patch
new file mode 100644 (file)
index 0000000..d7b497b
--- /dev/null
@@ -0,0 +1,65 @@
+From 7e7ee56bed1ec01ecb5cdb2c5471b9190d28381a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 27 Apr 2020 22:21:16 +0200
+Subject: usb: phy: twl6030-usb: Fix a resource leak in an error handling path
+ in 'twl6030_usb_probe()'
+
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+
+[ Upstream commit f058764d19000d98aef72010468db1f69faf9fa0 ]
+
+A call to 'regulator_get()' is hidden in 'twl6030_usb_ldo_init()'. A
+corresponding put must be performed in the error handling path, as
+already done in the remove function.
+
+While at it, also move a 'free_irq()' call in the error handling path in
+order to be consistent.
+
+Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Signed-off-by: Felipe Balbi <balbi@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/usb/phy/phy-twl6030-usb.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/usb/phy/phy-twl6030-usb.c b/drivers/usb/phy/phy-twl6030-usb.c
+index bfebf1f2e991..9a7e655d5280 100644
+--- a/drivers/usb/phy/phy-twl6030-usb.c
++++ b/drivers/usb/phy/phy-twl6030-usb.c
+@@ -377,7 +377,7 @@ static int twl6030_usb_probe(struct platform_device *pdev)
+       if (status < 0) {
+               dev_err(&pdev->dev, "can't get IRQ %d, err %d\n",
+                       twl->irq1, status);
+-              return status;
++              goto err_put_regulator;
+       }
+       status = request_threaded_irq(twl->irq2, NULL, twl6030_usb_irq,
+@@ -386,8 +386,7 @@ static int twl6030_usb_probe(struct platform_device *pdev)
+       if (status < 0) {
+               dev_err(&pdev->dev, "can't get IRQ %d, err %d\n",
+                       twl->irq2, status);
+-              free_irq(twl->irq1, twl);
+-              return status;
++              goto err_free_irq1;
+       }
+       twl->asleep = 0;
+@@ -396,6 +395,13 @@ static int twl6030_usb_probe(struct platform_device *pdev)
+       dev_info(&pdev->dev, "Initialized TWL6030 USB module\n");
+       return 0;
++
++err_free_irq1:
++      free_irq(twl->irq1, twl);
++err_put_regulator:
++      regulator_put(twl->usb3v3);
++
++      return status;
+ }
+ static int twl6030_usb_remove(struct platform_device *pdev)
+-- 
+2.25.1
+