]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jan 2020 16:47:16 +0000 (17:47 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jan 2020 16:47:16 +0000 (17:47 +0100)
added patches:
arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch
arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch
arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch
bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch
bluetooth-delete-a-stray-unlock.patch
bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch
cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch
dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch
fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch
fs-cifs-fix-atime-update-check-vs-mtime.patch
media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch
media-usb-fix-memory-leak-in-af9005_identify_state.patch
phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch
powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch
regulator-ab8500-remove-ab8505-usb-regulator.patch
regulator-axp20x-fix-axp20x_set_ramp_delay.patch
regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch
regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch
spi-uniphier-fix-fifo-threshold.patch
tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch
watchdog-tqmx86_wdt-fix-build-error.patch

22 files changed:
queue-5.4/arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch [new file with mode: 0644]
queue-5.4/arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch [new file with mode: 0644]
queue-5.4/arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch [new file with mode: 0644]
queue-5.4/bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch [new file with mode: 0644]
queue-5.4/bluetooth-delete-a-stray-unlock.patch [new file with mode: 0644]
queue-5.4/bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch [new file with mode: 0644]
queue-5.4/cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch [new file with mode: 0644]
queue-5.4/dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch [new file with mode: 0644]
queue-5.4/fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch [new file with mode: 0644]
queue-5.4/fs-cifs-fix-atime-update-check-vs-mtime.patch [new file with mode: 0644]
queue-5.4/media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch [new file with mode: 0644]
queue-5.4/media-usb-fix-memory-leak-in-af9005_identify_state.patch [new file with mode: 0644]
queue-5.4/phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch [new file with mode: 0644]
queue-5.4/powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch [new file with mode: 0644]
queue-5.4/regulator-ab8500-remove-ab8505-usb-regulator.patch [new file with mode: 0644]
queue-5.4/regulator-axp20x-fix-axp20x_set_ramp_delay.patch [new file with mode: 0644]
queue-5.4/regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch [new file with mode: 0644]
queue-5.4/regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch [new file with mode: 0644]
queue-5.4/series
queue-5.4/spi-uniphier-fix-fifo-threshold.patch [new file with mode: 0644]
queue-5.4/tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch [new file with mode: 0644]
queue-5.4/watchdog-tqmx86_wdt-fix-build-error.patch [new file with mode: 0644]

diff --git a/queue-5.4/arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch b/queue-5.4/arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch
new file mode 100644 (file)
index 0000000..9f1caa9
--- /dev/null
@@ -0,0 +1,31 @@
+From 1c6d575574ec87dbccf7af20ef9dc0df02614069 Mon Sep 17 00:00:00 2001
+From: Christian Hewitt <christianshewitt@gmail.com>
+Date: Mon, 9 Sep 2019 19:01:23 +0400
+Subject: arm64: dts: meson-gxl-s905x-khadas-vim: fix uart_A bluetooth node
+
+From: Christian Hewitt <christianshewitt@gmail.com>
+
+commit 1c6d575574ec87dbccf7af20ef9dc0df02614069 upstream.
+
+Fixes: dd5297cc8b8b ("arm64: dts: meson-gxl-s905x-khadas-vim enable Bluetooth")
+Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
+Reviewed-by: Kevin Hilman <khilman@baylibre.com>
+Signed-off-by: Kevin Hilman <khilman@baylibre.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+@@ -192,6 +192,9 @@
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
++              max-speed = <2000000>;
++              clocks = <&wifi32k>;
++              clock-names = "lpo";
+       };
+ };
diff --git a/queue-5.4/arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch b/queue-5.4/arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch
new file mode 100644 (file)
index 0000000..efbb387
--- /dev/null
@@ -0,0 +1,31 @@
+From 388a2772979b625042524d8b91280616ab4ff5ee Mon Sep 17 00:00:00 2001
+From: Christian Hewitt <christianshewitt@gmail.com>
+Date: Mon, 9 Sep 2019 19:01:24 +0400
+Subject: arm64: dts: meson-gxm-khadas-vim2: fix uart_A bluetooth node
+
+From: Christian Hewitt <christianshewitt@gmail.com>
+
+commit 388a2772979b625042524d8b91280616ab4ff5ee upstream.
+
+Fixes: 33344e2111a3 ("arm64: dts: meson-gxm-khadas-vim2: fix Bluetooth support")
+Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
+Reviewed-by: Kevin Hilman <khilman@baylibre.com>
+Signed-off-by: Kevin Hilman <khilman@baylibre.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
++++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
+@@ -409,6 +409,9 @@
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
++              max-speed = <2000000>;
++              clocks = <&wifi32k>;
++              clock-names = "lpo";
+       };
+ };
diff --git a/queue-5.4/arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch b/queue-5.4/arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch
new file mode 100644 (file)
index 0000000..26bba77
--- /dev/null
@@ -0,0 +1,142 @@
+From 72c9b5f6f75fbc6c47e0a2d02bc3838a2a47c90a Mon Sep 17 00:00:00 2001
+From: Anand Moon <linux.amoon@gmail.com>
+Date: Mon, 2 Sep 2019 05:49:35 +0000
+Subject: arm64: dts: meson: odroid-c2: Disable usb_otg bus to avoid power failed warning
+
+From: Anand Moon <linux.amoon@gmail.com>
+
+commit 72c9b5f6f75fbc6c47e0a2d02bc3838a2a47c90a upstream.
+
+usb_otg bus needs to get initialize from the u-boot to be configured
+to used as power source to SBC or usb otg port will get configured
+as host device. Right now this support is missing in the u-boot and
+phy driver so to avoid power failed warning, we would disable this
+feature  until proper fix is found.
+
+[    2.716048] phy phy-c0000000.phy.0: USB ID detect failed!
+[    2.720186] phy phy-c0000000.phy.0: phy poweron failed --> -22
+[    2.726001] ------------[ cut here ]------------
+[    2.730583] WARNING: CPU: 0 PID: 12 at drivers/regulator/core.c:2039 _regulator_put+0x3c/0xe8
+[    2.738983] Modules linked in:
+[    2.742005] CPU: 0 PID: 12 Comm: kworker/0:1 Not tainted 5.2.9-1-ARCH #1
+[    2.748643] Hardware name: Hardkernel ODROID-C2 (DT)
+[    2.753566] Workqueue: events deferred_probe_work_func
+[    2.758649] pstate: 60000005 (nZCv daif -PAN -UAO)
+[    2.763394] pc : _regulator_put+0x3c/0xe8
+[    2.767361] lr : _regulator_put+0x3c/0xe8
+[    2.771326] sp : ffff000011aa3a50
+[    2.774604] x29: ffff000011aa3a50 x28: ffff80007ed1b600
+[    2.779865] x27: ffff80007f7036a8 x26: ffff80007f7036a8
+[    2.785126] x25: 0000000000000000 x24: ffff000011a44458
+[    2.790387] x23: ffff000011344218 x22: 0000000000000009
+[    2.795649] x21: ffff000011aa3b68 x20: ffff80007ed1b500
+[    2.800910] x19: ffff80007ed1b500 x18: 0000000000000010
+[    2.806171] x17: 000000005be5943c x16: 00000000f1c73b29
+[    2.811432] x15: ffffffffffffffff x14: ffff0000117396c8
+[    2.816694] x13: ffff000091aa37a7 x12: ffff000011aa37af
+[    2.821955] x11: ffff000011763000 x10: ffff000011aa3730
+[    2.827216] x9 : 00000000ffffffd0 x8 : ffff000010871760
+[    2.832477] x7 : 00000000000000d0 x6 : ffff0000119d151b
+[    2.837739] x5 : 000000000000000f x4 : 0000000000000000
+[    2.843000] x3 : 0000000000000000 x2 : 38104b2678c20100
+[    2.848261] x1 : 0000000000000000 x0 : 0000000000000024
+[    2.853523] Call trace:
+[    2.855940]  _regulator_put+0x3c/0xe8
+[    2.859562]  regulator_put+0x34/0x48
+[    2.863098]  regulator_bulk_free+0x40/0x58
+[    2.867153]  devm_regulator_bulk_release+0x24/0x30
+[    2.871896]  release_nodes+0x1f0/0x2e0
+[    2.875604]  devres_release_all+0x64/0xa4
+[    2.879571]  really_probe+0x1c8/0x3e0
+[    2.883194]  driver_probe_device+0xe4/0x138
+[    2.887334]  __device_attach_driver+0x90/0x110
+[    2.891733]  bus_for_each_drv+0x8c/0xd8
+[    2.895527]  __device_attach+0xdc/0x160
+[    2.899322]  device_initial_probe+0x24/0x30
+[    2.903463]  bus_probe_device+0x9c/0xa8
+[    2.907258]  deferred_probe_work_func+0xa0/0xf0
+[    2.911745]  process_one_work+0x1b4/0x408
+[    2.915711]  worker_thread+0x54/0x4b8
+[    2.919334]  kthread+0x12c/0x130
+[    2.922526]  ret_from_fork+0x10/0x1c
+[    2.926060] ---[ end trace 51a68f4c0035d6c0 ]---
+[    2.930691] ------------[ cut here ]------------
+[    2.935242] WARNING: CPU: 0 PID: 12 at drivers/regulator/core.c:2039 _regulator_put+0x3c/0xe8
+[    2.943653] Modules linked in:
+[    2.946675] CPU: 0 PID: 12 Comm: kworker/0:1 Tainted: G        W         5.2.9-1-ARCH #1
+[    2.954694] Hardware name: Hardkernel ODROID-C2 (DT)
+[    2.959613] Workqueue: events deferred_probe_work_func
+[    2.964700] pstate: 60000005 (nZCv daif -PAN -UAO)
+[    2.969445] pc : _regulator_put+0x3c/0xe8
+[    2.973412] lr : _regulator_put+0x3c/0xe8
+[    2.977377] sp : ffff000011aa3a50
+[    2.980655] x29: ffff000011aa3a50 x28: ffff80007ed1b600
+[    2.985916] x27: ffff80007f7036a8 x26: ffff80007f7036a8
+[    2.991177] x25: 0000000000000000 x24: ffff000011a44458
+[    2.996439] x23: ffff000011344218 x22: 0000000000000009
+[    3.001700] x21: ffff000011aa3b68 x20: ffff80007ed1bd00
+[    3.006961] x19: ffff80007ed1bd00 x18: 0000000000000010
+[    3.012222] x17: 000000005be5943c x16: 00000000f1c73b29
+[    3.017484] x15: ffffffffffffffff x14: ffff0000117396c8
+[    3.022745] x13: ffff000091aa37a7 x12: ffff000011aa37af
+[    3.028006] x11: ffff000011763000 x10: ffff000011aa3730
+[    3.033267] x9 : 00000000ffffffd0 x8 : ffff000010871760
+[    3.038528] x7 : 00000000000000fd x6 : ffff0000119d151b
+[    3.043790] x5 : 000000000000000f x4 : 0000000000000000
+[    3.049051] x3 : 0000000000000000 x2 : 38104b2678c20100
+[    3.054312] x1 : 0000000000000000 x0 : 0000000000000024
+[    3.059574] Call trace:
+[    3.061991]  _regulator_put+0x3c/0xe8
+[    3.065613]  regulator_put+0x34/0x48
+[    3.069149]  regulator_bulk_free+0x40/0x58
+[    3.073203]  devm_regulator_bulk_release+0x24/0x30
+[    3.077947]  release_nodes+0x1f0/0x2e0
+[    3.081655]  devres_release_all+0x64/0xa4
+[    3.085622]  really_probe+0x1c8/0x3e0
+[    3.089245]  driver_probe_device+0xe4/0x138
+[    3.093385]  __device_attach_driver+0x90/0x110
+[    3.097784]  bus_for_each_drv+0x8c/0xd8
+[    3.101578]  __device_attach+0xdc/0x160
+[    3.105373]  device_initial_probe+0x24/0x30
+[    3.109514]  bus_probe_device+0x9c/0xa8
+[    3.113309]  deferred_probe_work_func+0xa0/0xf0
+[    3.117796]  process_one_work+0x1b4/0x408
+[    3.121762]  worker_thread+0x54/0x4b8
+[    3.125384]  kthread+0x12c/0x130
+[    3.128575]  ret_from_fork+0x10/0x1c
+[    3.132110] ---[ end trace 51a68f4c0035d6c1 ]---
+[    3.136753] dwc2: probe of c9000000.usb failed with error -22
+
+Fixes: 5a0803bd5ae2 ("ARM64: dts: meson-gxbb-odroidc2: Enable USB Nodes")
+Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
+Cc: Jerome Brunet <jbrunet@baylibre.com>
+Cc: Neil Armstrong <narmstrong@baylibre.com>
+Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
+Signed-off-by: Anand Moon <linux.amoon@gmail.com>
+Signed-off-by: Kevin Hilman <khilman@baylibre.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+@@ -296,7 +296,7 @@
+ };
+ &usb0_phy {
+-      status = "okay";
++      status = "disabled";
+       phy-supply = <&usb_otg_pwr>;
+ };
+@@ -306,7 +306,7 @@
+ };
+ &usb0 {
+-      status = "okay";
++      status = "disabled";
+ };
+ &usb1 {
diff --git a/queue-5.4/bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch b/queue-5.4/bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch
new file mode 100644 (file)
index 0000000..30e9a88
--- /dev/null
@@ -0,0 +1,41 @@
+From 3d44a6fd0775e6215e836423e27f8eedf8c871ea Mon Sep 17 00:00:00 2001
+From: Oliver Neukum <oneukum@suse.com>
+Date: Thu, 14 Nov 2019 16:01:18 +0100
+Subject: Bluetooth: btusb: fix PM leak in error case of setup
+
+From: Oliver Neukum <oneukum@suse.com>
+
+commit 3d44a6fd0775e6215e836423e27f8eedf8c871ea upstream.
+
+If setup() fails a reference for runtime PM has already
+been taken. Proper use of the error handling in btusb_open()is needed.
+You cannot just return.
+
+Fixes: ace31982585a3 ("Bluetooth: btusb: Add setup callback for chip init on USB")
+Signed-off-by: Oliver Neukum <oneukum@suse.com>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/bluetooth/btusb.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -1200,7 +1200,7 @@ static int btusb_open(struct hci_dev *hd
+       if (data->setup_on_usb) {
+               err = data->setup_on_usb(hdev);
+               if (err < 0)
+-                      return err;
++                      goto setup_fail;
+       }
+       data->intf->needs_remote_wakeup = 1;
+@@ -1239,6 +1239,7 @@ done:
+ failed:
+       clear_bit(BTUSB_INTR_RUNNING, &data->flags);
++setup_fail:
+       usb_autopm_put_interface(data->intf);
+       return err;
+ }
diff --git a/queue-5.4/bluetooth-delete-a-stray-unlock.patch b/queue-5.4/bluetooth-delete-a-stray-unlock.patch
new file mode 100644 (file)
index 0000000..20354b1
--- /dev/null
@@ -0,0 +1,36 @@
+From df66499a1fab340c167250a5743931dc50d5f0fa Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Tue, 19 Nov 2019 09:17:05 +0300
+Subject: Bluetooth: delete a stray unlock
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit df66499a1fab340c167250a5743931dc50d5f0fa upstream.
+
+We used to take a lock in amp_physical_cfm() but then we moved it to
+the caller function.  Unfortunately the unlock on this error path was
+overlooked so it leads to a double unlock.
+
+Fixes: a514b17fab51 ("Bluetooth: Refactor locking in amp_physical_cfm")
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/bluetooth/l2cap_core.c |    4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+--- a/net/bluetooth/l2cap_core.c
++++ b/net/bluetooth/l2cap_core.c
+@@ -4936,10 +4936,8 @@ void __l2cap_physical_cfm(struct l2cap_c
+       BT_DBG("chan %p, result %d, local_amp_id %d, remote_amp_id %d",
+              chan, result, local_amp_id, remote_amp_id);
+-      if (chan->state == BT_DISCONN || chan->state == BT_CLOSED) {
+-              l2cap_chan_unlock(chan);
++      if (chan->state == BT_DISCONN || chan->state == BT_CLOSED)
+               return;
+-      }
+       if (chan->state != BT_CONNECTED) {
+               l2cap_do_create(chan, result, local_amp_id, remote_amp_id);
diff --git a/queue-5.4/bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch b/queue-5.4/bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch
new file mode 100644 (file)
index 0000000..2fc3791
--- /dev/null
@@ -0,0 +1,36 @@
+From d088337c38a5cd8f0230fbf2d514ff7672f9d0d3 Mon Sep 17 00:00:00 2001
+From: Navid Emamdoost <navid.emamdoost@gmail.com>
+Date: Thu, 21 Nov 2019 14:20:36 -0600
+Subject: Bluetooth: Fix memory leak in hci_connect_le_scan
+
+From: Navid Emamdoost <navid.emamdoost@gmail.com>
+
+commit d088337c38a5cd8f0230fbf2d514ff7672f9d0d3 upstream.
+
+In the implementation of hci_connect_le_scan() when conn is added via
+hci_conn_add(), if hci_explicit_conn_params_set() fails the allocated
+memory for conn is leaked. Use hci_conn_del() to release it.
+
+Fixes: f75113a26008 ("Bluetooth: add hci_connect_le_scan")
+Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/bluetooth/hci_conn.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/net/bluetooth/hci_conn.c
++++ b/net/bluetooth/hci_conn.c
+@@ -1176,8 +1176,10 @@ struct hci_conn *hci_connect_le_scan(str
+       if (!conn)
+               return ERR_PTR(-ENOMEM);
+-      if (hci_explicit_conn_params_set(hdev, dst, dst_type) < 0)
++      if (hci_explicit_conn_params_set(hdev, dst, dst_type) < 0) {
++              hci_conn_del(conn);
+               return ERR_PTR(-EBUSY);
++      }
+       conn->state = BT_CONNECT;
+       set_bit(HCI_CONN_SCANNING, &conn->flags);
diff --git a/queue-5.4/cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch b/queue-5.4/cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch
new file mode 100644 (file)
index 0000000..6801ac9
--- /dev/null
@@ -0,0 +1,57 @@
+From df3df923b31d298c3d3653a0380202b9f2df9864 Mon Sep 17 00:00:00 2001
+From: "Paulo Alcantara (SUSE)" <pc@cjr.nz>
+Date: Fri, 22 Nov 2019 12:30:52 -0300
+Subject: cifs: Fix lookup of root ses in DFS referral cache
+
+From: Paulo Alcantara (SUSE) <pc@cjr.nz>
+
+commit df3df923b31d298c3d3653a0380202b9f2df9864 upstream.
+
+We don't care about module aliasing validation in
+cifs_compose_mount_options(..., is_smb3) when finding the root SMB
+session of an DFS namespace in order to refresh DFS referral cache.
+
+The following issue has been observed when mounting with '-t smb3' and
+then specifying 'vers=2.0':
+
+...
+Nov 08 15:27:08 tw kernel: address conversion returned 0 for FS0.WIN.LOCAL
+Nov 08 15:27:08 tw kernel: [kworke] ==> dns_query((null),FS0.WIN.LOCAL,13,(null))
+Nov 08 15:27:08 tw kernel: [kworke] call request_key(,FS0.WIN.LOCAL,)
+Nov 08 15:27:08 tw kernel: [kworke] ==> dns_resolver_cmp(FS0.WIN.LOCAL,FS0.WIN.LOCAL)
+Nov 08 15:27:08 tw kernel: [kworke] <== dns_resolver_cmp() = 1
+Nov 08 15:27:08 tw kernel: [kworke] <== dns_query() = 13
+Nov 08 15:27:08 tw kernel: fs/cifs/dns_resolve.c: dns_resolve_server_name_to_ip: resolved: FS0.WIN.LOCAL to 192.168.30.26
+===> Nov 08 15:27:08 tw kernel: CIFS VFS: vers=2.0 not permitted when mounting with smb3
+Nov 08 15:27:08 tw kernel: fs/cifs/dfs_cache.c: CIFS VFS: leaving refresh_tcon (xid = 26) rc = -22
+...
+
+Fixes: 5072010ccf05 ("cifs: Fix DFS cache refresher for DFS links")
+Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
+Reviewed-by: Aurelien Aptel <aaptel@suse.com>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/dfs_cache.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/fs/cifs/dfs_cache.c
++++ b/fs/cifs/dfs_cache.c
+@@ -1317,7 +1317,6 @@ static struct cifs_ses *find_root_ses(st
+       int rc;
+       struct dfs_info3_param ref = {0};
+       char *mdata = NULL, *devname = NULL;
+-      bool is_smb3 = tcon->ses->server->vals->header_preamble_size == 0;
+       struct TCP_Server_Info *server;
+       struct cifs_ses *ses;
+       struct smb_vol vol;
+@@ -1344,7 +1343,7 @@ static struct cifs_ses *find_root_ses(st
+               goto out;
+       }
+-      rc = cifs_setup_volume_info(&vol, mdata, devname, is_smb3);
++      rc = cifs_setup_volume_info(&vol, mdata, devname, false);
+       kfree(devname);
+       if (rc) {
diff --git a/queue-5.4/dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch b/queue-5.4/dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch
new file mode 100644 (file)
index 0000000..8fcbdb3
--- /dev/null
@@ -0,0 +1,35 @@
+From 830dbce7c76ea529decac7d23b808c1e7da3d891 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+Date: Wed, 16 Oct 2019 16:56:50 +0200
+Subject: dt-bindings: clock: renesas: rcar-usb2-clock-sel: Fix typo in example
+
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+
+commit 830dbce7c76ea529decac7d23b808c1e7da3d891 upstream.
+
+The documented compatible value for R-Car H3 is
+"renesas,r8a7795-rcar-usb2-clock-sel", not
+"renesas,r8a77950-rcar-usb2-clock-sel".
+
+Fixes: 311accb64570db45 ("clk: renesas: rcar-usb2-clock-sel: Add R-Car USB 2.0 clock selector PHY")
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
+Acked-by: Rob Herring <robh@kernel.org>
+Link: https://lore.kernel.org/r/20191016145650.30003-1-geert+renesas@glider.be
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt
++++ b/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt
+@@ -46,7 +46,7 @@ Required properties:
+ Example (R-Car H3):
+       usb2_clksel: clock-controller@e6590630 {
+-              compatible = "renesas,r8a77950-rcar-usb2-clock-sel",
++              compatible = "renesas,r8a7795-rcar-usb2-clock-sel",
+                            "renesas,rcar-gen3-usb2-clock-sel";
+               reg = <0 0xe6590630 0 0x02>;
+               clocks = <&cpg CPG_MOD 703>, <&usb_extal>, <&usb_xtal>;
diff --git a/queue-5.4/fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch b/queue-5.4/fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch
new file mode 100644 (file)
index 0000000..98ddc63
--- /dev/null
@@ -0,0 +1,38 @@
+From 6b2daec19094a90435abe67d16fb43b1a5527254 Mon Sep 17 00:00:00 2001
+From: Al Viro <viro@zeniv.linux.org.uk>
+Date: Sun, 21 Apr 2019 18:53:50 -0400
+Subject: fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
+
+From: Al Viro <viro@zeniv.linux.org.uk>
+
+commit 6b2daec19094a90435abe67d16fb43b1a5527254 upstream.
+
+Unlike FICLONE, all of those take a pointer argument; they do need
+compat_ptr() applied to arg.
+
+Fixes: d79bdd52d8be ("vfs: wire up compat ioctl for CLONE/CLONE_RANGE")
+Fixes: 54dbc1517237 ("vfs: hoist the btrfs deduplication ioctl to the vfs")
+Fixes: ceac204e1da9 ("fs: make fiemap work from compat_ioctl")
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/compat_ioctl.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/fs/compat_ioctl.c
++++ b/fs/compat_ioctl.c
+@@ -1032,10 +1032,11 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned i
+ #endif
+       case FICLONE:
++              goto do_ioctl;
+       case FICLONERANGE:
+       case FIDEDUPERANGE:
+       case FS_IOC_FIEMAP:
+-              goto do_ioctl;
++              goto found_handler;
+       case FIBMAP:
+       case FIGETBSZ:
diff --git a/queue-5.4/fs-cifs-fix-atime-update-check-vs-mtime.patch b/queue-5.4/fs-cifs-fix-atime-update-check-vs-mtime.patch
new file mode 100644 (file)
index 0000000..0fb0805
--- /dev/null
@@ -0,0 +1,35 @@
+From 69738cfdfa7032f45d9e7462d24490e61cf163dd Mon Sep 17 00:00:00 2001
+From: Deepa Dinamani <deepa.kernel@gmail.com>
+Date: Fri, 29 Nov 2019 21:30:25 -0800
+Subject: fs: cifs: Fix atime update check vs mtime
+
+From: Deepa Dinamani <deepa.kernel@gmail.com>
+
+commit 69738cfdfa7032f45d9e7462d24490e61cf163dd upstream.
+
+According to the comment in the code and commit log, some apps
+expect atime >= mtime; but the introduced code results in
+atime==mtime.  Fix the comparison to guard against atime<mtime.
+
+Fixes: 9b9c5bea0b96 ("cifs: do not return atime less than mtime")
+Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
+Cc: stfrench@microsoft.com
+Cc: linux-cifs@vger.kernel.org
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/inode.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/cifs/inode.c
++++ b/fs/cifs/inode.c
+@@ -163,7 +163,7 @@ cifs_fattr_to_inode(struct inode *inode,
+       spin_lock(&inode->i_lock);
+       /* we do not want atime to be less than mtime, it broke some apps */
+-      if (timespec64_compare(&fattr->cf_atime, &fattr->cf_mtime))
++      if (timespec64_compare(&fattr->cf_atime, &fattr->cf_mtime) < 0)
+               inode->i_atime = fattr->cf_mtime;
+       else
+               inode->i_atime = fattr->cf_atime;
diff --git a/queue-5.4/media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch b/queue-5.4/media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch
new file mode 100644 (file)
index 0000000..0aac122
--- /dev/null
@@ -0,0 +1,37 @@
+From 74a96b51a36de4d86660fbc56b05d86668162d6b Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Fri, 25 Oct 2019 15:33:39 +0200
+Subject: media: flexcop-usb: ensure -EIO is returned on error condition
+
+From: Colin Ian King <colin.king@canonical.com>
+
+commit 74a96b51a36de4d86660fbc56b05d86668162d6b upstream.
+
+An earlier commit hard coded a return 0 to function flexcop_usb_i2c_req
+even though the an -EIO was intended to be returned in the case where
+ret != buflen.  Fix this by replacing the return 0 with the return of
+ret to return the error return code.
+
+Addresses-Coverity: ("Unused value")
+
+Fixes: b430eaba0be5 ("[media] flexcop-usb: don't use stack for DMA")
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+Signed-off-by: Sean Young <sean@mess.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/usb/b2c2/flexcop-usb.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/media/usb/b2c2/flexcop-usb.c
++++ b/drivers/media/usb/b2c2/flexcop-usb.c
+@@ -295,7 +295,7 @@ static int flexcop_usb_i2c_req(struct fl
+       mutex_unlock(&fc_usb->data_mutex);
+-      return 0;
++      return ret;
+ }
+ /* actual bus specific access functions,
diff --git a/queue-5.4/media-usb-fix-memory-leak-in-af9005_identify_state.patch b/queue-5.4/media-usb-fix-memory-leak-in-af9005_identify_state.patch
new file mode 100644 (file)
index 0000000..fb66249
--- /dev/null
@@ -0,0 +1,37 @@
+From 2289adbfa559050d2a38bcd9caac1c18b800e928 Mon Sep 17 00:00:00 2001
+From: Navid Emamdoost <navid.emamdoost@gmail.com>
+Date: Wed, 9 Oct 2019 12:01:47 -0300
+Subject: media: usb: fix memory leak in af9005_identify_state
+
+From: Navid Emamdoost <navid.emamdoost@gmail.com>
+
+commit 2289adbfa559050d2a38bcd9caac1c18b800e928 upstream.
+
+In af9005_identify_state when returning -EIO the allocated buffer should
+be released. Replace the "return -EIO" with assignment into ret and move
+deb_info() under a check.
+
+Fixes: af4e067e1dcf ("V4L/DVB (5625): Add support for the AF9005 demodulator from Afatech")
+Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
+Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/usb/dvb-usb/af9005.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/usb/dvb-usb/af9005.c
++++ b/drivers/media/usb/dvb-usb/af9005.c
+@@ -976,8 +976,9 @@ static int af9005_identify_state(struct
+       else if (reply == 0x02)
+               *cold = 0;
+       else
+-              return -EIO;
+-      deb_info("Identify state cold = %d\n", *cold);
++              ret = -EIO;
++      if (!ret)
++              deb_info("Identify state cold = %d\n", *cold);
+ err:
+       kfree(buf);
diff --git a/queue-5.4/phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch b/queue-5.4/phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch
new file mode 100644 (file)
index 0000000..0c1285d
--- /dev/null
@@ -0,0 +1,39 @@
+From b049e03ca57f238e74a79e44ffc85904db465e72 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+Date: Tue, 1 Oct 2019 20:11:09 +0200
+Subject: phy: renesas: rcar-gen3-usb2: Use platform_get_irq_optional() for optional irq
+
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+
+commit b049e03ca57f238e74a79e44ffc85904db465e72 upstream.
+
+As platform_get_irq() now prints an error when the interrupt does not
+exist, a scary warning may be printed for an optional interrupt:
+
+    phy_rcar_gen3_usb2 ee0a0200.usb-phy: IRQ index 0 not found
+
+Fix this by calling platform_get_irq_optional() instead.
+
+Fixes: 7723f4c5ecdb8d83 ("driver core: platform: Add an error message to platform_get_irq*()")
+Reviewed-by: Stephen Boyd <swboyd@chromium.org>
+Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
+Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/phy/renesas/phy-rcar-gen3-usb2.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/phy/renesas/phy-rcar-gen3-usb2.c
++++ b/drivers/phy/renesas/phy-rcar-gen3-usb2.c
+@@ -615,7 +615,7 @@ static int rcar_gen3_phy_usb2_probe(stru
+               return PTR_ERR(channel->base);
+       /* call request_irq for OTG */
+-      irq = platform_get_irq(pdev, 0);
++      irq = platform_get_irq_optional(pdev, 0);
+       if (irq >= 0) {
+               INIT_WORK(&channel->work, rcar_gen3_phy_usb2_work);
+               irq = devm_request_irq(dev, irq, rcar_gen3_phy_usb2_irq,
diff --git a/queue-5.4/powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch b/queue-5.4/powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch
new file mode 100644 (file)
index 0000000..a207825
--- /dev/null
@@ -0,0 +1,61 @@
+From 91a063c956084fb21cf2523bce6892514e3f1799 Mon Sep 17 00:00:00 2001
+From: Michael Ellerman <mpe@ellerman.id.au>
+Date: Sat, 21 Dec 2019 14:16:54 +1100
+Subject: powerpc/mm: Mark get_slice_psize() & slice_addr_is_low() as notrace
+
+From: Michael Ellerman <mpe@ellerman.id.au>
+
+commit 91a063c956084fb21cf2523bce6892514e3f1799 upstream.
+
+These slice routines are called from the SLB miss handler, which can
+lead to warnings from the IRQ code, because we have not reconciled the
+IRQ state properly:
+
+  WARNING: CPU: 72 PID: 30150 at arch/powerpc/kernel/irq.c:258 arch_local_irq_restore.part.0+0xcc/0x100
+  Modules linked in:
+  CPU: 72 PID: 30150 Comm: ftracetest Not tainted 5.5.0-rc2-gcc9x-g7e0165b2f1a9 #1
+  NIP:  c00000000001d83c LR: c00000000029ab90 CTR: c00000000026cf90
+  REGS: c0000007eee3b960 TRAP: 0700   Not tainted  (5.5.0-rc2-gcc9x-g7e0165b2f1a9)
+  MSR:  8000000000021033 <SF,ME,IR,DR,RI,LE>  CR: 22242844  XER: 20000000
+  CFAR: c00000000001d780 IRQMASK: 0
+  ...
+  NIP arch_local_irq_restore.part.0+0xcc/0x100
+  LR  trace_graph_entry+0x270/0x340
+  Call Trace:
+    trace_graph_entry+0x254/0x340 (unreliable)
+    function_graph_enter+0xe4/0x1a0
+    prepare_ftrace_return+0xa0/0x130
+    ftrace_graph_caller+0x44/0x94      # (get_slice_psize())
+    slb_allocate_user+0x7c/0x100
+    do_slb_fault+0xf8/0x300
+    instruction_access_slb_common+0x140/0x180
+
+Fixes: 48e7b7695745 ("powerpc/64s/hash: Convert SLB miss handlers to C")
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20191221121337.4894-1-mpe@ellerman.id.au
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/mm/slice.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/powerpc/mm/slice.c
++++ b/arch/powerpc/mm/slice.c
+@@ -50,7 +50,7 @@ static void slice_print_mask(const char
+ #endif
+-static inline bool slice_addr_is_low(unsigned long addr)
++static inline notrace bool slice_addr_is_low(unsigned long addr)
+ {
+       u64 tmp = (u64)addr;
+@@ -659,7 +659,7 @@ unsigned long arch_get_unmapped_area_top
+                                      mm_ctx_user_psize(&current->mm->context), 1);
+ }
+-unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr)
++unsigned int notrace get_slice_psize(struct mm_struct *mm, unsigned long addr)
+ {
+       unsigned char *psizes;
+       int index, mask_index;
diff --git a/queue-5.4/regulator-ab8500-remove-ab8505-usb-regulator.patch b/queue-5.4/regulator-ab8500-remove-ab8505-usb-regulator.patch
new file mode 100644 (file)
index 0000000..bae4513
--- /dev/null
@@ -0,0 +1,75 @@
+From 99c4f70df3a6446c56ca817c2d0f9c12d85d4e7c Mon Sep 17 00:00:00 2001
+From: Stephan Gerhold <stephan@gerhold.net>
+Date: Wed, 6 Nov 2019 18:31:24 +0100
+Subject: regulator: ab8500: Remove AB8505 USB regulator
+
+From: Stephan Gerhold <stephan@gerhold.net>
+
+commit 99c4f70df3a6446c56ca817c2d0f9c12d85d4e7c upstream.
+
+The USB regulator was removed for AB8500 in
+commit 41a06aa738ad ("regulator: ab8500: Remove USB regulator").
+It was then added for AB8505 in
+commit 547f384f33db ("regulator: ab8500: add support for ab8505").
+
+However, there was never an entry added for it in
+ab8505_regulator_match. This causes all regulators after it
+to be initialized with the wrong device tree data, eventually
+leading to an out-of-bounds array read.
+
+Given that it is not used anywhere in the kernel, it seems
+likely that similar arguments against supporting it exist for
+AB8505 (it is controlled by hardware).
+
+Therefore, simply remove it like for AB8500 instead of adding
+an entry in ab8505_regulator_match.
+
+Fixes: 547f384f33db ("regulator: ab8500: add support for ab8505")
+Cc: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+Link: https://lore.kernel.org/r/20191106173125.14496-1-stephan@gerhold.net
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/regulator/ab8500.c       |   17 -----------------
+ include/linux/regulator/ab8500.h |    1 -
+ 2 files changed, 18 deletions(-)
+
+--- a/drivers/regulator/ab8500.c
++++ b/drivers/regulator/ab8500.c
+@@ -953,23 +953,6 @@ static struct ab8500_regulator_info
+               .update_val_idle        = 0x82,
+               .update_val_normal      = 0x02,
+       },
+-      [AB8505_LDO_USB] = {
+-              .desc = {
+-                      .name           = "LDO-USB",
+-                      .ops            = &ab8500_regulator_mode_ops,
+-                      .type           = REGULATOR_VOLTAGE,
+-                      .id             = AB8505_LDO_USB,
+-                      .owner          = THIS_MODULE,
+-                      .n_voltages     = 1,
+-                      .volt_table     = fixed_3300000_voltage,
+-              },
+-              .update_bank            = 0x03,
+-              .update_reg             = 0x82,
+-              .update_mask            = 0x03,
+-              .update_val             = 0x01,
+-              .update_val_idle        = 0x03,
+-              .update_val_normal      = 0x01,
+-      },
+       [AB8505_LDO_AUDIO] = {
+               .desc = {
+                       .name           = "LDO-AUDIO",
+--- a/include/linux/regulator/ab8500.h
++++ b/include/linux/regulator/ab8500.h
+@@ -37,7 +37,6 @@ enum ab8505_regulator_id {
+       AB8505_LDO_AUX6,
+       AB8505_LDO_INTCORE,
+       AB8505_LDO_ADC,
+-      AB8505_LDO_USB,
+       AB8505_LDO_AUDIO,
+       AB8505_LDO_ANAMIC1,
+       AB8505_LDO_ANAMIC2,
diff --git a/queue-5.4/regulator-axp20x-fix-axp20x_set_ramp_delay.patch b/queue-5.4/regulator-axp20x-fix-axp20x_set_ramp_delay.patch
new file mode 100644 (file)
index 0000000..82d630a
--- /dev/null
@@ -0,0 +1,41 @@
+From 71dd2fe5dec171b34b71603a81bb46c24c498fde Mon Sep 17 00:00:00 2001
+From: Axel Lin <axel.lin@ingics.com>
+Date: Sat, 21 Dec 2019 16:10:49 +0800
+Subject: regulator: axp20x: Fix axp20x_set_ramp_delay
+
+From: Axel Lin <axel.lin@ingics.com>
+
+commit 71dd2fe5dec171b34b71603a81bb46c24c498fde upstream.
+
+Current code set incorrect bits when set ramp_delay for AXP20X_DCDC2,
+fix it.
+
+Fixes: d29f54df8b16 ("regulator: axp20x: add support for set_ramp_delay for AXP209")
+Signed-off-by: Axel Lin <axel.lin@ingics.com>
+Link: https://lore.kernel.org/r/20191221081049.32490-1-axel.lin@ingics.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/regulator/axp20x-regulator.c |    9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/drivers/regulator/axp20x-regulator.c
++++ b/drivers/regulator/axp20x-regulator.c
+@@ -413,10 +413,13 @@ static int axp20x_set_ramp_delay(struct
+               int i;
+               for (i = 0; i < rate_count; i++) {
+-                      if (ramp <= slew_rates[i])
+-                              cfg = AXP20X_DCDC2_LDO3_V_RAMP_LDO3_RATE(i);
+-                      else
++                      if (ramp > slew_rates[i])
+                               break;
++
++                      if (id == AXP20X_DCDC2)
++                              cfg = AXP20X_DCDC2_LDO3_V_RAMP_DCDC2_RATE(i);
++                      else
++                              cfg = AXP20X_DCDC2_LDO3_V_RAMP_LDO3_RATE(i);
+               }
+               if (cfg == 0xff) {
diff --git a/queue-5.4/regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch b/queue-5.4/regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch
new file mode 100644 (file)
index 0000000..01e7f65
--- /dev/null
@@ -0,0 +1,39 @@
+From f40ddaa059fdfb472e3aeb733c6220d8e0633a47 Mon Sep 17 00:00:00 2001
+From: Chen-Yu Tsai <wens@csie.org>
+Date: Wed, 18 Dec 2019 12:47:20 +0800
+Subject: regulator: axp20x: Fix AXP22x ELDO2 regulator enable bitmask
+
+From: Chen-Yu Tsai <wens@csie.org>
+
+commit f40ddaa059fdfb472e3aeb733c6220d8e0633a47 upstream.
+
+A copy-paste error was introduced when bitmasks were converted to
+macros, incorrectly setting the enable bitmask for ELDO2 to the one
+for ELDO1 for the AXP22x units.
+
+Fix it by using the correct macro.
+
+On affected boards, ELDO1 and/or ELDO2 are used to power the camera,
+which is currently unsupported.
+
+Fixes: db4a555f7c4c ("regulator: axp20x: use defines for masks")
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+Link: https://lore.kernel.org/r/20191218044720.21990-1-wens@kernel.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/regulator/axp20x-regulator.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/regulator/axp20x-regulator.c
++++ b/drivers/regulator/axp20x-regulator.c
+@@ -608,7 +608,7 @@ static const struct regulator_desc axp22
+                AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO1_MASK),
+       AXP_DESC(AXP22X, ELDO2, "eldo2", "eldoin", 700, 3300, 100,
+                AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK,
+-               AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO1_MASK),
++               AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK),
+       AXP_DESC(AXP22X, ELDO3, "eldo3", "eldoin", 700, 3300, 100,
+                AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT_MASK,
+                AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK),
diff --git a/queue-5.4/regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch b/queue-5.4/regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch
new file mode 100644 (file)
index 0000000..1c89f2a
--- /dev/null
@@ -0,0 +1,35 @@
+From 6f1ff76154b8b36033efcbf6453a71a3d28f52cd Mon Sep 17 00:00:00 2001
+From: Axel Lin <axel.lin@ingics.com>
+Date: Wed, 1 Jan 2020 10:24:06 +0800
+Subject: regulator: bd70528: Remove .set_ramp_delay for bd70528_ldo_ops
+
+From: Axel Lin <axel.lin@ingics.com>
+
+commit 6f1ff76154b8b36033efcbf6453a71a3d28f52cd upstream.
+
+The .set_ramp_delay should be for bd70528_buck_ops only.
+Setting .set_ramp_delay for for bd70528_ldo_ops causes problem because
+BD70528_MASK_BUCK_RAMP (0x10) overlaps with BD70528_MASK_LDO_VOLT (0x1f).
+So setting ramp_delay for LDOs may change the voltage output, fix it.
+
+Fixes: 99ea37bd1e7d ("regulator: bd70528: Support ROHM BD70528 regulator block")
+Signed-off-by: Axel Lin <axel.lin@ingics.com>
+Acked-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+Link: https://lore.kernel.org/r/20200101022406.15176-1-axel.lin@ingics.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/regulator/bd70528-regulator.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/regulator/bd70528-regulator.c
++++ b/drivers/regulator/bd70528-regulator.c
+@@ -101,7 +101,6 @@ static const struct regulator_ops bd7052
+       .set_voltage_sel = regulator_set_voltage_sel_regmap,
+       .get_voltage_sel = regulator_get_voltage_sel_regmap,
+       .set_voltage_time_sel = regulator_set_voltage_time_sel,
+-      .set_ramp_delay = bd70528_set_ramp_delay,
+ };
+ static const struct regulator_ops bd70528_led_ops = {
index e0fe7a5e966fdf246fedcfc18fa35255c0a518e8..d64f03e8e689860d296fb50d0d2609072a4eaa3b 100644 (file)
@@ -151,3 +151,24 @@ xfs-don-t-check-for-ag-deadlock-for-realtime-files-in-bunmapi.patch
 platform-x86-pmc_atom-add-siemens-connect-x300-to-critclk_systems-dmi-table.patch
 netfilter-nf_queue-enqueue-skbs-with-null-dst.patch
 net-sysctl-fix-compiler-warning-when-only-cbpf-is-present.patch
+watchdog-tqmx86_wdt-fix-build-error.patch
+regulator-axp20x-fix-axp20x_set_ramp_delay.patch
+regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch
+spi-uniphier-fix-fifo-threshold.patch
+regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch
+powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch
+bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch
+bluetooth-delete-a-stray-unlock.patch
+bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch
+arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch
+arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch
+media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch
+regulator-ab8500-remove-ab8505-usb-regulator.patch
+media-usb-fix-memory-leak-in-af9005_identify_state.patch
+dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch
+arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch
+phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch
+tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch
+cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch
+fs-cifs-fix-atime-update-check-vs-mtime.patch
+fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch
diff --git a/queue-5.4/spi-uniphier-fix-fifo-threshold.patch b/queue-5.4/spi-uniphier-fix-fifo-threshold.patch
new file mode 100644 (file)
index 0000000..659ab09
--- /dev/null
@@ -0,0 +1,96 @@
+From 9cd34efbd3012171c102910ce17ee632a3cccb44 Mon Sep 17 00:00:00 2001
+From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
+Date: Tue, 24 Dec 2019 09:58:23 +0900
+Subject: spi: uniphier: Fix FIFO threshold
+
+From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
+
+commit 9cd34efbd3012171c102910ce17ee632a3cccb44 upstream.
+
+Rx threshold means the value to inform the receiver when the number of words
+in Rx FIFO is equal to or more than the value. Similarly, Tx threshold means
+the value to inform the sender when the number of words in Tx FIFO is equal
+to or less than the value. The controller triggers the driver to start
+the transfer.
+
+In case of Rx, the driver wants to detect that the specified number of words
+N are in Rx FIFO, so the value of Rx threshold should be N. In case of Tx,
+the driver wants to detect that the same number of spaces as Rx are in
+Tx FIFO, so the value of Tx threshold should be (FIFO size - N).
+
+For example, in order for the driver to receive at least 3 words from
+Rx FIFO, set 3 to Rx threshold.
+   +-+-+-+-+-+-+-+-+
+   | | | | | |*|*|*|
+   +-+-+-+-+-+-+-+-+
+
+In order for the driver to send at least 3 words to Tx FIFO, because
+it needs at least 3 spaces, set 8(FIFO size) - 3 = 5 to Tx threshold.
+   +-+-+-+-+-+-+-+-+
+   |*|*|*|*|*| | | |
+   +-+-+-+-+-+-+-+-+
+
+This adds new function uniphier_spi_set_fifo_threshold() to set
+threshold value to the register.
+
+And more, FIFO counts by 'words', so this renames 'fill_bytes' with
+'fill_words', and fixes the calculation using bytes_per_words.
+
+Fixes: 37ffab817098 ("spi: uniphier: introduce polling mode")
+Cc: Keiji Hayashibara <hayashibara.keiji@socionext.com>
+Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
+Link: https://lore.kernel.org/r/1577149107-30670-2-git-send-email-hayashi.kunihiko@socionext.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/spi/spi-uniphier.c |   31 +++++++++++++++++++------------
+ 1 file changed, 19 insertions(+), 12 deletions(-)
+
+--- a/drivers/spi/spi-uniphier.c
++++ b/drivers/spi/spi-uniphier.c
+@@ -290,25 +290,32 @@ static void uniphier_spi_recv(struct uni
+       }
+ }
+-static void uniphier_spi_fill_tx_fifo(struct uniphier_spi_priv *priv)
++static void uniphier_spi_set_fifo_threshold(struct uniphier_spi_priv *priv,
++                                          unsigned int threshold)
+ {
+-      unsigned int fifo_threshold, fill_bytes;
+       u32 val;
+-      fifo_threshold = DIV_ROUND_UP(priv->rx_bytes,
+-                              bytes_per_word(priv->bits_per_word));
+-      fifo_threshold = min(fifo_threshold, SSI_FIFO_DEPTH);
+-
+-      fill_bytes = fifo_threshold - (priv->rx_bytes - priv->tx_bytes);
+-
+-      /* set fifo threshold */
+       val = readl(priv->base + SSI_FC);
+       val &= ~(SSI_FC_TXFTH_MASK | SSI_FC_RXFTH_MASK);
+-      val |= FIELD_PREP(SSI_FC_TXFTH_MASK, fifo_threshold);
+-      val |= FIELD_PREP(SSI_FC_RXFTH_MASK, fifo_threshold);
++      val |= FIELD_PREP(SSI_FC_TXFTH_MASK, SSI_FIFO_DEPTH - threshold);
++      val |= FIELD_PREP(SSI_FC_RXFTH_MASK, threshold);
+       writel(val, priv->base + SSI_FC);
++}
++
++static void uniphier_spi_fill_tx_fifo(struct uniphier_spi_priv *priv)
++{
++      unsigned int fifo_threshold, fill_words;
++      unsigned int bpw = bytes_per_word(priv->bits_per_word);
++
++      fifo_threshold = DIV_ROUND_UP(priv->rx_bytes, bpw);
++      fifo_threshold = min(fifo_threshold, SSI_FIFO_DEPTH);
++
++      uniphier_spi_set_fifo_threshold(priv, fifo_threshold);
++
++      fill_words = fifo_threshold -
++              DIV_ROUND_UP(priv->rx_bytes - priv->tx_bytes, bpw);
+-      while (fill_bytes--)
++      while (fill_words--)
+               uniphier_spi_send(priv);
+ }
diff --git a/queue-5.4/tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch b/queue-5.4/tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch
new file mode 100644 (file)
index 0000000..16975d9
--- /dev/null
@@ -0,0 +1,68 @@
+From 0e4f7f920a5c6bfe5e851e989f27b35a0cc7fb7e Mon Sep 17 00:00:00 2001
+From: Leo Yan <leo.yan@linaro.org>
+Date: Wed, 27 Nov 2019 22:15:43 +0800
+Subject: tty: serial: msm_serial: Fix lockup for sysrq and oops
+
+From: Leo Yan <leo.yan@linaro.org>
+
+commit 0e4f7f920a5c6bfe5e851e989f27b35a0cc7fb7e upstream.
+
+As the commit 677fe555cbfb ("serial: imx: Fix recursive locking bug")
+has mentioned the uart driver might cause recursive locking between
+normal printing and the kernel debugging facilities (e.g. sysrq and
+oops).  In the commit it gave out suggestion for fixing recursive
+locking issue: "The solution is to avoid locking in the sysrq case
+and trylock in the oops_in_progress case."
+
+This patch follows the suggestion (also used the exactly same code with
+other serial drivers, e.g. amba-pl011.c) to fix the recursive locking
+issue, this can avoid stuck caused by deadlock and print out log for
+sysrq and oops.
+
+Fixes: 04896a77a97b ("msm_serial: serial driver for MSM7K onboard serial peripheral.")
+Signed-off-by: Leo Yan <leo.yan@linaro.org>
+Reviewed-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com>
+Link: https://lore.kernel.org/r/20191127141544.4277-2-leo.yan@linaro.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/tty/serial/msm_serial.c |   13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+--- a/drivers/tty/serial/msm_serial.c
++++ b/drivers/tty/serial/msm_serial.c
+@@ -1580,6 +1580,7 @@ static void __msm_console_write(struct u
+       int num_newlines = 0;
+       bool replaced = false;
+       void __iomem *tf;
++      int locked = 1;
+       if (is_uartdm)
+               tf = port->membase + UARTDM_TF;
+@@ -1592,7 +1593,13 @@ static void __msm_console_write(struct u
+                       num_newlines++;
+       count += num_newlines;
+-      spin_lock(&port->lock);
++      if (port->sysrq)
++              locked = 0;
++      else if (oops_in_progress)
++              locked = spin_trylock(&port->lock);
++      else
++              spin_lock(&port->lock);
++
+       if (is_uartdm)
+               msm_reset_dm_count(port, count);
+@@ -1628,7 +1635,9 @@ static void __msm_console_write(struct u
+               iowrite32_rep(tf, buf, 1);
+               i += num_chars;
+       }
+-      spin_unlock(&port->lock);
++
++      if (locked)
++              spin_unlock(&port->lock);
+ }
+ static void msm_console_write(struct console *co, const char *s,
diff --git a/queue-5.4/watchdog-tqmx86_wdt-fix-build-error.patch b/queue-5.4/watchdog-tqmx86_wdt-fix-build-error.patch
new file mode 100644 (file)
index 0000000..76f5b84
--- /dev/null
@@ -0,0 +1,40 @@
+From 9a6c274ac1c4346f5384f2290caeb42dc674c471 Mon Sep 17 00:00:00 2001
+From: YueHaibing <yuehaibing@huawei.com>
+Date: Fri, 6 Dec 2019 20:42:59 +0800
+Subject: watchdog: tqmx86_wdt: Fix build error
+
+From: YueHaibing <yuehaibing@huawei.com>
+
+commit 9a6c274ac1c4346f5384f2290caeb42dc674c471 upstream.
+
+If TQMX86_WDT is y and WATCHDOG_CORE is m, building fails:
+
+drivers/watchdog/tqmx86_wdt.o: In function `tqmx86_wdt_probe':
+tqmx86_wdt.c:(.text+0x46e): undefined reference to `watchdog_init_timeout'
+tqmx86_wdt.c:(.text+0x4e0): undefined reference to `devm_watchdog_register_device'
+
+Select WATCHDOG_CORE to fix this.
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Fixes: e3c21e088f89 ("watchdog: tqmx86: Add watchdog driver for the IO controller")
+Signed-off-by: YueHaibing <yuehaibing@huawei.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Link: https://lore.kernel.org/r/20191206124259.25880-1-yuehaibing@huawei.com
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/watchdog/Kconfig |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/watchdog/Kconfig
++++ b/drivers/watchdog/Kconfig
+@@ -1444,6 +1444,7 @@ config SMSC37B787_WDT
+ config TQMX86_WDT
+       tristate "TQ-Systems TQMX86 Watchdog Timer"
+       depends on X86
++      select WATCHDOG_CORE
+       help
+       This is the driver for the hardware watchdog timer in the TQMX86 IO
+       controller found on some of their ComExpress Modules.